Se você se deparar com esse tipo de coisa, tente o Parallel . É como o dsh (shell distribuído), mas possui alguns recursos interessantes, como contar semáforos e é mantido ativamente.
A partir da documentação:
EXEMPLO: GNU Parallel como sistema de filas / gerenciador de lotes
O GNU Parallel pode funcionar como um sistema simples de fila de tarefas ou gerenciador de lotes. A idéia é colocar os trabalhos em um arquivo e fazer com que o GNU Parallel leia continuamente. Como o GNU Parallel irá parar no final do arquivo, usamos tail para continuar lendo:
echo >jobqueue; tail -f jobqueue | parallel
Para enviar seus trabalhos para a fila:
echo my_command my_arg >> jobqueue
Obviamente, você pode usar -S para distribuir os trabalhos em computadores remotos:
echo >jobqueue; tail -f jobqueue | parallel -S ..
Existem muitos exemplos excelentes que apenas arranham a superfície. Aqui é legal.
EXEMPLO: Distribuindo trabalho para computadores locais e remotos
Converta * .mp3 em * .ogg executando um processo por núcleo de CPU no computador e servidor local2:
parallel --trc {.}.ogg -j+0 -S server2,: \
'mpg321 -w - {} | oggenc -q0 - -o {.}.ogg' ::: *.mp3