MONTAGEM DE UM CLUSTER COM O MOSIX

INTRODUÇÃO

 

Esse trabalho é parte de conclusão do curso de especialização em redes de computadores que tem 80 páginas, aqui estou postando apenas a montagem e teste (estudo de caso) e deixando de fora a parte teórica por questões de espaço. Foi documentado passo a passo a montagem do cluster com Mosix, possibilitando a montagem por pessoas com conhecimento básico em Linux.

Durante esse estudo de caso será montado um cluster do tipo load balancing com o Mosix e Linux usando a distribuição Debian 6(squeeze). Durante todo o processo será explicado como instalar, configurar e testar.

O maior desafio nesse trabalho foi implantar esse cluster com sistema operacional e softwares atualizados, o Debian 6 usa kernel 2.6, mas a ideia é montar com versões mais recentes e por isso a versão do kernel em que o Mosix foi instalado foi a 3.0.13, isso garante um sistema atual e mais seguro.

A maior parte da documentação disponível usa versões antigas como kernel 2.4 e 2.6 e muitas vezes difíceis de conseguir os aplicativos e patchs necessários à instalação, já que os repositórios não estão mais disponíveis para downloads. Daí cada vez mais a necessidade de fazer o sistema com kernel e aplicativos atualizado e facilmente encontrados nos repositórios para download.

Foi montada uma infraestrutura para a instalação do cluster usando três desktops, um notebook e um switch fabricado pela Cisco de 100Mbps para conectar esses computadores na rede LAN.

EQUIPAMENTOS DE HARDWARE USADO PARA O CLUSTER

O cluster foi instalado em 3 computadores PC físicos, sendo que em um desses foram instaladas duas (2) máquinas virtuais para facilitar na documentação e retirada dos prints (telas). Esses computadores tem configurações distintas, incluindo desktop Pentium 4, Desktop i5 (rodando 2 máquinas virtuais) e notebook core duo conforme a tabela 3.1, tudo conectado a um switch Cisco catalyst 2900XL de 100Mb/s e cabos metálico UTP CAT5e.

CONFIGURAÇÃO DA REDE

Os computadores foram configurados com os seguintes IP estáticos:

  • PC 1: 192.168.1.200 Máscara: 255.255.255.0 (Desktop i5, Virtualizado)
  • PC 2: 192.168.1.201 Máscara: 255.255.255.0 (Desktop i5, Virtualizado)
  • PC 3: 192.168.1.202 Máscara: 255.255.255.0 (Notebook)
  • PC 4: 192.168.1.203 Máscara: 255.255.255.0 (Pentium 4)

Certifique se que os computadores estão com os IPs corretamente configurados, use o comando “ifconfig” em cada computador conferindo assim suas configurações. Faça o teste de conectividade entre todos os computadores (nodes) que fazem parte do cluster, use o comando ping para se certificar que todos que estão na rede tem conectividade.

 

SISTEMA OPERACIONAL

 

Linux é o sistema operacional mais usado para computação distribuída, no site TOP 500 tem um ranking das distribuições de sistema operacional mais usado nos supercomputadores. O Linux corresponde aproximadamente à 90%, já que é um sistema de código aberto, o que torna extremamente flexível à adaptações e desenvolvimento de drivers de acordo com a necessidade do projeto.

Nesse projeto optei pela adoção da distribuição Debian 6 (squeeze) para computadores de 32bits, já que é que é uma distribuição muito estável e roda em computadores mais antigos, não exige muitos recursos de hardware como grades quantidades de memória e processamento, o que a torna extremamente importante em um projeto com essa finalidade.

Para fazer a instalação do cluster é necessário fazer a instalação de alguns pacotes básicos. Nesse projeto tudo foi instalado e configurado com os mais recentes pacotes, com as versões atualizadas, já que a grande maioria dos documentos disponíveis são desatualizados, onde tanto os pacotes assim como os respectivos repositórios não existem mais.

