Estoy usando gnu-parallel para ejecutar una serie de scripts de Python en paralelo a través de varias computadoras en mi red de gigabit.
Los archivos que se procesan se encuentran en una carpeta tmpfs (RAM) en mi nodo maestro. Cuando comienzo un proceso paralelo, puedo ver que todos los núcleos en el nodo remoto funcionan, pero mi nodo maestro permanece inactivo.
Aquí es como se ve mi línea paralela:
parallel --workdir ./netshare --filter-hosts -S :,192.168.88.222\
'myscript.py {.}.shp output_{.}.shp input.shp' ::: tile_{1..445}.shp
He intentado invertir el orden de las direcciones IP 192.168.88.222 ,: con el mismo resultado.
Intenté ejecutar solo en el nodo maestro local y, aparte de la advertencia de que no hay nodos remotos disponibles, los 8 subprocesos locales comienzan a funcionar.
Pensé que podría ser la latencia de la red, ¡pero ningún script de python comienza en absoluto! Mientras que en el host remoto veo cuatro corriendo sin problema.
Según el comentario de Ole, probé el problema con bzip2, aquí está el comando:
parallel -S $SERVER1,: 'cd /path/to/mounted/network/share && cp largefile.avi file{1}.avi && bzip2 -v file{1}.avi && rm file{1}.avi.bz2' ::: {1..100}
La prueba funcionó exactamente como se esperaba. Todos los núcleos de todos los hosts se activaron con cp y luego bzip. Así que supongo que el problema radica en mi script de python de alguna manera.
fuente