1 / 71

Roteiro para Construção de um “Supercomputador” com Linux

Roteiro para Construção de um “Supercomputador” com Linux. versão 30-05-09. Configurando o Cluster. Roteiro de Configuração. Configuração dos endereços lógicos (IP) para o controlador mestre e os nós computacionais

carnig
Download Presentation

Roteiro para Construção de um “Supercomputador” com Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Roteiro para Construção de um “Supercomputador” com Linux versão 30-05-09

  2. Configurando o Cluster

  3. Roteiro de Configuração • Configuração dos endereços lógicos (IP) para o controlador mestre e os nós computacionais • Projetar um ambiente de resolução de nomes, podendo ser utilizado arquivo hosts, NIS ou DNS • Criar o relacionamento de confiança entre as máquinas

  4. Roteiro de Configuração • Permitir o uso de comandos remotos para colocar as aplicações em execução nos nós • Distribuir o sistema de arquivos do controlador mestre para os nós escravos via NFS • Instalar uma aplicação que permita o gerenciamento dos nós

  5. Roteiro de Configuração • Instalação das principais bibliotecas de passagem de mensagens; PVM MPI • Instalar sistemas de gerenciamento de recursos para aproveitar nós ociosos no cluster • Instalar bibliotecas de otimização do sistema • Criar um ambiente propicio para um sistema de arquivos de alta performance para processos de I/O • Instalar linguagens, compiladores, depuradores, visualizadores

  6. 1º Passo: definir os endereços IP Neste passo vamos configurar os endereços IPs das máquinas que formarão o cluster • Vamos usar o endereço de rede 192.168.7.x • Máscara de rede: 255.255.255.0 • Criar uma interface lógica ifconfig eth0:1 192.168.7.x netmask 255.255.255.0

  7. 1º Passo (b) - Estabelecendo o nome dos hosts • Edite o arquivo /etc/sysconfig/network e altere a variável HOSTNAME=mestre.meudominio.com.br • Obs: cada host deverá ter seu próprio nome: mestre, escravo1, escravo2, ...

  8. 2º Passo: Definição dos hosts A função do arquivo hosts é resolver o nome da máquina no endereço lógico de rede (IP) • alterar o arquivo /etc/hosts para resolver o nome das máquinas Exemplo: 192.168.7.71 mestre.meudominio.com.br mestre 192.168.7.72 escravo1.meudominio.com.br escravo1 192.168.7.73 escravo2.meudominio.com.br escravo2

  9. 3º Passo: Configuração de relacionamento de confiança • Configurar o relacionamento de confiança entre os hosts • Ele define a relação de confiança entre os hosts através da equivalência, sem haver necessidade de autenticação por senha /etc/hosts.equiv mestre escravo1 escravo2

  10. 4º Passo: o arquivo .rhosts • Esse arquivo deverá constar em cada diretório de trabalho do usuário como /home e /root • Esse arquivo será usado pelo protocolo RSH para execução de comandos remotos e por algumas aplicações de monitoramento • Ele deverá ser criado nos diretórios: /home e /root .rhosts mestre escravo1 escravo2

  11. 5º Passo - habilitação do servidor RSH • Execute o ntsysv e habilite os serviços de rexec,rlogin e rsh

  12. Servidor RSH • Inclui as seguintes funções: • emulador de terminal de comandos (rlogin) • execução remota de comandos (rexec) • copia remota de arquivos (rcp)

  13. 6º Passo - Configuração dos dispositivos para conexão O arquivo /etc/securetty permite especificar quais dispositivos tty que o usuário root pode conectar-se • O formato do arquivo /etc/securetty é a lista de dispositivo tty onde a conexão é permitida • Acrescentar as entradas abaixo ao final do arquivo /etc/securetty : rsh rlogin

  14. 7º Passo - Habilitar os comando “R” Inicie o xinetd. Ele poderá ser iniciado através do comando: # service xinetd start Outra opção para iniciar o xinetd é ir até diretório /etc/rc.d/init.d e iniciar o xinetd com o comando ./xinetd para que , toda vez que ao iniciar, o supervisor seja carregado automaticamente

  15. 8º Passo - Replicação • Os arquivos /etc/hosts, /etc/hosts.equiv, /etc/securettty e /home/.rhosts e /root/.rhosts devem ser replicados em todos os computadores que formam o cluster

  16. 6 - Gerenciando os Clusters • Ferramentas: • bWatch - permite o monitoramento remoto dos nós do cluster • Ganglia - é uma ferramenta distribuída que permite monitorar sistemas de alto desempenho de computação • Nagios - Gerencia Servidores e Serviços

  17. bWatch (Beowulf Watch) • Permite o monitoramento remoto dos nós do cluster • monitoramento de carga • uso de memória • Script escrito em Tcl/Tk (linguagem de programação de scripts)

  18. Pré-requisitos para uso do bWatch • assume que na máquina onde ele está sendo executado ele tenha acesso remoto via rsh a todos os computadores do cluster • assume também que o interpretador wish (do Tcl/Tk) esteja em /usr/bin/wish

  19. Instalação do bWatch • O site do bWatch localiza-se em: http://bwatch.sourceforge.net/ • crie o diretório /usr/local/bWatch-1.1.0.a • copie o arquivo bWatch-1.1.0a.tar.gz para o diretório /usr/local/bWatch-1.1.0a onde você instala suas aplicações # cd /usr/local/bWatch-1.1.0a # tar zxvf bWatch-1.1.0a.tar.gz

  20. Instalação do bWatch • Edite o arquivo Makefile • Altere wishx por wish • Digite make bwatch • Inicie a aplicação usando bWatch.tcl (somente após esse passo é que será criado o arquivo ~/.bWatchrc.tcl) • Faça o make install para instalá-lo em /usr/local/bin • Altere a variável listOfHosts localizado no arquivo ~/.bWatchrc.tcl (/root/.bWatchrc.tcl)

  21. Instalação do bWatch • Liste o nome da cada host que será monitorado • Exemplo: set listOfHosts { mestre escravo1 escravo2 escrado3 }

  22. Ganglia • O Ganglia é uma ferramenta distribuída que permite monitorar sistemas de alto desempenho de computação • É um projeto open source hospedado em http://ganglia.sourceforge.net

  23. Ganglia • Ganglia Monitor Daemon (gmond)  aplicação principal de monitoramento do Ganglia • Ganglia Meta Daemon (gmetad)  executado na máquina central coletando e armazenando as informações de estados dos nós • Ganglia Metad Web Interface

  24. Ganglia Monitor Daemon (gmond) • deve ser instalado em todos os nós do cluster que desejamos monitorar • principais características:

  25. Ganglia Meta Daemon (gmetad) • Deve ser instalado e executado no webfrontend • funções: • reunir todos os dados de cada gmond dos nós • armazenar as informações em um banco de dados • fazer o resumo de todos as informações para ser apresentado pelo nó de gerência

  26. Ganglia Metad Web Interface • utiliza um servidor web • páginas são dinâmicas • escrito em PHP

  27. Programas • gmond executado em cada nó do cluster • gmetad  é executado na máquina central coletando todas as informações de estado dos nós • gstat  conecta ao gmond e lista as informações de saída dos nós do cluster • gexec 

  28. Passo 0 Instalação dos arquivos de dependência: # rpm -ivh rrdtool-1.2.30-1.el4.wrl.i386.rpm # rpm -ivh rrdtool-python-1.2.30-1.el4.wrl.i386.rpm

  29. Passo 1 - Instalação do gmond • Instalar o gmond em todas as máquinas do cluster # rpm -ivh ganglia-3.0.6-1.el4.i386.rpm # rpm -ivh ganglia-gmond-3.0.6-1.el4.i386.rpm

  30. Passo 1-a - Configuração do gmond Abrir o arquivo /etc/gmond.conf e alterar os parâmetros name e owner dentro da “tag” cluster name=“MyCluster”  este nome deve ser único pois identifica o cluster owner=“Mauro”

  31. Passo 1-b - Iniciar o serviço gmond Levantar o processo em todas as máquinas # service gmond start

  32. Passo 2 - Instalação do gmetad • Instalar o gmetad apenas no host mestre # rpm -ivh ganglia-gmetad-3.0.6-1.el4.i386.rpm

  33. Passo 2-a - Configuração do gmetad Abrir o arquivo de configuração: /etc/gmetad.conf • Alterar o parâmetro: data_source “MyCluster” localhost • Alterar o parâmetro: gridname “MyGrid” • Levantar o processo daemon no nó de gerencia # service gmetad start

  34. Passo 3 - Configuração do Ganglia Frontend # rpm -ivh ganglia-web-3.0.6-1.el4.noarch.rpm Inicie o serviço de httpd # service httpd start e marque o serviço para inicializar automaticamente quando se inicia o host # ntsysv marcar httpd para iniciar • Abra o navegador em: http://localhost/ganglia

  35. Passo 4 - Marcar os daemons para execução Execute o comando ntsysv: # ntsysv selecione e marque os serviços gmond e gmetad (se instalado) para que sejam iniciados automaticamente # service gmond restart # service gmetad restart (se necessário) Verificar /var/log/messages se há alguma mensagem de erro

  36. Programação Paralela

  37. PVM - Máquina Virtual Paralela • O PVM é uma biblioteca de programação paralela por passagem de mensagens para facilitar o campo de computação paralela homogênea • o PVM já encontra suporte em linguagens como: Java, Python, Perl, além das linguagens tradicionais como C, C++ e Fortran

  38. Componentes do PVM • Composto por duas partes: • primeira parte: daemon pvmd3 • segunda parte: biblioteca de rotinas PVM

  39. PVM • O software PVM deve ser instalado especificamente em cada máquina que é para ser usada em sua “máquina virtual” • $PVM_ROOT/lib • $PVM_ROOT/bin

  40. Alguns diretórios importantes são: • bin/$PVM_ARCH/ • conf/ • console/ • doc/ • examples/ • gexamples/ • hoster/

  41. Alguns diretórios importantes são: • include/ • lib/ • lib/$PVM_ARCH/ • libfpvm/ • man/man[13]/ • misc/ • patches/

  42. Alguns diretórios importantes são: • pvmgs/ • rm/ • shmd/ • src/ • src/$PVM_ARCH/ • tasker/ • tracer/ • xep/

  43. PVM • pvmd3  daemon executable • pvm  o programa de console • libpvm3.a (biblioteca de funções em C) • libfpvm3.a (biblioteca de funções em Fortran) • As bibliotecas e executáveis são instalados em: $PVM_ROOT/lib/$PVM_ARCH

  44. PVM • os scripts $PVM_ROOT/lib/pvm e $PVM_ROOT/lib/pvmd são usados para iniciar o console e o daemon PVM • O PVM poderá ser configurado para usar o ssh ao invés do rsh

  45. Instalando e configurando o PVM Criar o arquivo pvm.sh em /etc/profile.d export PVM_ROOT=/usr/share/pvm3 export PVM_ARCH=LINUX export PATH=$PATH:$PVM_ROOT/lib:$PVM_ROOT/lib/$PVM_ARCH export PATH=$PATH:$PVM_ROOT/lib/pvmd export XPVM_ROOT=/usr/share/pvm3/xpvm

  46. Instalando e configurando o PVM • altere a permissão do arquivo /etc/profile.d/pvm.sh para 755 # chmod 0755 /etc/profile.d/pvm.sh

  47. Instalando e configurando o PVM • Criar no diretório /root o arquivo /root/.xpvm_hosts e o arquivo pvmhosts com o seguinte conteúdo: /root/.xpvm_hosts mestre escravo1 escravo2 /root/pvmhosts mestre escravo1 escravo2

  48. Utilizando o PVM Execute o PVM: #pvm pvm>add mestre pvm>add escravo1 pvm>add escravo2 O comando add adiciona os hosts a máquina virtual do PVM

  49. Comandos • halt  encerra todos os processos do PVM, inclusive o próprio PVM • delete host  exclui uma máquina do front-end • conf  lista a configuração das máquinas virtuais • hostname • dtiv (pvmd task id - identificador da tarefa pvmd) • arch (tipo de arquitetura) • speed (velocidade relativa)

  50. Comandos • help  mostra todos os comandos e suas funções • help comando • id  exibe o id do console • jobs  lista os processos em execução • kill  usado para encerrar os processos do PVM • mstat  exibe o status dos hosts especificados • ps -a  lista todos os processos na máquina virtual, sua localização, seus id’s e os pais dos id’s • quit  sai do console • reset  encerra todos os processos exceto os consoles e reinicia as tabelas internas e filas de mensagens do PVM

More Related