Daí o esforço de fazer a instalação desse cluster com Mosix com o que temos de mais atual em termos de versões de pacotes para o Debian. Essa instalação de pacotes e configurações são exatamente iguais em todos os computadores, já que estamos montando um cluster onde não temos a figura de cliente servidor, portanto não existe uma hierarquia entre eles.

INSTALAÇÃO DOS PACOTES NECESSÁRIOS

Execute a instalação dos pacotes abaixo:

# apt-get install gcc
# apt-get install libncurses5-dev
# apt-get install build-essential
# apt-get install libssl-dev
# apt-get install initramfs-tools -y

Esses procedimentos são feitos exatamente iguais para todos os computadores, por isso pode ser interessante baixar os aplicativos com a opção -d. Exemplo:

# apt-get install gcc -d

O apt vai fazer o download dos arquivos para a pasta /var/cache/apt/archives, depois é só usar os .deb para instalar nos outros computadores.

Copie os arquivos .deb para o mesmo diretório dos outros computadores que pertencem ao cluster e assim podem ser instalados sem a necessidade de baixar tudo novamente.

# cd /var/cache/apt/archives

Faça a instalação de todos eles ao mesmo tempo:

# dpkg -i *.deb
# apt-get -f install

Feito isso verifique as mensagens e observe possíveis mensagens de erro ou advertências.

Para que o sistema funcione é necessário instalar uma versão de kernel que seja compatível com a versão do Mosix, as versões apresentadas aqui funcionam perfeitamente, por isso siga rigorosamente essas versões. Todo o sistema operacional Linux Debian 6 (squeeze) e o Mosix são para plataforma de 32 Bits.

Acesse o site do kernel para fazer o download do kernel 3.0.13:

Faça o download do Mosix respeitando a versão, já que essa versão de Mosix aqui recomendada funciona com o kernel anteriormente comentado.

Acesse o site do Mosix para fazer o download do Mosix 2.32.0.3:

Mova o arquivo do kernel (linux-3.0.13.tar.bz2) para o diretório “/usr/src” com o comando:

# mv linux-3.0.13.tar.bz2 /usr/src

Descompacte o novo kernel:

# cd /usr/src
# tar -xvjf linux-3.0.13.tar.bz2

Agora mude para o diretório onde foi descompactado o kernel:

# cd linux-3.0.13

Teste se o kernel vai abrir com o comando:

# make menuconfig

Se tudo estiver correto devem aparecer as configurações do kernel, saia (Exit) sem salvar.

Mova o arquivo do Mosix (MOSIX-2.32.0.3.for_kernel-3.0.13.tbz) para o diretório “root” com o comando:

# mv MOSIX-2.32.0.3.for_kernel-3.0.13.tbz /root

Certifique que o arquivo está no diretório com o comando “ls -l” conforme comando abaixo: # ls -l
-rw——- 1 aluno aluno 1122599 Nov 9 16:23 MOSIX-2.32.0.3.for_kernel-3.0.13.tbz

Descompacte o arquivo:

# tar -xvjf MOSIX-2.31.0.0.for_kernel-2.6.39.2.tbz

 

INSTALAÇÃO DO MOSIX E COMPILAÇÃO DO KERNEL

 

Mude para o diretório que o Mosix foi descompactado:

# cd Mosix-2.32.0.3

Instale o Mosix:

# ./Mosix.install

Nessa primeira tela responda apenas dando um Enter:

Installing MOSIX: ================= If you are installing MOSIX for a set of nodes with a common root, then type the common root directory – if you are installing only the local node, press <ENTER> :-

Na próxima tela responda com o número “2”, já que é essa a versão de kernel que está sendo instalado já foi baixada e descompactada pronta no diretório:

32-bit Installation

Do you want to compile a MOSIX-enhanced kernel now?

