Я новичок в параллельном программировании.Мое программное обеспечение для моделирования генерирует 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 медленнее, чем даже последовательная версия ??