GNU Parallel faz isso e mais (usando ssh).
Ele pode até mesmo lidar com velocidade mista de máquinas, já que ela simplesmente tem uma fila de tarefas, que são iniciadas na lista de máquinas (por exemplo, uma por núcleo da CPU). Quando um trabalho termina, outro é iniciado.
Por isso, não divide os trabalhos em clusters antes de iniciar, mas dinamicamente.
Assista aos vídeos de introdução para saber mais: link