Computação de alto desempenho

Este artigo escrito por Marcos Pitanga nos insere no conceito de clusterização, nos explicando o que é um cluster, para que serve, suas aplicações, custos e também nos apresenta o projeto MultiPinguim, assim como os passos para sua implementação.

[ Hits: 59.132 ]

Por: Marcos Pitanga em 17/07/2003


O Cluster MultiPinguim



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.

Página anterior     Próxima página

Páginas do artigo
   1. Projeto MultiPinguim - computação de alto desempenho
   2. O Cluster MultiPinguim
   3. Passos para implantação do MultiPinguim
   4. O Futuro dos clusters classe Beowulf
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

ttyrec - Ferramenta para auditoria de sistemas Linux

Filtro de conteúdo e vírus: Slackware 10.2 + Squid + Dansguardian + Clamav

Configurando um servidor de logs simples

Montando um completo servidor de backup usando Bacula

Segurança em Software de Código Aberto

  
Comentários
[1] Comentário enviado por repolho em 18/07/2003 - 10:52h

vale a pena reslatar outro site interessantissimo
http://ha.underlinux.com.br/

[2] Comentário enviado por mologni em 26/01/2005 - 05:26h

Excelente artigo Marcos.

Para os demais leitores recomendo lerem também os artigos sobre MOSIX: www.mosix.org e openmosix.sourceforge.net.

[]'s...

[3] Comentário enviado por fag_oliv em 15/03/2007 - 09:03h

Ola pessoal ... existe openmosix para kernel 2.6.17 ou 2.4.33, ou softwares de simples configuração para a mesma finalidade.

[4] Comentário enviado por hemersonmilano em 19/03/2009 - 13:18h

Excelente artigo,
Todos artigos do Marcos Pitanga estão me ajudando muito.

O Marcos tem uma excelente didática e conhecimento.

Valeu Marcos pela ajuda.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts