@ Jinpeng estaba en el camino correcto con GNU Parallel , pero no con la implementación.
Ejemplo: ejecute 10 instancias paralelas de su programa, con cada subproceso ejecutando su programa solo una vez:
parallel -j10 './myprog argument1 argument2 #' ::: {1..10}
Ejemplo: ejecute 10 subprocesos paralelos, con cada uno de esos subprocesos ejecutando su programa infinitamente:
parallel -j10 'while true ; do ./myprog argument1 argument2 ; done #' ::: {1..10}
Puede escalar esto fácilmente a los cientos de hilos reemplazando el 10
en mis ejemplos.
parallel -j200 ... ::: {1..200}
Si su programa produce mensajes estándar y desea verlos a medida que se producen (en lugar del valor predeterminado que los clasifica), la --ungroup
opción de paralelo puede ser útil.
parallel --ungroup ...
Si está ejecutando muchos subprocesos desde su estación de trabajo y no desea que las cosas no respondan, considere nice
el subárbol de proceso completo en el momento del lanzamiento.
nice -n19 parallel ...
Nota aparte, paralelo GNU normalmente no se instala de forma predeterminada, pero es por lo general en sus repositorios de paquetes normales, por lo que sólo tiene que instalar como cualquier otro paquete: dnf install parallel
, apt-get install parallel
, brew install parallel
, etc.
myprog
instancias secundarias y agregue su salida para usted.