1. Yes, please fetch the Linux kernel (3.0.13) sources from the internet.
2. Yes, the Linux kernel (3.0.13) sources are already on this computer.
3. No, or not now, because either:
a) I have already installed this kernel (or a compatible version).
b) I will install the kernel later.
c) I am happy to use MOSIX without a special kernel:
I am aware that only some features will work, such as
batch jobs using ‘mosrun -E’, but that is all I need.
d) I use openSUSE and therefore prefer the pre-compiled
MOSIX-kernel RPM from http://Mosix.org/text_acadnp.html.

Option [3]: 2

Na tela seguinte pede-se o local onde se encontra o novo kernel que desejamos instalar, coloque:

/usr/src/linux-3.0.13

O computador demora aproximadamente uns 30 segundos processando e abre a tela de configuração do kernel, nessa deve ser feito apenas uma única mudança, usando o teclado com a seta do para baixo, vá descendo até chegar na opção “Security options” e dê um enter.

Dentro dessa seção procure a opção “Enable different security models”, essa é a única mudança necessária, que deve ficar desmarcada/desabilitada sem o sinal * (asterisco). Essa opção desmarcada que equivale a disabled, para que Mosix funcione corretamente esse é o único parâmetro que deve ser alterado, todas outras opções deixe como estão.

Saia com “Exit” duas vezes e vai aparecer uma mensagem perguntando se deseja salvar as alterações, responda com “Yes” para sair e salve a alteração anteriormente feita.

A partir desse ponto começa a compilação do kernel, essa é a etapa que mais demora, dependendo do computador demora de 1h até 4h para terminar a compilação, tudo depende da configuração de hardware do computador. Enquanto isso espere a compilação completa para começar a configurar o Mosix.

Logo após a compilação que demora muito começam as configurações do Mosix, é só ir seguindo metodicamente as instruções e respondendo as interações dos menus até o final.

Na primeira tela responda digitando o número “1”, conforme abaixo:

Configure what :-
What would you like to configure?
=================================
-e 1. Which nodes are in this cluster (ESSENTIAL)
-e 2. Authentication (ESSENTIAL)
-e 3. Logical node numbering (recommended)
-e 4. Queueing policies
5. Freezing policies
6. MOSIX Reach the Clouds (MRC)
7. Miscellaneous policies
8. Become part of a multi-cluster organizational Grid
9. Parameters of ‘mosrun’

Configure what :- 1

Na próxima tela responda com “n”:

There are no nodes in your cluster yet:
=======================================

To add a new set of nodes to your cluster, type ‘n’.
To turn on advanced options, type ‘+’.
For help, type ‘h’.
To save and exit, type ‘q’. (to abandon all changes and exit, type ‘Q’)

Option :- n

A próxima tela pede o primeiro IP da rede que faz parte do cluster, coloque o IP “192.168.1.200”:

Adding new node(s) to the cluster:
First host-name or IP address :- 192.168.1.200
A próxima tela pede o número de Nós (node) que o cluster vai ter, responda com o número “4”:

Number of nodes :- 4

Na próxima tela responda com a letra “q” para sair:

Nodes in your cluster:
======================
1. 4 nodes starting from 192.168.1.200

To add a new set of nodes to your cluster, type ‘n’.
To modify an entry, type its number.
To delete an entry, type ‘d’ followed by that entry-number (eg. d1).
To turn on advanced options, type ‘+’.
For help, type ‘h’.
To save and exit, type ‘q’. (to abandon all changes and exit, type ‘Q’)
Option :- q

Na próxima tela responda com “Y” para yes:

Cluster configuration was saved.

OK to also update the logical node numbers [Y/n]? y

Na próxima tela confirme os dados com a letra “y”:

Suggesting to assign ‘192.168.1.200’
as the central queue manager for the cluster
(but be cautious if you mix 32-bit and 64-bit nodes in the same cluster)
OK to update it now [Y/n]? y

Na próxima tela responda com a opção “2”, é aqui onde vamos fazer as configurações de segurança colocando senhas e chaves para que somente os computadores desse cluster, que obrigatoriamente devem ter as mesmas chaves, se conectem:

