A resposta para isso é altamente aplicativo específico. 3dinfluence já mencionou a possibilidade do Hadoop, o que é ótimo se o seu aplicativo se quebrar no modelo de execução Map-Reduce.
Se você estiver planejando distribuir sua carga de trabalho para vários nós, mas ainda quiser ter apenas uma instância de seu aplicativo em um modelo de execução semelhante a um thread, precisará procurar alguma forma de MPI.
MPI é um padrão com uma interface comum, mas existem várias implementações, como OpenMPI e MPICH . Essencialmente, você projeta seu aplicativo para gerar várias cópias que passam mensagens entre si. O MPI então abstrai o método real de comunicação. Em vez disso, ele fornece uma série de funções primitivas, como enviar, receber e transmitir, usadas no design do aplicativo. A comunicação real é então tratada por um módulo na pilha MPI escolhida.
O OpenMPI inclui muitos transportes, incluindo memória compartilhada, TCP / IP, InfiniBand, Myrinet Express e muito mais. Qual deles e como você os configura é altamente dependente de aplicativos.
Normalmente, as tarefas do MPI serão alocadas a nós no cluster usando algum tipo de sistema de enfileiramento de lotes, como Torque ou Mecanismo Sun Grid . Isso se torna mais útil se você compartilhar seu cluster entre vários usuários e precisar agendar seus recursos de cluster.
Sugiro que você confira o site do projeto do Cluster do Gentoo e dê uma olhada em alguns dos recursos vinculados . Eles ajudarão você a entender melhor os aplicativos em execução em um ambiente em cluster e ajudarão a restringir as áreas nas quais você precisa de mais ajuda.