[pyar] Limitando size del input Queue de multiprocessing.Pool

Claudio Freire klaussfreire en gmail.com
Lun Abr 7 10:30:35 ART 2014


2014-04-07 10:25 GMT-03:00 Alejandro Santos <listas en alejolp.com>:
>> Esto va a convertir tu BFS en DFS, pero es la única manera de evitar
>> el deadlock y reducir el consumo de memorioa - el alto consumo de
>> memoria es inherente a BFS.
>>
>
> Supongamos que el problema anterior lo resolves, de forma que los
> nodos que estan a menos de X de distancia del nodo inicial los
> paralelizas como un BFS, y los que estan a mas de X de distancia del
> inicial los procesar como DFS, vas a volver al problema original: el
> elevado uso de memoria, la diferencia que antes estaba en la Queue del
> BFS y ahora tenes tu backlog en el stack del worker.


No, para nada.

BFS consume memoria proporcional a la anchura del árbol (para grafos
es algo más complicado).

DFS consume memoria proporcional a la profundidad.

No es exactamente lo mismo, y para páginas web, con un alto índice de
conectividad, la anchura puede ser considerable.

También, pensándolo mientras escribo esta respuesta... ¿deduplicás los
links antes de meterlos en la cola?

Estoy pesnado que tu problema puede ser simplemente, teniendo en
cuenta que las páginas web suelen estar altamente conectadas, que
guardás ~N² copias de los links.


More information about the pyar mailing list