O cluster MultiPinguim é um multicomputador, segundo a taxonomia de Flynn,
1972, usado para a computação paralela consistindo em um ou mais
computadores mestres, chamados de front-end, e um ou mais computadores
escravos, chamados de back-end, conectados por uma rede local de alta
velocidade. Todos os computadores nesta arquitetura rodam o sistema
operacional
Linux de distribuição gratuita.
Antes de se construir um cluster da classe Beowulf, decisões sérias devem
ser tomadas na fase de projeto. Para conectar microcomputadores em rede,
pode-se usar o padrão de redes Fast-Ethernet ou tecnologias superiores. É
necessário selecionar um computador, preferencialmente o mais poderoso,
para ser o servidor-mestre do cluster e nele instalar duas placas de
comunicação (NIC - Network Interface Card), uma para atender aos usuários
fora do cluster e a outra para a comunicação entre os computadores escravos
do cluster. O ambiente utilizado para estudo e desenvolvimento é composto
dos seguintes equipamentos:
- Mestre: Pentium III 600, 256mb SDRAM, Placa de Vídeo 32MB AGP, Unidade de CDROM 56X. HardDisk SCSI 9GB Ultra Wide, Placa SCSI Adaptec 2940UW, Gabinete ATX Médio, 2 Placas de Rede 3COM 3c590, Unidade de Zip Drive 100MB, Monitor 17` Hansol, Mouse Microsoft PS/2, Teclado 104 Teclas ABNT2, Floppy 1.44MB, Placa mãe Asus P3BF.
- Escravo (7 unidades): Pentium 233MMX, 64mb SDRAM, Placa de Vídeo 4MB AGP, Gabinete Mini-Torre, 1 Placa de Rede 3COM 3c590, Floppy 1.44MB, Placa mãe Soyo SY-5EH5.
- Rede e infra-estrutura: Switch TrendNet 8 portas Modelo TE100-S88E Store and Forward, 1 Monitor 14", 2 chaveadores de teclado/monitor/mouse, 1 patch panel de 12 portas de parede, Cabos UTP Cat 5, 2 Nobreaks
O computador mestre funciona como servidor de arquivos para os computadores
escravos utilizando o protocolo NFS e também como porta de entrada para os
usuários que desejem utilizá-lo.
A tarefa dos computadores escravos é a execução exclusiva das tarefas
paralelizadas. Em geral, inclusive no Multipinguim, não é necessária a
utilização de monitor, mouse e teclado nos computadores escravos, sendo
todos eles gerenciados e controlados remotamente pelo computador mestre.
Como os computadores escravos não são acessados diretamente pelos usuários,
usamos o endereçamento IP reservados 10.0.0.0/8 ou 192.168.0.0/16 para este
fim.
Na perspectiva dos usuários, o cluster se parece com um sistema de
processamento massivamente paralelo. No computador mestre, os usuários podem
desenvolver e executar suas aplicações paralelas.
A coordenação das tarefas é feita por troca de mensagens de um computador
para outro. Há duas bibliotecas populares de troca de mensagens: a
Interface de Passagem de Mensagens (MPI - Message Passing Interface)
e a
Máquina Virtual Paralela (PVM - Parallel Virtual Machine), ambas
disponíveis gratuitamente por seus mantenedores via Internet. .
As aplicações podem ser divididas em várias tarefas que podem ser executados
então simultaneamente pelos vários processadores. Aplicações típicas
envolvem cálculos complexos, resolução de problemas de engenharia,
processamento de imagens, balanceamento de carga de servidores de internet,
quebra de código do DNA humano, aplicações meteorológicas, análises sísmicas
de explorações de petróleo, simulação de aerodinâmica de motores, desenho
de aeronaves e pesquisas biomédicas para modelagem molecular.
A maioria dos clusters Beowulf é baseada no sistema operacional Linux,
principalmente pelo fato de ser gratuito, porém outros sistemas como
Windows NT e Windows 2000 Server tiraram vantagem da sua característica
Multithreading para a construção do Beowulf-Like Windows NT. A implementação
MultiPinguim utiliza sistema operacional Linux, distribuição Conectiva 6.0.
Algumas implementações de MPI usam um esquema voltado para alcançar baixa
latência de comunicação; outros minimizam ciclos de cpu para tarefas de
comunicação entre as aproximações de interrupções ocasionadas por drivers
de dispositivos. O método anterior é mais satisfatório para aplicações com
um tamanho mínimo padrão para blocos de dados, enquanto o último ajuda a
maioria dos médios e grandes blocos de dados usados para as aplicações
paralelas. Utilizamos a implementação LAM/MPI 6.4.3a desenvolvido pela
Universidade de Ohio.
Para monitoração foi utilizada a ferramenta
SCMS, Smile Cluster
Management System, produzido por Kaserstart University, Bangkok, Thailand.
O Projeto Multipinguim é uma implementação de um cluster classe Beowulf,
que tem como principal objetivo criar um supercomputador para ser utilizado
em laboratórios de instituições de ensino superior para desenvolvimento de
aplicações paralelas, criando assim perspectivas de novos campos de pesquisa
através de cursos para programação paralela e construção de
supercomputadores domésticos.