Почему распараллеливание с Joblib является чрезвычайно медленным по сравнению с многопроцессорностью? - PullRequest
0 голосов
/ 24 мая 2019

Я новичок в параллельном программировании.Мое программное обеспечение для моделирования генерирует 10 различных файлов результатов в диапазоне от 30 до 100 ГБ выходных данных в каждом, из которого я пытаюсь извлечь необходимые данные с помощью своего скрипта Python.

Для распараллеливания я попытался с Joblib (Parallelи с задержкой) и с многопроцессорностью (Pool.apply ()).Я обнаружил, что первый вариант очень медленный по сравнению со вторым.Например, последовательная версия занимает приблизительно 100 минут для обработки 10 файлов результатов с 30 * 10 = 300 ГБ данных.Параллельная версия с Multiprocessing.Pool (10) занимает примерно 60 минут.Удивительно, но распараллеливание с Joblib-Parallel (n_jobs = 10) не может завершить задачу даже через 120 минут, в результате чего мне пришлось остановить выполнение.

Может кто-нибудь объяснить, почему распараллеливание с Joblib-Parallel медленнее, чем даже последовательная версия ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...