Предел Python для многопроцессорных пулов - PullRequest
0 голосов
/ 07 января 2019

Я использую многопроцессорный пул для создания нескольких процессов для запуска программы. Я загружаю два тяжеловесных объекта (каждый размером около 3,5 ГБ на диске) в родительский процесс, которые затем используются рабочими процессами в составе пула для генерации вывода (система Linux, поэтому используется механизм копирования при записи). Каждый объединенный процесс выполняет запись в один файл, который используется всеми процессами. Мой вопрос заключается в том, что в 36-ядерной системе я выигрываю в производительности до определенного количества объединенных процессов (по оценкам, 10). Когда я превышаю это число, выполнение частей программы, использующих эти тяжелые объекты, начинает занимать все больше и больше времени, и выигрыш в производительности от многопроцессорной обработки теряется. Есть ли какая-то особая наука к этому явлению или всегда гарантировано повышение производительности при использовании более объединенных процессов? Спасибо.

...