• Nenhum resultado encontrado

Laboratório Virtual de Ensino em Computação Paralela

N/A
N/A
Protected

Academic year: 2020

Share "Laboratório Virtual de Ensino em Computação Paralela"

Copied!
9
0
0

Texto

(1)

Laboratório Virtual

de Ensino em Computação Paralela

1 Ricardo Staciarini Puttini

Universidade de Brasília, Brasília, Brasil

puttini@unb.br Rafael Timóteo de Sousa Jr

Universidade de Brasília, Brasília, Brasil

desousa@unb.br Alexandre de Araújo Martins

Universidade de Brasília, Brasília, Brasil

amartins@vma.com.br Gustavo Luchine Ishihara

Universidade de Brasília, Brasília, Brasil

luchine@hotmail.com

1 O presente trabalho foi realizado com o apoio do CNPq

Resumo

Neste trabalho é apresentada uma proposta para criação de um laboratório virtual de computação paralela. O laboratório consiste de um cluster de processamento paralelo utilizando-se computadores de arquitetura Intel podendo estes ser de simples 486s até um processador simétrico de última geração. O sistema operacional utilizado é o Linux por ser público, gratuito, e possuir código fonte aberto. O cluster utilizado utiliza tecnologia Beowulf desenvolvida pela NASA e biblioteca de programação MPI. O laboratório virtual pode ser acessado através de um navegador “Web” permitindo ao usuário executar remotamente tarefas distribuídas.

Palavras chave: clusters, Beowulf, paralelismo, web.

1 Introdução

Clusters de processamento paralelo são na verdade bem simples. São um conjunto de computadores interligados em rede trabalhando em algum problema muito grande que foi particionado, permitindo assim a resolução de problemas que até então eram grandes demais para apenas um computador [Spector 2000].

Por que se dar ao trabalho de projetar e construir clusters quando já existem supercomputadores comerciais disponíveis no mercado? A resposta simples é: custo. Não são muitas as instituições que possuem muitos recursos financeiros a sua disposição. A idéia de se desenvolver sistemas paralelizados utilizando computadores de baixo custo relativo ou até mesmo computadores dados como obsoletos, foi primeiramente explorada por Donald Becker e seus colegas da NASA[2]. O primeiro cluster Beowulf era composto de 16 nodos e foi construído para o projeto

(2)

de ciências espaciais e terrestres do Goddard Space Flight Center (NASA)[2]. O sucesso do projeto permitiu a utilização de clusters em instituições que até então não dispunham de capital suficiente para aquisição de um supercomputador.

Os clusters Beowulf vêm sendo construídos e utilizados por programadores com pouca ou nenhuma experiência em programação paralela. De fato, os clusters Beowulf permitem as universidades, que geralmente possuem recursos limitados, uma excelente plataforma para ministrar cursos de programação paralela e prover capacidade computacional a baixos custos efetivos aos seus professores. O custo inicial para uma universidade é mínimo por quatro motivos: (i)maioria dos estudantes interessados no projeto possuem o sistema operacional GNU-Linux nos seus próprios computadores, (ii)aproveitamento de computadores considerados obsoletos, (iii)a montagem do laboratório e o aprendizado de programação paralela já estão incluídos no processo de formação do estudante, e a (iv)utilização de bibliotecas padronizadas de programação paralela MPI[3] (Message Passing Interface) e PVM[4] (Parallel Virtual Machine) permitem que códigos escritos para serem executados num cluster GNU-Linux possam ser executados em supercomputadores comerciais (Cray ou IBM) com pouca ou nenhuma modificação.

Outro ponto chave é a compatibilidade quanto ao sistema operacional do cluster Beowulf. Com a maturidade e a robustez do GNU-Linux e a padronização das bibliotecas paralelas, os programadores têm a garantia que seus programas serão executados nos futuros clusters Beowulf independentemente dos fabricantes de processadores e de redes.

A arquitetura dos clusters Beowulf é baseada na existência de um nodo mestre que controla e gerencia todos os processos dos nodos escravos. Os nodos escravos podem ser de qualquer número desejado desde que respeitados os limites do hardware de comunicação. Na verdade, o nodo mestre gera todos os processos e os passa para os nodos escravos executarem suas tarefas. Com isso, o nodo mestre deve ser capaz de manter todos os nodos escravos em regime de máxima utilização dos seus processadores. Normalmente, o cluster é mantido isolado de outras redes para não sofrer influência de outros tráfegos de pacotes. Apenas o nodo mestre possui conexão com uma rede externa, e é através dessa conexão que todas as tarefas devem ser executadas.

2 Laboratório Virtual

A idéia do laboratório virtual estende o conceito do cluster para um novo patamar de utilização, colocando o poder computacional criado à disposição de grupos e indivíduos localizados remotamente.

O cluster pode ser acessado utilizando-se um navegador “Web” qualquer, permitindo que o usuário não necessite estar fisicamente no mesmo local. Assim sendo, podemos utilizar esta facilidade para o uso no ensino à distância, como por exemplo, um curso de programação paralela aonde o aluno submete o código à execução e obtém o seu resultado “on-line”. Outro exemplo de utilização é o emprego do cluster para redução do tempo de renderização de imagens tridimensionais, que normalmente exigem horas de processamento em estações de trabalho típicas, para alguns segundos. Neste caso, poderiam ser beneficiados os estudantes e professores das áreas de Computação Gráfica, Desenho Industrial, Arquitetura e outros. Na verdade, a gama de possibilidades de uso do cluster é infinita, haja visto que há aplicações nos mais variados campos da ciência, principalmente onde se faz necessário um elevado poder computacional.

(3)

2.1 Montagem do Cluster

Para montar o cluster foram necessários alguns computadores, placas de redes ethernet ou qualquer outro tipo de hardware de comunicação (ATM, Myrinet e outros). A configuração mínima para um nodo do cluster é um 486 com 16 Mbytes de RAM e um HD de 1 Gbyte. Computadores 386 até podem ser utilizados[5], mas o ganho de performance dificilmente justifica o trabalho de configurá-lo e manter sob manutenção constante. Aplicações típicas exigem 32 Mbytes de RAM ou mais por nodo. O teclado e o monitor apenas são necessários para configuração de cada nodo, depois apenas o nodo mestre precisa ter estes dispositivos. Para interligação dos computadores foi exigido um “Hub” ou “switch” de velocidade e tecnologia compatível com as placas de rede dos computadores do cluster e com a topologia mostrada na figura 1. INTERNET Nodo-Mestre Nodo-Escravo0 Switch 10/100 Interno Switch 10/100 Externo

Nodo-Escravo1 Nodo-Escravo2 Nodo-Escravo3 Nodo-Escravo4 Nodo-Escravo5

Nodo-Escravo6 Nodo-Escravo7 Nodo-Escravo8 Nodo-Escravo9 Nodo-Escravo10 Nodo-Escravo11

Nodo-Escravo12 Nodo-Escravo13 Nodo-Escravo14 Nodo-Escravo15 Nodo-Escravo16 Nodo-Escravo17

(4)

2.1.1 Instalação do Red Hat 6.2

A instalação do GNU-Linux Red Hat 6.2 foi feita de forma a não exaurir os recursos do computador, assim apenas são instalados os pacotes necessários. Para tal, apenas as seguintes opções de instalação no nodo mestre foram selecionadas: X Window System, Gnome, Networked Workstation, Network Management Workstation, Development e Utilities. No nodo escravo, apenas as seguintes opções foram selecionadas: Networked Workstation, Development e Utilities.

2.1.2 Instalação dos pacotes do Beowulf

