threading set_start_method from ejemplos python multiprocessing

set_start_method - python multiprocessing windows



Parámetro “chunksize” en multiprocessing.Pool.map de Python (1)

Si tengo un objeto de pool con 2 procesadores por ejemplo:

p=multiprocessing.Pool(2)

y quiero iterar sobre una lista de archivos en el directorio y usar la función de mapa

alguien podría explicar cuál es el tamaño de esta función:

p.map(func, iterable[, chunksize])

Si configuro el tamaño de chunksize por ejemplo a 10, ¿eso significa que cada 10 archivos deben procesarse con un procesador?


Mirando la documentación de Pool.map parece que está casi correcto: el parámetro chunksize causará que el iterable se divida en partes de aproximadamente ese tamaño, y cada pieza se envía como una tarea separada.

Entonces, en su ejemplo, sí, el map tomará los primeros 10 (aproximadamente), enviarlo como una tarea para un solo procesador ... luego los próximos 10 se enviarán como otra tarea, y así sucesivamente. Tenga en cuenta que esto no significa que esto hará que los procesadores se alternen cada 10 archivos, es muy posible que el procesador # 1 termine con 1-10 Y 11-20, y el procesador # 2 con 21-30 y 31-40.