![Page 1: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/1.jpg)
Construindo Supercomputadores com Linux - Resumido
versão 29-05-13
![Page 2: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/2.jpg)
2 - Cluster de Computadores
• Quando se utilizam dois ou mais computadores em conjunto para resolver um problema, você tem um cluster, que do inglês significa agrupamento
![Page 3: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/3.jpg)
Categorias dos Clusters
• Alta Disponibilidade (HA - High Availability)– Os clusters HA tem a finalidade de manter um
determinado serviço de forma segura o maior tempo possível
• Alto Desempenho (HPC - High Performance Computing)– configuração designada a prover grande poder
computacional do que somente um único computador poderia oferecer em capacidade de processamento
![Page 4: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/4.jpg)
Alta Disponibilidade
• alta disponibilidade garantir a continuidade de operação do sistema de serviços de rede, armazenamento de dados ou processamento, mesmo se houver falhas em um ou mais dispositivos, sejam eles hardware ou software
![Page 5: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/5.jpg)
Clusters de Alta Disponibilidade
• Nos clusters de alta disponibilidade os equipamentos são utilizados em conjunto para manter um serviço ou equipamento sempre ativo, replicando serviços e servidores, o que evita máquinas paradas, ociosas, esperando o outro equipamento ou serviço paralisar, passando as demais a responder por ela normalmente
![Page 6: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/6.jpg)
Vantagens em usar Cluster de Computadores
• Alto Desempenho
• Escalabilidade
• Tolerância a Falhas
• Baixo custo
• Independência de fornecedores
![Page 7: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/7.jpg)
Aplicabilidades
• Servidores da Internet• Segurança• Bases de Dados• Computação Gráfica• Aerodinâmica• Análise de elementos finitos• Aplicações em sensoriamento remoto• Inteligência Artificial e automação• Engenharia Genética
![Page 8: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/8.jpg)
Aplicabilidades (2)
• Exploração sísmica
• oceanografia e astrofísica
• previsão do tempo
• pesquisa militares
• problemas de pesquisas básicas
• segurança de reatores nucleares
![Page 9: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/9.jpg)
Divisão dos clusters segundo a sua propriedade
• dedicados utilizam seus nós exclusivamente para computação paralela
• não-dedicados as aplicações são executadas baseadas na ociosidade das estações de trabalho
![Page 10: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/10.jpg)
Cluster Beowulf (1994)
• 16 computadores pessoais - microprcessador 486
• sistema operacional Linux
• rede padrão Ethernet (10Mbps)
• marca de 70 megaflops (70 milhões de operações de ponto flutuante por segundo)
• custo: aproximadamente US$ 50,000.00
![Page 11: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/11.jpg)
Característica chave de um cluster Beowulf
• uso do SO Linux
• uso das bibliotecas de troca de mensagens (PVM e MPI) - de livre distribuição
• “Faça você mesmo o seu próprio supercomputador”
![Page 12: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/12.jpg)
O Cluster Beowulf pode ser dividido em duas classes
• Cluster Classe I
• Cluster Classe II
![Page 13: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/13.jpg)
Cluster Beowulf
• Um cluster Beowulf é construído de vários nós escravos (back-end) controlados por um computador principal (front-end), ao qual se tem acesso direto, ligados por uma rede fast ethernet e fazendo um gateway entre o cluster e uma rede local (LAN)
![Page 14: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/14.jpg)
Cluster Beowulf
• o computador principal é o responsável pela distribuição das tarefas
• os computadores escravos limitam-se a processar os cálculos que lhe são enviados
![Page 15: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/15.jpg)
Principais componentes de um cluster de computadores
• Nó ou node• Sistema Operacional• Rede Local• Protocolos• cluster middleware• Ferramentas de Comunicação• Sistemas de Arquivos Paralelos
– PVFS2– Lustre– PNFS– GPFS
![Page 16: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/16.jpg)
3 - Construindo um Cluster de Alto Desempenho
![Page 17: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/17.jpg)
Tipos de Cluster
• Cluster Homogêneo todos os seus nós possuem as mesmas características e a mesma rede de comunicação
• Cluster Heterogêneo seus nós possuem diferentes características ou diferentes redes de comunicação entre grupos de máquinas
![Page 18: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/18.jpg)
Top 500
Veja o link para a lista dos 500 maiores supercomputadores da atualidade
http://www.top500.org/
![Page 19: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/19.jpg)
5 - Configurando o Cluster
![Page 20: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/20.jpg)
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
![Page 21: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/21.jpg)
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
![Page 22: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/22.jpg)
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
![Page 23: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/23.jpg)
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
![Page 24: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/24.jpg)
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, ...
![Page 25: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/25.jpg)
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
![Page 26: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/26.jpg)
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
mestreescravo1escravo2
![Page 27: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/27.jpg)
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
.rhostsmestreescravo1escravo2
![Page 28: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/28.jpg)
5º Passo - habilitação do servidor RSH
• Execute o ntsysv e habilite os serviços de rexec, rlogin e rsh
![Page 29: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/29.jpg)
Servidor RSH
• Inclui as seguintes funções:– emulador de terminal de comandos (rlogin)– execução remota de comandos (rexec)– copia remota de arquivos (rcp)
![Page 30: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/30.jpg)
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
![Page 31: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/31.jpg)
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
![Page 32: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/32.jpg)
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
![Page 33: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/33.jpg)
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
![Page 34: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/34.jpg)
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)
![Page 35: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/35.jpg)
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
![Page 36: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/36.jpg)
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
![Page 37: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/37.jpg)
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)
![Page 38: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/38.jpg)
Instalação do bWatch
• Liste o nome da cada host que será monitorado
• Exemplo:set listOfHosts { mestre escravo1 escravo2 escrado3 }
![Page 39: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/39.jpg)
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
![Page 40: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/40.jpg)
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
![Page 41: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/41.jpg)
Ganglia Monitor Daemon (gmond)
• deve ser instalado em todos os nós do cluster que desejamos monitorar
• principais características:
![Page 42: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/42.jpg)
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
![Page 43: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/43.jpg)
Ganglia Metad Web Interface
• utiliza um servidor web
• páginas são dinâmicas
• escrito em PHP
![Page 44: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/44.jpg)
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
![Page 45: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/45.jpg)
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
![Page 46: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/46.jpg)
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
![Page 47: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/47.jpg)
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”
![Page 48: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/48.jpg)
Passo 1-b - Iniciar o serviço gmond
Levantar o processo em todas as máquinas# service gmond start
![Page 49: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/49.jpg)
Passo 2 - Instalação do gmetad
• Instalar o gmetad apenas no host mestre# rpm -ivh ganglia-gmetad-3.0.6-1.el4.i386.rpm
![Page 50: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/50.jpg)
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
![Page 51: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/51.jpg)
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 starte marque o serviço para inicializar
automaticamente quando se inicia o host# ntsysvmarcar httpd para iniciar
• Abra o navegador em: http://localhost/ganglia
![Page 52: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/52.jpg)
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
![Page 53: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/53.jpg)
Programação Paralela
![Page 54: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/54.jpg)
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
![Page 55: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/55.jpg)
Componentes do PVM
• Composto por duas partes:– primeira parte: daemon pvmd3– segunda parte: biblioteca de rotinas PVM
![Page 56: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/56.jpg)
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
![Page 57: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/57.jpg)
Alguns diretórios importantes são:
• bin/$PVM_ARCH/
• conf/
• console/
• doc/
• examples/
• gexamples/
• hoster/
![Page 58: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/58.jpg)
Alguns diretórios importantes são:
• include/
• lib/
• lib/$PVM_ARCH/
• libfpvm/
• man/man[13]/
• misc/
• patches/
![Page 59: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/59.jpg)
Alguns diretórios importantes são:
• pvmgs/• rm/• shmd/• src/• src/$PVM_ARCH/• tasker/• tracer/• xep/
![Page 60: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/60.jpg)
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
![Page 61: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/61.jpg)
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
![Page 62: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/62.jpg)
Instalando e configurando o PVM
Criar o arquivo pvm.sh em /etc/profile.d
export PVM_ROOT=/usr/share/pvm3export PVM_ARCH=LINUXexport PATH=$PATH:$PVM_ROOT/lib:
$PVM_ROOT/lib/$PVM_ARCHexport PATH=$PATH:$PVM_ROOT/lib/pvmdexport XPVM_ROOT=/usr/share/pvm3/xpvm
![Page 63: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/63.jpg)
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
![Page 64: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/64.jpg)
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_hostsmestreescravo1escravo2
/root/pvmhostsmestreescravo1escravo2
![Page 65: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/65.jpg)
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
![Page 66: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/66.jpg)
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)
![Page 67: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/67.jpg)
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
![Page 68: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/68.jpg)
Comandos
• setenv exibe ou seta variáveis de ambiente
• sig emite um sinal a tarefa
• spawn inicia uma aplicação no PVM
![Page 69: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/69.jpg)
Compilando os programas exemplos
• Vá para o diretório $PVM_ROOT/examples
• Todos os exemplos assumem que pvm está instalado e rodando concorrentemente
![Page 70: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/70.jpg)
Exemplo: hello + hello_other
• Dois programas que cooperam - mostra como criar uma nova tarefa e passar (trocar) mensagens entre as tarefas
• Para compilar:# aimk hello hello_other
Os arquivos serão gerados em: $PVM_ROOT/bin/LINUX
# hello
![Page 71: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/71.jpg)
Observação
• Os programas deverão ser compilados tanto nas máquinas mestre quanto nas máquinas escravo
![Page 72: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/72.jpg)
Exemplo: hello + hello_other
• Como executar a partir do console pvm:
pvm> spawn hello
Exemplo de saída:
i’m t40002
from t40003: hello, world from escravo1
![Page 73: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/73.jpg)
Exemplo de Execução (1)[root@mestre LINUX]# pvmpvmd already running.pvm> confconf3 hosts, 1 data format HOST DTID ARCH SPEED DSIG mestre.mltech.com.br 40000 LINUX 1000 0x00408841 escravo1 80000 LINUX 1000 0x00408841 escravo2 c0000 LINUX 1000 0x00408841pvm> ididt4000a
![Page 74: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/74.jpg)
Exemplo de Execução (2)pvm> spwan -> hellospawn -> hello[1]1 successfult80004pvm> [1:t80004] i'm t80004[1:t80004] from tc0003: hello, world from
escravo2.mltech.com.br[1:tc0003] EOF[1:t80004] EOF[1] finished
![Page 75: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/75.jpg)
Outros exemplos
• Vejam outros exemplos no arquivo $PVM_ROOT/examples/Readme
![Page 76: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/76.jpg)
Utilizando o XPVM
• É uma interface gráfica desenvolvida para mostrar informações, combinando a capacidade do PVM console com todas as vantagens de uma ambiente gráfico e um único nível de depurador de fácil utilização na interface X-Windows
![Page 77: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/77.jpg)
XPVM - Instalação
#yum install pvm-gui
#xpvm
Obs: a instalação default não está funcionando - Alguém se habilita a consertar o problema ?
![Page 78: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/78.jpg)
Links
• https://www.millennium.berkeley.edu/
Ferramenta RRDTool - usada pelo Ganglia– http://www.rrdtool.com/
– http://oss.oetiker.ch/rrdtool/
• gexec– http://ganglia.info/talks/lug_lbl_talk/index.html– http://www.theether.org/gexec/
![Page 79: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/79.jpg)
Links
• MPICH– http://www.mcs.anl.gov/research/projects/mpi/– http://www.mcs.anl.gov/research/projects/
mpi/mpich1/docs/mpichman-chp4/mpichman-chp4.htm
– ftp://ftp.mcs.anl.gov/pub/mpi/ 1.2.7
• Atlas– http://math-atlas.sourceforge.net/
![Page 80: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/80.jpg)
Links
• FFTW– http://www.fftw.org/
• PVM (Parallel Virtual Machine)– http://www.csm.ornl.gov/pvm/
• LAM (Local Area Multicomputer)– http://www.lam-mpi.org/
• Open-MPI– http://www.open-mpi.org/
![Page 81: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/81.jpg)
Links
• http://www.rocketcalc.com/vct/4.html
• XMTV– http://www.lam-mpi.org/software/xmtv/
• Open-MPI– http://www.open-mpi.org/software/ompi/v1.3/
• OpenMP– http://scv.bu.edu/documentation/tutorials/
OpenMP/
![Page 82: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/82.jpg)
Instalação
• criar o arquivo /etc/yum.repos.d/DVDlocal.repo com o seguinte conteúdo:
[DVDlocal]
name=Repositorio Local
baseurl=http://10.0.10.177/repo
enabled=1
gpgcheck=0
![Page 83: Construindo Supercomputadores com Linux - Resumido versão 29-05-13](https://reader036.vdocuments.mx/reader036/viewer/2022081420/552fc111497959413d8c6723/html5/thumbnails/83.jpg)
Instalação
• garantir que a variável http_proxy não esteja habilitada
• execute o comando abaixo:
#unset http_proxy
Crie o diretório temp no diretório /etc/yum.repos.d
Mova os arquivos CentOS-Base, CentOS-Media localizados em /etc/yum.repos.d para o diretório temp