# Aglomerado Beowulf

Beowulf é um projeto para aglomerados de computadores (ou Clusters) para computação paralela, usando computadores pessoais, não especializados e portanto mais baratos. O projeto foi criado por Donald Becker da NASA, e são utilizados em todo mundo, por exemplo no processamento de dados com finalidade científica e na renderizacão de filmes de animação 3D.

## Introdução

Para entender o que é um Cluster Beowulf, é necessário primeiro entender o conceito de um Cluster. Cluster é um termo bastante utilizado para definir a utilização de dois ou mais computadores independentes, interligados via rede, que trabalham em conjunto trocando informações entre si em torno de uma única tarefa. Indo mais a fundo, ele pode ser definido como um conjunto de nós processadores que, interligados, comportam-se como um sistema distribuído. Existem dois tipos de clusters:
* Alta Disponibilidade (HA- High Availability) - tem a finalidade de manter um determinado serviço de forma segura o maior tempo possível;
* Alta Performance (HPC- High Performance Computing) - é uma configuração designada a prover grande poder computacional, maior que somente um único computador pudesse oferecer em capacidade de processamento.
É possível a utilização de clusters HA e HPC juntos, onde se resulta num cluster com características combinadas entre estes dois tipos de clusters.

## Cluster Beowulf: O que é?

Cluster Beowulf são clusters de desempenho escaláveis, baseados numa infraestrutura de hardware comum, rede privada e software 'open source' (Linux). O 'hardware comum' pode ser qualquer tipo de computador, significando que não é necessário usar equipamentos próprios para cluster, bastando utilizar equipamentos comuns a redes tradicionais e PCs. Para Clusters Beowulf, existe um servidor responsável por controlar todo o cluster, principalmente quanto à distribuição de tarefas e processamento. Como utiliza computadores comuns, o desempenho pode melhorar de acordo com as máquinas (nós) que o desenvolvedor (Linux) acrescentar, uma vez que o processamento é feito paralelamente. Isso porque a tarefa a ser processada é separada em partes independentes, distribuídas nos vários nós que estão na estrutura do cluster, nos quais as informações são processadas pela máquina que é designada como servidor do sistema. Um cluster Beowulf é um cluster voltado para desempenho, normalmente utilizado para processamento científico, ou seja, processamento em larga escala.

## Como implementar?

Como não depende de equipamento específico, o cluster Beowulf é basicamente composto de uma máquina chamada de servidor e outras máquinas chamadas escravas, sendo uma ou mais. A configuração do cluster consiste essencialmente de dois passos: Configuração no nó mestre (servidor) e configuração dos nós escravos. A implementação acontece através de modificações no Linux, ou através do uso de ferramentas e bibliotecas de programação específicas para esse fim. Em todos os casos, o objetivo é permitir a distribuição das tarefas entre os PCs que fazem parte do cluster.

## Vantagens e Desvantagens

Vantagens Quanto às vantagens de um Cluster Beowulf podemos citar:
* Sistemas escaláveis, sendo possível pôr em rede e coordenar um grande número de nós, não existindo um limite definido para o tamanho do cluster.
* Os equipamentos utilizados são facilmente comercializados, não necessitando de um equipamento específico para a criação do cluster.
* No caso de um nó defeituoso, a substituição é tão simples quanto mudar um PC. Desta forma, é possível gerenciar as falhas de maneira eficiente, baseando-se na fácil substituição de equipamentos.
* Existe uma mobilidade em relação ao fornecedor de hardware, uma vez que os equipamentos são comuns. Desta forma, quem for implementar o cluster Beowulf não fica amarrado a comprar peças de um único fornecedor.
* Com sistema operacional ‘open-source’, o software inclui o código fonte, permitindo o debug dos erros e correções.
Desvantagens Clusters Beowulf parecem muito bons, no entanto, também existem algumas desvantagens:
* A grande maioria do hardware de rede não foi criada para funcionar em processamento paralelo.
* Mesmo com a popularidade crescendo, existem ainda poucos softwares que suportem e tratem este tipo de cluster como um sistema único.

## Opções de Software

A comunidade sobre Beowulf vem crescendo bastante e estes clusters já estão totalmente integrados com softwares comercializados pelos seguintes fornecedores:
* HP
* Northrop Grumman
* Accelerated Servers
* Penguin Computing
* Aspen Systems
* PSSC Labs
* Custom Fit, Inc.
* Atipa
* Turbotek
* Microway

## Conclusão

Através de todo o estudo desenvolvido, concluiu-se que a implementação de um Cluster Beowulf não depende de nenhum tipo específico de equipamento, além de ser desenvolvido sobre uma plataforma aberta, o que possibilita ser bastante evolutivo. Desta forma, a utilização deste cluster se faz muito viável, comparando as diversas vantagens que se sobressaem sob as desvantagens, uma vez que exista a necessidade de processamento com alto desempenho e alta disponibilidade, com limitações de budget (orçamento). Pode-se observar que a comunidade “beowulf” vem crescendo, mas que ainda faltam mecanismos que possibilitem melhor funcionamento em alguns hardwares, suporte e disseminação de informação para que esta popularidade e uso cresça ainda mais.