Многопроцессорный пул Python: maxtasksperchild - PullRequest
0 голосов
/ 04 марта 2019

Я возился с многопроцессорной библиотекой Python, и, хотя она предоставляет невероятно простой в использовании API, ее документация не всегда ясна.В частности, аргумент 'maxtasksperchild', переданный экземпляру класса Pool, я нахожу очень запутанным.

Следующее непосредственно взято из документации Python (3.7.2):

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

Выше приведено больше вопросов для меня, чем ответов.Это плохо для рабочего процесса, чтобы жить так долго, как пул?Что делает рабочий процесс «свежим» и когда это желательно?В общем, когда вам следует явно установить значение maxtasksperchild вместо того, чтобы оставить его по умолчанию равным None, и что считается наилучшей практикой для максимизации скорости обработки? Теперь я понимаю, что делает и представляет кусочек.Поскольку предоставление значения для размера фрагмента влияет на количество «заданий», мне было интересно, следует ли принимать во внимание какие-либо соображения относительно их зависимости для обеспечения максимальной производительности?

Спасибо!

1 Ответ

0 голосов
/ 04 марта 2019

Обычно вам не нужно это трогать.Иногда могут возникнуть проблемы с вызовом кода, например, из-за утечки памяти из Python.Ограничение числа задач, выполняемых рабочим процессом до его замены, помогает, поскольку «неиспользованные ресурсы», которые он по ошибке собирает, освобождаются, когда процесс удаляется.Начиная новый, «свежий» процесс, проблема остается сдержанной.Поскольку для замены процесса требуется время, для производительности вы можете указать maxtasksperchild по умолчанию.Когда вы однажды столкнетесь с необъяснимыми проблемами с ресурсами, вы можете попробовать установить maxtasksperchild=1, чтобы увидеть, изменит ли это что-то.Если это произойдет, вероятно, что-то протекает что-то .

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