Após a instalação do GNU-Linux Red Hat 6.2, os pacotes do Beowulf são instalados de forma diferenciada para o nodo mestre e os nodos escravos. Um CD com todos os pacotes a serem instalados foi montado com dois passos separados por diretório, o diretório passo1 tem a função de atualizar o RPM para que este possa instalar os demais arquivos que estão no diretório passo2. Um outro CD foi montado para os nodos escravos, o que simplifica em muito o trabalho de instalar dezenas de nodos escravos com dois comandos simples do GNU-Linux (rpm –Uvh /mn t/cdrom/passo1/* e rpm -Uvh /mnt/cdrom/passo2/*). Os pacotes do passo2 estão relacionados na tabela 1 e se encontram disponíveis livremente na Internet e podem ser obtidos facilmente.

Pacote RPM Mestre Escravo

beoboot-1.1.16-1.rpm sim sim

beompi-1.0.14-1.rpm sim sim

beompi-devel-1.0.14-1.rpm sim sim

beonss-1.0.12-1.rpm sim sim

beosetup-1.24-1.rpm sim não

beostatus-2.0.8-1.rpm sim não

beowulf-doc-0.17-1.rpm sim não

bproc-2.2-1.rpm sim sim

bproc-devel-2.2-1.rpm sim sim

bproc-libs-2.2-1.rpm sim sim

bproc-modules-2.2-1.rpm sim sim

glibc-2.1.3-21.beo.2.rpm sim sim

glibc-devel-2.1.3-21.beo.2.rpm sim sim

glibc-profile-2.1.3-21.beo.2.rpm sim sim

initscripts-5.00-1.rpm sim sim

kernel-2.2.17-33.beo.rpm sim sim

kernel-beoboot-2.2.17-33.beo.rpm sim sim

(5)

Pacote RPM Mestre Escravo

kernel-headers-2.2.17-33.beo.rpm sim sim

kernel-source-2.2.17-33.beo.rpm sim sim

kernel-utils-2.2.17-33.beo.rpm sim sim

libbeostat-0.1.10-1.rpm sim sim

modutils-2.4.0-2.beo.rpm sim não

mpprun-0.0.24-1.rpm sim sim

perf-0.8.0-1.rpm sim não

util-linux-2.10f-7.rpm não sim

mtools-3.9.6-3.i386.rpm sim sim

Tabela 1. Pacotes instalados no nodo mestre e nos nodos escravos 2.1.3 Configuração do sistema Beowulf

O próximo passo foi configurar a inicialização do GNU-Linux Red Hat 6.2 para o kernel do Beowulf editando-se o arquivo /etc/lilo.conf. No nodo mestre, foi necessário executar o programa beosetup em modo gráfico ou configurar as preferências no arquivo /etc/beowulf/config que guarda não apenas o endereço IP do computador em questão como a faixa de endereços dos nodos escravos. No caso do nodo mestre os endereços físicos MAC dos nodos escravos também ficam armazenados no mesmo arquivo.

Um disco com scripts úteis para facilitar a configuração de muitos nodos foi feito para mudar a tela de abertura, criação de um mesmo usuário em todos os computadores, automatização do arquivo /etc/lilo.conf e alteração do script de inicialização do Linux para executar o programa que possibilita a passagem dos processos do nodo escravo para o nodo mestre (bpslave ip_do_nodo_mestre 2223).

Existe um programa no nodo mestre que verifica quais nodos escravos estão ligados e ainda mostra quais estão disponíveis. Um nodo escravo para participar dos trabalhos do cluster deve estar no estado “up” no programa beostatus. O estado do nodo pode ser alterado no programa beosetup no modo gráfico ou pelo comando bpctl no modo shell. Recomenda-se que ambos sejam executados em modo gráfico por facilitarem a visualização e controle do cluster como um todo. Mas há também a opção de se executar esses programas no modo texto, caso o administrador do cluster necessite alterar a configuração remotamente.

2.1.4 Instalação e configuração do Apache e PHP

É necessária a instalação do servidor de páginas “Web” Apache e do módulo PHP no nodo mestre com o intuito de fazer com que uma página “Web” possa executar programas paralelos baseados em MPI, submetendo trabalhos para o cluster e disponibilizando os resultados na tela do usuário.

As páginas foram criadas com o objetivo de auxiliar ao máximo o usuário, dando a este uma visão clara e concisa do processo. As telas são auto-explicativas e seguem o padrão passo-a-passo.

(6)

3 Usando o Laboratório Virtual

O endereço IP do nodo mestre que roda o servidor “Web” Apache pode ser divulgado na Internet, para que alunos e professores de diversas instituições possam fazer uso do cluster com qualquer programa navegador de Internet como mostra a figura 2.

Figura 2. Tela de entrada “Web” de exemplo do cluster 4. Ambiente de teste

O teste foi feito para uma aplicação de renderização de imagens, mas pode ser alterado para executar qualquer programa paralelo baseado em MPI. Uma vez que a página foi aberta no navegador e que o usuário selecionou as opções desejadas, a seguinte tela de resultado foi vista, como mostra a figura 3.

(7)

Figura 3. Tela de resultados da aplicação paralela em um navegador Internet

No caso em questão a aplicação paralela foi executada do servidor de páginas “Web”. A tarefa entregue ao cluster foi renderizar um vaso com superfície de céu azul com nuvens sobre um pedestal hexagonal e refletido por dois espelhos em um ângulo reto. O efeito de neblina foi usado para incrementar a dificuldade computacional. A imagem foi renderizada em 6 segundos pelo cluster, e tanto as estatísticas de saída do programa de renderização, como a figura obtida ao fim do processo, foram mostradas na tela do navegador do usuário.

Assim foi comprovado que um laboratório virtual de ensino em computação paralela poderia incluir a execução de quaisquer programas paralelos, bastando que para isso seja feita uma página Internet disponibilizada na rede através de um servidor “Web”.

(8)

5. Conclusão

Com a montagem de um único cluster Beowulf, diversas instituições de ensino podem ministrar cursos em programação paralela ou a utilização de aplicativos paralelos para resolução de problemas teóricos ou práticos.

Um laboratório virtual possibilita que instituições de ensino, com um único computador conectado por um modem e uma linha telefônica na Internet, possam utilizar o poder elevado de processamento de um cluster.

O laboratório virtual também incentiva tanto o ensino quanto a pesquisa no desenvolvimentos de ferramentas paralelas na medida em que torna acessível uma tecnologia cara.

Sistemas de alto desempenho comerciais são muito caros não apenas na compra do cluster, mas também no seu suporte e manutenção. Um cluster Beowulf tem manutenção de hardware com baixo custo, e se mantido por diversas instituições que se beneficiem do cluster podem ficar ainda mais baratos.

Existe ainda muito poucas ferramentas exploradas na área de computação paralela, assim como ausência de suporte adequado. Existe uma demanda por pessoal qualificado que possa criar essas ferramentas e fazer um suporte de qualidade. O laboratório virtual de ensino em computação paralela é o modelo mais adequado financeiramente para se suprir esta demanda por ter uma grande área de abrangência.

5 Referências

[1] Spector David HM – Building Linux Clusters, O’reilly, 2000. [2] http://www.beowulf.org - Beowulf Project – Site da Internet.

[3] http://www-unix.mcs.anl.gov/mpi/ - Message Passing Interface Standard – Site da Internet. [4] http://www.csm.oml.gov/pvm/pvm_home.html - Parallel Virtual Machine - Site da Internet [5] http://www.acm.org/crossroads/xrds6-1/parallel.html - Parallel Computing with Linux – Site da Internet.

6 Bibliografia

[1] http://www.cacr.caltech.edu/beowulf/tutorial/building.html - Building a Beowulf System – Site da Internet.

[2] Jacek Radajewski and Douglas Eadline – Beowulf HOWTO, v1.1.1, 2 Novembro 1998. [3] Ram Samudrala – Cluster HOWTO, v0.7, 22 Fevereiro 2002.

[4] Hank Dietz – Linux Parallel Processing HOWTO, v1.12.1, 25 Outubro 2000. [5] David Mentré – Linux SMP HOWTO, v980105, 05 Janeiro 1998.

[6] Evan Marcus, Hal Stern – Blueprints for High Availability: Designing Resilient Distributed Systems, John Wiley & Sons, Janeiro 2000.

[7] Douglas Comer – Internetworking with TCP/IP vol. I, 4th ed.. Prentice Hall, 2000.

[8] Buyya Rajkumar – High Performance Cluster Computing – Volume 1, Prentice-Hall, 1999. [9] http://www.beowulf-underground.org/ - Beowulf Underground – Site da Internet.

(9)

[10] http://www.extremelinux.org/ - Extreme Linux – Site da Internet.

[11] http://www.canonical.org/~kragen/beowulf-faq.txt - Beowulf FAQ – Site da Internet. [12] http://www-unix.mcs.anl.gov/mpi/ - The Message Passing Interface (MPI) standard– Site da Internet.

[13] http://www-unix.mcs.anl.gov/mpi/mpich/ - MPICH-A Portable Implementation of MPI – Site da Internet.

[14] http://www.apache.org - Apache Software Foundation – Site da Internet. [15] http://www.php.net - PHP Hypertext Preprocessor – Site da Internet.

Imagem

Figura 1. Topologia do cluster
Tabela 1. Pacotes instalados no nodo mestre e nos nodos escravos
Figura 2. Tela de entrada “Web” de exemplo do cluster
Figura 3. Tela de resultados da aplicação paralela em um navegador Internet

Referências

Documentos relacionados

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

Com base no trabalho desenvolvido, o Laboratório Antidoping do Jockey Club Brasileiro (LAD/JCB) passou a ter acesso a um método validado para detecção da substância cafeína, à

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. <script Language

Nos tempos atuais, ao nos referirmos à profissão docente, ao ser professor, o que pensamos Uma profissão indesejada por muitos, social e economicamente desvalorizada Podemos dizer que

Workshop em que cada participante terá oportunidade de pôr em pratica o caso que preparou e aprender como melhorar.. Os participantes continuarão a ser apoiados através de

Tendo como parâmetros para análise dos dados, a comparação entre monta natural (MN) e inseminação artificial (IA) em relação ao número de concepções e

Quando contratados, conforme valores dispostos no Anexo I, converter dados para uso pelos aplicativos, instalar os aplicativos objeto deste contrato, treinar os servidores

Este subsídio é para aqueles que forem reformar a casa usando os serviços de alguma construtora que possua endereço na cidade de Hikone.. Informações Setor de Promoção da