Ejecución de GNU paralelo –sem cuelga en SGE Cluster

Estoy tratando de ejecutar 3 commands en paralelo en un clúster SGE, por ejemplo

cmds=("prog 1 2 3" "prog 4 5 6" "prog 7 8 9") for cmd in "${cmds[@]}" do sem -j 3 $cmd done sem --wait 

Por lo tanto, mis commands se ejecutan y se completan con éxito, lo que infiero de los loggings de salida generados y el hecho de que puedo ver que ya no se están ejecutando en el nodo. Pero luego sem –wait espera por un período de time indefinido cuando presento con qsub. Alternativamente, me he ejecutado en modo interactivo y a. tipeado manualmente los commands y b. originó el script de shell; ambos methods finalizaron exitosamente. ¿Hay algo que me falta acerca de ejecutar sem?

Gracias por cualquier ayuda.

Estás ejecutando cada command secuencialmente. Cuando el script llega a sem --wait , los tres commands se ejecutan y finalizan.

Intenta agregar una & a la línea sem -j 3 $cmd . Esto ejecutará cada command en el background, en paralelo.

 cmds=("prog 1 2 3" "prog 4 5 6" "prog 7 8 9") for cmd in "${cmds[@]}" do sem -j 3 $cmd & done sem --wait