Estratégias para construir sistema de computação distribuída com sistemas Mac e Linux híbridos

2

Eu quero construir um sistema de computação distribuída para executar o Matlab, C e outras linguagens de programação para computação científica. Agora, tenho várias máquinas Mac antigas com o Lion Mac OS instalado como servidores Web ou computadores pessoais. Eu também tenho uma máquina mais recente de 16-Xeon-core para ser instalada com o Linux. Eu não decidi qual distribuição Linux deveríamos usar para a nova máquina, mas precisamos considerar os seguintes fatores. Por favor, me ajude a decidir qual distribuição Linux eu posso usar, qual software de computação de distribuição eu posso usar e como gerenciar os backups de dados e atribuições de filas.

  1. Todas as máquinas com sistema operacional Mac ou Linux podem ser servidas como um sistema de cluster para computação paralela ou distribuída. Para ser específico, queremos executar programas cruzando máquinas em uma fila com vários usuários e encadeamentos. No caso em que todas as máquinas não são simétricas, mas não queremos diminuir a velocidade da máquina mais potente.

  2. A nova máquina é preferível para ser usada como um nó principal, mas pelo menos uma máquina secundária também deve ser capaz de atuar como um nó principal no caso de o nó principal ser desligado.

  3. O processo de backup deve ser fácil de configurar e pode ser controlado remotamente. Isso não é tão importante quanto os dois primeiros fatores. Pelo menos podemos fazer backup de dados importantes manualmente.

Eu já pesquisei no Google, mas não encontrei soluções decentes para o meu caso. Agradecemos antecipadamente por suas sugestões!

    
por Xiaodong Qi 22.09.2013 / 20:01

1 resposta

0

Tendo configurado alguns clusters HPC no meu tempo, posso dizer-lhe que o que você quer fazer vai lhe causar uma enorme quantidade de problemas com problemas de compatibilidade entre os nós no cluster - o que provavelmente é porque você pode ' t encontrar uma resposta direta via google.

Esses problemas de compatibilidade incluem diferenças nas versões de software, bibliotecas de sistema, bibliotecas numéricas e de computação, C & Compiladores Fortran etc (e suas bibliotecas), PATH & LD_LIBRARY_PATH variáveis, diferenças entre as versões GNU e não-GNU dos utilitários shell, possivelmente CUDA vs OPENCL (ou versões do mesmo) para computação GPGPU, e muito mais.

Você se depararia com muitos desses problemas usando apenas duas distribuições diferentes do Linux (ou até versões diferentes da mesma distro em nós diferentes do cluster).

Você pode achar que é simplesmente mais fácil configurar dois clusters - um com um único nó (o Xeon executando linux) e outro com vários nós (Macs antigos executando o OS X Lion)

No entanto, se isso não for uma opção, a coisa mais importante a considerar é o escalonador, não a distribuição do Linux.

Eu pessoalmente não gostaria de configurar o que você quer, mas se eu tivesse que, eu não consideraria usar PBS ou Torque , eu usaria Slurm . O Slurm tem um controle muito mais detalhado sobre quais aplicativos podem ser executados em quais nós. O Mecanismo de Grade da Oracle é outra opção que pode fazer o que você quer, mas eu não sou familiarizado o suficiente para fazer mais do que mencionar o fato de que existe.

    
por 23.09.2013 / 03:30