What would you like to configure next?
======================================
-e 1. Which nodes are in this cluster
-e 2. Authentication (ESSENTIAL)
-e 3. Logical node numbering
-e 4. Queueing policies
5. Freezing policies
6. MOSIX Reach the Clouds (MRC)
7. Miscellaneous policies
8. Become part of a multi-cluster organizational Grid
9. Parameters of ‘mosrun’
q. Exit

Configure what :- 2

Para todas as opções de segurança foi adotado como padrão “1234”.

MOSIX Authentication:
=====================

To protect your MOSIX cluster from abuse, preventing unauthorized
persons from gaining control over your computers, you need to set
up a secret cluster-protection key. This key can include any
characters, but must be identical throughout your cluster.

Your secret cluster-protection key: 1234
Your key is 4 characters long.
(in the future, please consider a longer one)

To allow your users to send batch-jobs to other nodes in the cluster,
you must set up a secret batch-client key. This key can include any
characters, but must match the ‘batch-server’ key on the node(s) that
can receive batch-jobs from this node.

Your secret batch-client key: 1234
Your key is 4 characters long.
(in the future, please consider a longer one)

For this node to accept batch jobs,
you must set up a secret batch-server key. This key can include any
characters, but must match the ‘batch-client’ key on the sending nodes.

To make your batch-server key the same as your batch-client key, type ‘+’.
Your secret batch-server key: 1234
Your key is 4 characters long.
(in the future, please consider a longer one)

Na próxima tela, digite a letra “q”.

What would you like to configure next?
======================================
-e 1. Which nodes are in this cluster
-e 2. Authentication
-e 3. Logical node numbering
-e 4. Queueing policies
5. Freezing policies
6. MOSIX Reach the Clouds (MRC)
7. Miscellaneous policies
8. Become part of a multi-cluster organizational Grid
9. Parameters of ‘mosrun’
q. Exit

Configure what :- q

# apt-get install initrd.img-tools -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package initrd.img-tools
E: Couldn’t find any package by regex ‘initrd.img-tools’

Digite o comando abaixo para atualizar o novo kernel com os periféricos do computador:

# update-initramfs -c -k 3.0.13

Isso criará a imagem já com o Mosix e os drivers instalados, use o comando “update-initramfs -c -k 3.0.13” para criar o arquivo /boot/initrd.img-3.0.13. Esse “3.0.13” é a versão do kernel novo que está sendo compilado:

# update-initramfs -c -k 3.0.13
update-initramfs: Generating /boot/initrd.img-3.0.13

Se o comando for executado com sucesso deve ter sido gerado um arquivo de inicialização chamado “initrd.img-3.0.13”. Para se certificar que o arquivo foi criado com sucesso, digite o comando para listar arquivos dentro do diretório de boot.

Agora deve ser apontado para fazer o boot, quando o computador iniciar devem aparecer os 2 kernels, sendo um kernel 2.6.32.5-686 que é o do Debian original e o outro 3.0.13, que é o que suporta o Mosix. Sempre que for usar o Mosix a iniciação do computador necessariamente precisa ser feita por esse kernel. Para fazer esse apontamento use o comando:

# update-grub

e se forem encontrados todos os arquivos de imagem, surge a mensagem “done”.

Esse procedimento deve ser seguido rigorosamente igual para todos os outros computadores que deseja colocar no cluster, as únicas diferenças nos computadores são os IPs, cada um deve ter seu IP único. Nesse exemplo foram usados IPs de 192.168.1.200 até 192.168.1.203, já que nesse cluster são 4 computadores.

Agora reinicie o computador e observe logo que o computador iniciar o boot se aparece à opção com o novo kernel, se aparecer selecione essa opção dando um “Enter” ou aguarde alguns segundos que inicia automaticamente.

 

MONITORAMENTO E STATUS DO CLUSTER

 

Nessa versão de Mosix instalado, quando se liga o computador ele automaticamente já inicia (start) o Mosix, caso não aconteça essa inicialização automaticamente pode ser feito manualmente com o comando:

