segunda-feira, 26 de outubro de 2015

Tipos de cluster: parte 1 - Beowulf


Como já dito no último post, a função dos clusters é aumentar a capacidade de processamento através da divisão de tarefas entre vários processadores.  Isso pode dar a impressão de que clusters em geral são muito caros, viáveis apenas a grandes centros de pesquisa e empresas. Desde a criação dos clusters Beowulf, isso deixou de ser verdade, como é possível perceber a seguir.

O que é:

Criado em 1994, no CESDIS (Center of Excellence in Space Data and Information Sciences), uma contratante da NASA, por Don Becker e Thomas Sterling, o primeiro cluster Beowulf foi construído com 16 processadores Intel DX4, conectados por ethernet de 10MBit/s. Seu nome é uma referência ao poema épico inglês Beowulf, em que o protagonista teria a força de trinta homens.

O Borg, cluster Beowulf de 52 nós usado pelo grupo de pulsares da Universidade McGill

Pelos processadores usados no primeiro Beowulf – Intel DX4, também conhecido como i486, uma linha comercial comum na época – é possível perceber que o custo é relativamente baixo em relação à performance. Graças a esse custo-benefício, esse tipo de cluster é frequentemente usado em laboratórios de universidades, para a pesquisa científica.  

Neste tipo de cluster, um computador mestre, denominado front-end, controla os demais, chamados de back-end, geralmente através de redes Ethernet. Frequentemente é usada alguma variação de Linux, como o MOSIX, por questões de preço, independência e estabilidade, enquanto a comunicação entre os nós é feita por bibliotecas como a PVM (Parallel Virtual Machine) ou a MPI (Message Passing Interface).

Vantagens e desvantagens:

Graças à simples possibilidade de acrescentar novos componentes, os sistemas Beowulf são escaláveis, isto é, podem acompanhar a evolução das necessidades do usuário.

Beowulf de 8 nós

Além disso, a manutenção é relativamente simples, já que, no evento da falha de um dos nós, a solução é simplesmente substituir o nó, e o sistema utilizado é open source – permitindo a livre adaptação de suas características. Isso, junto a um custo muito baixo, por fazer uso de um sistema gratuito e de componentes baratos e de fácil obtenção, torna o Beowulf um tipo de cluster bastante acessível.

Por outro lado, apresenta latência superior e largura de banda inferior a outras arquiteturas, exigindo algoritmos que sejam tolerantes a isto. Como este problema existe porque o hardware de rede usado geralmente não foi criado com este intuito em específico, existe a possibilidade de atenuá-lo usando outras opções mais focadas a esse uso, mas isso implica em custos mais altos.

Entre os próximos posts, falaremos sobre outros tipos de cluster.


Referências:


"About Beowulf", pelo Pickett Group da UC Davis - http://yclept.ucdavis.edu/Beowulf/aboutbeowulf.html

"Clusters Beowulf", por Hugo Emanuel Gonçalves Teixeira, Maria João Almeida de Sá Barros e Paulo Jorge Marques Coelho - http://www.cesarkallas.net/arquivos/apostilas/redes/beowulf_clusters.pdf

"Uma Abordagem para Alta Demanda de Processamento Utilizando Cluster de Beowulf", por Líliam Barroso Leal e Francisco Xavier de Vasconcelos Filho - http://www.pop-pi.rnp.br/system/uploads/article/archive/1/Lilian_ClusterdeBeowulf_2011.pdf

"Cluster: conceito e características", por Info Wester - http://www.infowester.com/cluster.php