CONSTRUÇÃO AUTOMATICA DE CLUSTER BEOWULF E CONFIGURAÇÃO DE AMBIENTE DE PROGRAMAÇÃO PARALELA COM ROCKS CLUSTER

September 22, 2017 | Autor: David Beserra | Categoria: High Performance Computing (HPC), Beowulf Cluster
Share Embed


Descrição do Produto

X JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2010 – UFRPE: Recife, 18 a 22 de outubro.

CONSTRUÇÃO AUTOMATICA DE CLUSTER BEOWULF E CONFIGURAÇÃO DE AMBIENTE DE PROGRAMAÇÃO PARALELA COM ROCKS CLUSTER David Willians dos Santos Cavalcanti Beserra1, Emanoel Carlos Gomes Ferraz Silva2, Samuel Carlos Romeiro de Azevedo Souto3, Mariel José Pimentel de Andrade4 e Alberto Einstein Pereira de Araujo5 

Introdução Atualmente diversas atividades demandam por elevada capacidade de processamento de dados por meio de sistemas computacionais. Exemplos onde ocorre tal necessidade são facilmente constatados nas tradicionais aplicações cientificas, governamentais e comerciais. Para se prover suporte a essa demanda, sobretudo a exigida pela comunidade cientifica, surgiram os Supercomputadores Vetoriais, (doravante chamados apenas Supercomputadores). “Estas são maquinas de alto desempenho que visam aplicações específicas. Quando comparados aos computadores pessoais, suas características como memória, número de processadores e capacidade de processamento, chegam a ser centenas ou ate mesmo milhares de vezes superiores.” [1]. Entretanto, os custos financeiros referentes ao desenvolvimento e implementação desse tipo de solução os tornam inviáveis à maioria das organizações. Alem disso, os Supercomputadores possuem um desenvolvimento mais complexo, por serem sistemas de processamento de memória compartilhada [2], que implica em limitações de escalabilidade, embora o desenvolvimento de software para essa arquitetura seja simplificado. Como forma de atenuar esse problema, pesquisadores distribuídos em centros de pesquisa espalhados pelo mundo passaram a investigar soluções mais escaláveis e menos onerosas economicamente. Em meio a este turbilhão de esforços, um grupo de pesquisadores da NASA, chefiados por Tomas Sterling e Donald Becker, desenvolveram uma solução para prover processamento de alto desempenho utilizando hardware facilmente disponível no mercado, que designaram Cluster Beowulf. Um Beowulf típico, (ver Figura 1A), é constituído por diversos computadores, chamados nós, sendo um nó denotado Frontend, com função exclusiva de gerenciamento, e os demais denotados slaves, que são dedicados a processar instruções oriundas do Frontend. Os nós podem ser Computadores Pessoais (PCs), Workstaions,

ou Servidores, interligados por meio de uma rede local, e utilizando um sistema aberto, notadamente o Linux [3]. Isso torna o sistema economicamente viável e muito escalável, bastando apenas adicionar maquinas extras, de acordo com a demanda. Observa-se nitidamente que tipo de vantagens esse ambiente pode prover, entretanto ele também possui suas desvantagens, como a dependabilidade de uma rede de baixa latência, (que é tido como o principal gargalo no desempenho), a dificuldade de configurar e administrar o sistema com o crescimento da quantidade de nós e uma maior complexidade no projeto e desenvolvimento de aplicações orientadas a essa plataforma, pelo fato dela constituir um sistema distribuído [4]. Neste trabalho será apresentada uma maneira de se prover a construção automática de um Cluster de alta performance, utilizando o sistema Rocks Cluster 5.3, desenvolvido pela Fundação Nacional de Ciências (NSF) dos Estados Unidos, bem como a preparação de um ambiente de programação paralela que possa fazer uso da estrutura de um sistema distribuído, alem de uma maneira de gerenciar visualmente como estão sendo utilizados os recursos do sistema.

Material e métodos O hardware utilizado neste trabalho foi constituído por quatro computadores padrão IBM-PC, seguindo a arquitetura Intel x86, com processadores Intel Core 2 Duo, com Clock de 2.33GHz cada, memória principal (RAM) de 2GB, Discos Rígidos com capacidade de 160GB e com uma placa de rede do padrão Ethernet 10/100. Para a interconexão dos nós um switch padrão Ethernet 10/100 genérico. Os softwares utilizados foram o Sistema Operativo Rocks Cluster 5.3, uma biblioteca que do padrão Message Passing Interface (MPI), (versão OpenMPI), e o gerenciador de recursos Ganglia. Os procedimentos utilizados estão descritos abaixo: A. Frontend A instalação do Frontend foi realizada com o uso do DVD do Rocks, que contem todas as ferramentas