# /etc/init.d/Mosix start

Caso deseje parar (stop) o Mosix digite:

# /etc/init.d/Mosix stop

Isso faz o computador sair do cluster.

Para verificar o estado (status) do Mosix digite:

# /etc/init.d/Mosix status

Esse comando exibe várias informações úteis.

Já com os 4 computadores prontos e em rede, use o comando mon para verificar o processamento e se todos os computadores do cluster estão se enxergando.

A nomeação do número dado pelo Mosix começa sempre do menor IP para o maior IP, exemplo o 1 foi atribuído ao computador que está configurado com o IP 192.168.1.200, assim como o 4 foi atribuído ao computador que está configurado com o IP 192.168.1.203.

Após fazer toda a instalação, nesse caso de um cluster de 4 computadores onde durante a instalação foi definido o primeiro IP do cluster e o número de Nós (node) que o sistema tem, assim como as chaves de autenticação (Keys) que nesse caso foi usado “1234”, qualquer um desses parâmetros pode ser alterado sem que precise reinstalar ou compilar o kernel novamente.

Com um editor de texto como o “vi”, edite o arquivo que desejar no diretório /etc/Mosix. Os principais arquivos são:

  • Mosix.map – onde se trata da lista de IPs dos Nós (nodes) do cluster;
  • features – indica as características do nodo;
  • secret – arquivo que guarda a senha (key) de acesso ao cluster;
  • ecsecret – senha (key) para autenticação de clientes de serviço batch;
  • essecret – senha (key) para autenticação se servidor de serviços batch;
  • freeze.conf – configuração de políticas de congelamento de processos;
  • queue.conf – indica o gerenciador de fila de processos padrão;
  • userview.map – indicação do número do Nó pelo monitor.

Abaixo temos um exemplo do arquivo Mosix.map, que pode ser editado para suportar os computadores adicionais que possam ser incorporados ao sistema ou mesmo quando se deseja alterar as chaves (Keys) ou os IPs da rede.

Exemplo: alterar o IP inicial do cluster e o número de Nós (node) que o sistema tem, nesse caso o procedimento deve ser feito em todos os computadores do cluster:

# vim /etc/Mosix/Mosix.map

Para alterar o código de autenticação (key) edite o arquivo /etc/Mosix/secret, o código deve ser o mesmo para todos os clusters. Caso deseje alterar a chave o procedimento deve ser feito em todos os computadores.

 

TESTES E BENCHMARK

 

mon – Mostra as informações do cluster e utilização individual de cada Nó. Já dentro do terminal (TTY) de mon, digite uma das opções que deseje monitorar:

  • l – Carga da CPU (load)
  • m – Memória ou Swap usado em cada Nó
  • u – Utilização individual de cada Nó

d/D – Nós morto (dead)

  • h – Lista complete de ajuda para os comandos

Quando montamos um novo cluster, a primeira curiosidade que temos é saber o desempenho, o quanto é rápido ao rodar os aplicativos, sua capacidade de processamento. Várias métricas podem ser usadas para aferir a real capacidade do cluster, mas duas delas são as mais usadas. Em aplicações científicas o que mais importa é a quantidade de operações com ponto flutuante o computador é capaz de realizar por segundo, essa pode ser medida em unidades de kiloflops/s, megaflops/s, gigaflops/s, teraflops/s, exoflops/s, zettaflop/s e yottaflop/s. Em supercomputadores o mais habitual que encontramos são os gigaflop/s, que equivalem a bilhão e teraflop/s equivale a trilhão.

Para aplicações não cientificas a métrica mais importante é a capacidade que o computador tem de executar instruções por segundoe normalmente é medido em Mop/s (milhões de operações por segundo) e Gop/s (bilhões de operações por segundo). A expressão para calcular o desempenho de operações com ponto flutuante pode ser feita usando a fórmula: [STE 2002]

P = N ∗ C ∗ F ∗ R

Onde temos:

  • P=Performance, is typically given in Mflops or Gflops.
  • N=Number of nodes.
  • C=nnumber of CPUs per node.
  • F=number of Floating-point operations per clock period.
  • R=clock Rate, measured in cycles per second.

Para rodar um aplicativo no cluster, chame o aplicativo precedido do comando mosrun, com esse parâmetro a aplicação pode fazer a migração para os Nós que estejam disponíveis para fazer o processamento. No ANEXO III tem uma lista com os principais comandos usado no Mosix, no site oficial do Mosix também tem documentação completa.

No Mosix vem um aplicativo para testar o sistema, é um aplicativo que gera uma grande carga de processamento e com isso podemos verificar o processamento em cada Nó do sistema. Esse aplicativo é o testload, que pode ser chamado precedido do mosrun para que esse possa ser executado pelo Mosix distribuindo a carga para o Nó que esteja menos ocupado.

Se passado como parâmetro o Nó onde desejamos executar, esse será movido para o Nó especificado. Para testar todos os Nós foi executado uma cópia em nada Nó usando o parâmetro para especificar os Nós de 1 à 4, assim temos certeza que todos os computadores serão carregados com esse aplicativo de teste. Em qualquer um dos Nós foi executado o comando:

# mosrun -1 testload &
# mosrun -2 testload &
# mosrun -3 testload &
# mosrun -4 testload &

Ao fazer essas 4 chamadas do aplicativo testload e explicitando onde deve rodar, podemos monitorar o resultado com o comando “mon” de qualquer computador que esteja no cluster ou mesmo do computador onde foi executado o testload. Digite mon e em outro terminal foi usado o comando top para verificar os aplicativos que estão sendo executados.

Para testar o desempenho e termos uma ideia da capacidade de processamento do cluster foi desenvolvido um programa para testar a quantidade de Mflop/s individualmente entre cada Nó, esse teste é interessante pois com isso podemos saber a capacidade do cluster.

O comando mosrun pode vir acompanhado além da aplicação que desejamos rodar de mais opções, entre elas podemos informar em qual Nó (node) queremos executar o aplicativo, exemplo:

# mosrun -4 ./flops

Esse comando executa o aplicativo “./flops” no computador 4, mesmo tendo sido digitado de qualquer outro computador. Posso verificar se a aplicação realmente está sendo executada no computador que desejo fazendo o monitoramento com o comando mon, que mostra a carga das CPU individualmente.

Se não tivesse passado o parâmetro “-4” no mosrun, esse aplicativo seria executado em qualquer outro computador que estivesse menos ocupado e mesmo estando sendo executado em um determinado computador, caso o mesmo venha a ser sobrecarregado por aplicações locais, o processo é migrado automaticamente sem nenhuma intervenção do operador para outro computador menos carregado. Essa técnica também chamada de preemptive process migration, ou seja, dá preferência para a migração do processo de forma silenciosa.

Para completar o teste vou chamar o aplicativo cada um rodando em um computador diferente para somar e saber a capacidade em Mflops tem o cluster. Foi rodado o aplicativo “flops” ao mesmo tempo nos diferentes computadores, nesse tipo de medição é testado inclusive a capacidade da rede e por isso os resultados são sempre menores do que rodar o aplicativo individualmente em computadores isoladamente. Em todo caso a soma dos Nós deu 2320 Mflop/s, ou 2,3Gflop/s.

Durante esse teste foi monitorado a carga dos computadores e podemos observar que os 4 computadores processaram ao mesmo tempo, sendo que o PC 4 foi o que mais ficou sobrecarregado já que ele é o que tem menor poder de processamento entre os outros e por isso precisou trabalhar mais para executar a mesma tarefa.

Foi desenvolvido um aplicativo em linguagem C para gastar tempo, é um laço for alinhado com outro for sendo executado 200.000 vezes 150.000 e durante o processamento é medido o seu tempo e com isso podemos saber exatamente quanto cada computador demora para realizar o calculo, esse código também pode funcionar em cluster do tipo Beowulf já que usa a biblioteca de “mpi” de paralelismo de instrução.

#include "mpi.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
double i, j;
double startwtime = 0.0, endwtime;
MPI_Init(&argc,&argv);
startwtime = MPI_Wtime();
for(i=0;i<200000;i++) { for(j=0;j<150000;j++);}
endwtime = MPI_Wtime();
printf("
Tempo de Processamento = %.3fmS
", endwtime-startwtime);
fflush( stdout );
printf("
Projeto: HPC - Cluster Mosix
©2012 - Francisco Aldevan


");
MPI_Finalize();
return 0;
}

Esse código foi compilado e rodado nos computadores PC 2 e PC 4, já que são computadores com recursos de hardware bem diferente e foi analisado quanto tempo cada computador demora para resolver e finalizar, no PC 2 demorou 43 segundos e no PC 4 demorou 81 segundos.

Toda a montagem do sistema foi feita de maneira experimental e com os computadores disponíveis no momento, para se interligar os computadores em rede foi usado um switch fabricado pela Cisco modelo Catalyst 2900XL, que estava montado no rack do Laboratório. É um switch que funciona em 10/100Mbps de 24 portas e configurado para funcionar em modo full duplex e em fastethernet, já que todos os computadores suportavam 100Mbps. Nesse mesmo rack tem diversos outros equipamentos como roteadores e switches para teste e experiências, no momento da montagem do cluster foi usado apenas o switch.

CONCLUSÃO

A necessidade cada vez maior por demanda de processamento e alta disponibilidade nos serviços que não podem parar e precisam de um alto uptime faz dos clusters uma alternativa altamente recomendada, dado seu baixo custo de implantação com componentes facilmente encontrados no mercado e dispensando tecnologias caras e proprietárias oferecidas no mercado de supercomputadores.

Com a popularização dos computadores pessoais cada vez mais poderosos e menor custo, ficam claras as vantagens de desenvolver grandiosos projetos com clusters de computadores de alto desempenho e confiável.

O uso de Software Livre também é outro grande atrativo, já que além da redução de custo existe a possibilidade de serem desenvolvidos novos dispositivos, drivers e sockets específicos para um determinado hardware, aumentando as possibilidades do projeto e dando total liberdade para seus idealizadores.

Outra grande vantagem econômica é a possibilidade implantação de clusters com computadores usados e mais antigos com recursos de hardware limitados e distintos, inclusive de diversos fabricantes, fazendo com que possa ser integrado à rede do cluster sem causar prejuízo ao sistema, já que funcionam de maneira independente e podem entrar e sair do cluster normalmente sempre que necessário sem a necessidade de paradas ou desligamento do mesmo.

Essa aplicação também pode ser muito útil em universidades para o ensino de programação em sistemas de paralelismo, pesquisas e simulações mais pesadas que exigem alto poder de processamento, visto que pode ser montado pelos próprios alunos aproveitando o parque tecnológico ou estações de trabalho dos laboratórios de informática da instituição para a montagem do sistema.

No projeto de um cluster a primeira análise a ser feita é saber exatamente a finalidade à que se propõe o projeto, visto que cada sistema tem finalidade distinta e especifica para rodar as aplicações dos usuários e é fator decisivo na escolha de um projeto de computação distribuída, seja para alto desempenho (HPC), alta disponibilidade (HA), balanceamento de carga (HS) ou computação em grade (Grid Computing), são sistemas completamente distintos e que fazem uso de aplicativos distintos, não sendo compatíveis na maioria das aplicações.

Quanto ao desempenho apresentado nos testes realizados foi bastante promissor, já que entre os computadores foi usado computadores mais antigos, inclusive computador com processador Intel Pentium 4 e no geral somando a capacidade de processamento dos quatro computadores do cluster deu uma capacidade de 2,3 bilhões de operações com ponto flutuante por segundo.

Rolar para cima