distcc
pode ser usado para compilar códigos em várias máquinas.
A partir das informações do pacote debian distcc
:
Package: distcc
Description-en: simple distributed compiler client and
server
distcc
is a program to distribute compilation of C
or C++
code across several machines on a network. distcc
should always generate the same results as a local compile, is simple to install and use, and is often significantly faster than a local compile. distcc
does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed.
Homepage: http://distcc.org/
Para outras tarefas, é muito mais complicado do que um script "executar uma tarefa e dividir a carga nos computadores". Você precisará usar um agendador (por exemplo, slurm ou torque - ambos empacotados para a Debian e a maioria das outras distribuições. Minha preferência é para slurm
).
Em outras palavras, transforme sua coleção de máquinas linux em um cluster. Isso não é particularmente difícil de ser feito, mas é uma boa quantidade de trabalho e requer muita leitura e compreensão (e muito do que você lê será relevante para grandes clusters de HPC em universidades ou laboratórios de pesquisa, mas não é realmente relevante para um pequeno cluster doméstico).
Observe que, se você quiser executar programas que distribuam a carga de trabalho por várias máquinas no cluster simultaneamente, eles precisarão:
-
esteja realizando um trabalho adequado para ser executado em paralelo (por exemplo, o trabalho pode ser dividido em pequenos blocos que podem ser processados separadamente, com os resultados combinados posteriormente)
-
têm acesso compartilhado aos recursos necessários (por exemplo, um servidor NFS para ler e gravar arquivos)
E também:
- precisam ser escritos especificamente para se comunicar com outras instâncias em execução em outros nós do cluster (por exemplo, usando um MPI biblioteca como Open MPI )
OR
- tem um processo mestre de controle que faz a comunicação e o controle, que é o que o
distcc
faz.