________________ 1. David Willians dos Santos Cavalcanti Beserra é aluno de Bacharelado em Ciências da Computação, Universidade Federal Rural de Pernambuco Unidade Acadêmica e Garanhuns. E-mail: [email protected] 2. Emanoel Carlos Gomes Ferraz Silva é aluno de Bacharelado em Ciências da Computação, Universidade Federal Rural de Pernambuco - Unidade Acadêmica e Garanhuns. E-mail: [email protected] 3. Samuel Carlos Romeiro Azevedo Souto é aluno de Bacharelado em Ciências da Computação, Universidade Federal Rural de Pernambuco Unidade Acadêmica e Garanhuns. E-mail: [email protected] 4. Mariel José Pimentel Andrade, Professor Substituto da Universidade Federal Rural de Pernambuco - Unidade Acadêmica e Garanhuns. E-mail: [email protected] 5. Alberto Einstein Pereira de Araújo é professor Adjunto da Universidade Federal Rural de Pernambuco – Unidade Acadêmica de Garanhuns. E-mail:- [email protected] Apoio financeiro: CAPES e CNPq.

X JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2010 – UFRPE: Recife, 18 a 22 de outubro.

necessárias para a provisão do Frontend. O processo de instalação é simplificado, bastou apenas inicializar o computador pelo DVD, entrar com o comando „build‟ e selecionar os componentes a serem instalados, (neste caso todos), vide Figura 1B. Depois foi necessário responder a umas poucas perguntas, sobre o nome do Cluster, (Ao qual chamamos Hipácia) e sua localização institucional e geográfica, (Latitude e Longitude), bem como configurar o endereço IP da placa de rede utilizada para a interconexão com o restante do Cluster. O Rocks verifica inicialmente se não existe nenhum servidor de IP dinâmico que fomente um endereço IP automaticamente, caso contrario, ele mesmo sugere um, que foi o utilizado nessa instalação. Após isso, a instalação foi realizada automaticamente, e após seu término o sistema foi reinicializado e, quando totalmente inicializado, exibiu a área de trabalho conforme pode ser vista na Figura 1C. B. Instalação dos nós escravos Uma vez instalado e devidamente configurado o Frontend, é necessária a instalação dos escravos, para se dar por encerrado o processo de construção do Cluster. O sistema Rocks prove a automação dessa etapa através do comando insert-ethers (Figura 1D), que utiliza a rede local para prover a instalação dos escravos e deve ser inserido via terminal no Frontend.[5] Tal comando deve ser executado duas vezes. Na primeira vez, o objetivo foi que o sistema reconhecesse todos os endereços das portas do switch utilizado para interconectar os nós, então, após a inserção desse comando, escolheu-se a opção Ethernet Switches, e foram aguardados 10 minutos, que é o tempo aproximado para que o sistema realize esse reconhecimento. Uma vez terminada essa etapa, executou-se o insert-ethers novamente, desta vez, contudo, foi escolhida a opção compute, que serve justamente para adicionar novos nós. Após isso, os nós escravos foram ligados (tendo sido anteriormente configurados para executar o boot de rede) e o processo de instalação remoto teve inicio, conforme Figura 1E. Uma vez terminada a instalação, os computadores foram automaticamente reinicializados e quando inicializaram completamente o sistema, exibiram uma tela conforme a Figura 1F, que mostra o nome do nó e uma opção de login,(que não é necessária, pois o Frontend se encarrega de acessar os escravos quando necessário). C. Configuração de ambiente paralelo Para se fazer uso do cluster, é necessário primeiramente configurar um ambiente de programação e computação paralelos. Neste cluster foi utilizado para tal o padrão MPI, por meio de sua implementação

OpenMPI, que fornece uma biblioteca para ser utilizada em conjunto com as linguagens C, C++, ou Fortran. Esse padrão funciona dividindo um programa comum, dito serial, em pedaços lógicos menores, que são alocados para vários processos, que possuem um comunicador (communicator) que os associa e uma identificação numérica (rank) em relação a esse comunicador, com os processos se comunicando por meio de troca de mensagens entre os mesmos,via rede, existindo um processo mestre, que é responsável pela coordenação dos resultados computados pelos outros, que são os escravos. Em um programa escrito com MPI, a quantidade de processos utilizada é especificada pelo usuário do programa e o que cada processo deve executar é responsabilidade do programador. O Rocks já vem com o OpenMPI instalado[6], bastando apenas se realizar um simples processo de configuração para que o ambiente paralelo esteja totalmente operacional. Para se proceder a correta configuração do ambiente foi, por exigência do sistema, criado um usuário que não tenha privilégios administrativos, chamado arbitrariamente de ‘usuário’, e então foi criado um arquivo vazio do Linux (arquivo sem extensão alguma) no diretório home desse usuário, chamado machinefile, com os nomes das maquinas do cluster, semelhante ao que é exibido na Figura 1G. Em seguida, foram executados via terminal os comandos sshagent $SHELL e ssh-add, tendo assim terminado a configuração. Por fim, para se assegurar que tudo estava funcionando perfeitamente, foi executado um algoritmo para testes do ambiente, disponibilizado pela implementação OpenMPI. D. Gerenciamento de recursos computacionais O gerenciamento da utilização dos recursos é uma das necessidades primordiais quando se implementa um ambiente Cluster. O Rocks já vem com um gerenciador de recursos extremamente eficiente, chamado Ganglia, que é automaticamente instalado e configurado pelo sistema, sem a necessidade de intervenção do usuário em momento algum[7]. O Ganglia mostra todos os recursos disponíveis, em todos os nós e no cluster como um todo, bem como sua utilização e que processos estão sendo executados nas maquinas, e todos os dados são apresentados em gráficos,vide Figura 1H, o que facilita a gerencia dos recursos.

Resultados e Discussão A. Implementação do Cluster A implementação automática do ambiente Cluster foi realizada de maneira eficiente, vide Figura 1I, sem dificuldades técnicas extremas que atrapalhassem o processo, que se mostrou bastante intuitivo. Todavia, foi constatado que o processo de instalação e execução do sistema é razoavelmente lento, possivelmente devido a limitação das capacidades de processamento e memória dos computadores utilizados e, principalmente, ao emprego de

X JORNADA DE ENSINO, PESQUISA E EXTENSÃO – JEPEX 2010 – UFRPE: Recife, 18 a 22 de outubro.

uma rede de alta latência. Isso implica que tornar-se-á necessário o emprego de um hardware mais poderoso para se executar o sistema de maneira eficaz, bem como uma rede de baixa latência. B. Configuração do ambiente paralelo e gerenciamento Quanto à configuração do ambiente de desenvolvimento paralelo com MPI, bem como a execução de aplicações que o usem, afirma-se que foi um procedimento simples e bem sucedido, não obtendo erros nem se alongando nessa etapa, justamente devido ao fato de todas as pré-configurações e compilações das bibliotecas necessárias serem automatizadas pelo Rocks. Por fim, foi verificado em testes posteriores que, no cluster Hipácia, as aplicações que façam muito uso de rede não obtiveram um bom desempenho enquanto que programas que a utilizem pouco obtém um rendimento relativamente bom, o que ressalta a necessidade de se instalar o cluster com uma rede de menor latência, para obter melhor desempenho com aplicações que utilizem muita comunicação via rede.

Agradecimentos Ao LCCA, a UAG/UFRPE, ao CNPq e a FACEPE

Referências [1]

[2]

[3]

[4]

[5] [6] [7]

SANTANA, E.P.; ALVES H.A.; & ASSIS, I.R.. 2006 [Online]. TOP500.org – Ranking de Supercomputadores. Homepage:http://www.ic.unicamp.br/~rodolfo/Cursos/mc722/2s200 7/trabalhos/g06_texto.pdf GOMES, J.L.S. 2009. Paralelização de Algoritmo de Simulação de Monte Carlo para a Adsorção em Superfícies Heterogêneas Bidimensionais. Dissertação de Mestrado, Pós-Graduação em Computação, UEM, Maringá. STERLING,T.; BECKER, D.J.; SAVARESE, D.; DORBAND, J.E; RANAWAKE, U.A. & PACKER, C.V. 1995.[Online] Beowulf: A parallel workstation for scientific computation. Homepage:http://www.phy.duke.edu/~rgb/brahma/Resources/beowu lf/papers/ICPP95/icpp95.html BRASIL. 2006 [Online]. Guia de Estruturação e Administração do Ambiente de Cluster e Grid. Homepage: www.governoeletronico.gov.br/anexos/guia-de-cluster University of California. 2010 [Online]. Rocks Users Guide Homepage: http://www.rocksclusters.org University of California. 2010 [Online]. HPC Roll: Users Guide http://www.rocksclusters.org University of California. 2010 [Online]. Ganglia Roll: Users Guide http://www.rocksclusters.org

Figura 1. Etapas da implementação do cluster, configuração do ambiente paralelo e gerencia visual de recursos

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.