Как выбрать chunksize для многопроцессорной обработки Python с большими наборами данных

Я пытаюсь для использования Python для получения некоторой производительности на задаче, которая может быть высоко параллелизирована с помощью http://docs.python.org/library/multiprocessing.

При рассмотрении их библиотеки они говорят для использования размера блока очень долго iterables. Теперь, мое повторяемое не длинно, один из dicts, которые он содержит, огромен: ~100000 записей, с кортежами как ключи и numpy выстраивают для значений.

Как я установил бы chunksize для обработки этого и как я могу передать эти данные быстро?

Спасибо.

5
задан Sandro 24 April 2010 в 20:09
поделиться

1 ответ

Единственный способ обработать этот один большой предмет сразу в нескольких рабочих - разделить его на части. мультипроцессинг работает, разделяя работу на части, но наименьшая единица, которую вы можете ему скормить, это один объект - он не может знать, как разделить один объект разумным образом. Вместо этого вы должны сделать это сами. Вместо того чтобы посылать кубики для обработки, разделите кубики на более мелкие рабочие единицы и посылайте их. Если вы не можете разделить дикту, потому что все данные взаимозависимы, то вы не можете разделить и работу.

3
ответ дан 15 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: