A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Construindo Supercomputadores com Linux - Resumido versão 29-05-13.

Apresentações semelhantes


Apresentação em tema: "Construindo Supercomputadores com Linux - Resumido versão 29-05-13."— Transcrição da apresentação:

1 Construindo Supercomputadores com Linux - Resumido versão

2 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

3 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

4 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

5 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

6 Vantagens em usar Cluster de Computadores Alto Desempenho Escalabilidade Tolerância a Falhas Baixo custo Independência de fornecedores

7 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

8 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

9 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

10 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

11 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

12 O Cluster Beowulf pode ser dividido em duas classes Cluster Classe I Cluster Classe II

13 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)

14 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

15 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

16 3 - Construindo um Cluster de Alto Desempenho

17 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

18 Top 500 Veja o link para a lista dos 500 maiores supercomputadores da atualidade

19 5 - Configurando o Cluster

20 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

21 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

22 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

23 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 x Máscara de rede: Criar uma interface lógica ifconfig eth0: x netmask

24 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,...

25 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: mestre.meudominio.com.br mestre escravo1.meudominio.com.br escravo escravo2.meudominio.com.br escravo2

26 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

27 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

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

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

30 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

31 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

32 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

33 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

34 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)

35 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

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

37 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)

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

39 Ganglia O Ganglia é uma ferramenta distribuída que permite monitorar sistemas de alto desempenho de computação É um projeto open source hospedado em

40 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

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

42 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

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

44 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

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

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

47 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

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

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

50 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

51 Passo 3 - Configuração do Ganglia Frontend # rpm -ivh ganglia-web 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:

52 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

53 Programação Paralela

54 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

55 Componentes do PVM Composto por duas partes: –primeira parte: daemon pvmd3 –segunda parte: biblioteca de rotinas PVM

56 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

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

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

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

60 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

61 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

62 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/li b/$PVM_ARCH export PATH=$PATH:$PVM_ROOT/lib/pvmd export XPVM_ROOT=/usr/share/pvm3/xpvm

63 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

64 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

65 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

66 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)

67 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 ids e os pais dos ids quit sai do console reset encerra todos os processos exceto os consoles e reinicia as tabelas internas e filas de mensagens do PVM

68 Comandos setenv exibe ou seta variáveis de ambiente sig emite um sinal a tarefa spawn inicia uma aplicação no PVM

69 Compilando os programas exemplos Vá para o diretório $PVM_ROOT/examples Todos os exemplos assumem que pvm está instalado e rodando concorrentemente

70 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

71 Observação Os programas deverão ser compilados tanto nas máquinas mestre quanto nas máquinas escravo

72 Exemplo: hello + hello_other Como executar a partir do console pvm: pvm> spawn hello Exemplo de saída: im t40002 from t40003: hello, world from escravo1

73 Exemplo de Execução (1) LINUX]# pvm pvmd already running. pvm> conf conf 3 hosts, 1 data format HOST DTID ARCH SPEED DSIG mestre.mltech.com.br LINUX x escravo LINUX x escravo2 c0000 LINUX x pvm> id id t4000a

74 Exemplo de Execução (2) pvm> spwan -> hello spawn -> hello [1] 1 successful t80004 pvm> [1:t80004] i'm t80004 [1:t80004] from tc0003: hello, world from escravo2.mltech.com.br [1:tc0003] EOF [1:t80004] EOF [1] finished

75 Outros exemplos Vejam outros exemplos no arquivo $PVM_ROOT/examples/Readme

76 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

77 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 ?

78 Links https://www.millennium.berkeley.edu/ Ferramenta RRDTool - usada pelo Ganglia –http://www.rrdtool.com/http://www.rrdtool.com/ –http://oss.oetiker.ch/rrdtool/http://oss.oetiker.ch/rrdtool/ gexec –http://ganglia.info/talks/lug_lbl_talk/index.htmlhttp://ganglia.info/talks/lug_lbl_talk/index.html –http://www.theether.org/gexec/http://www.theether.org/gexec/

79 Links MPICH –http://www.mcs.anl.gov/research/projects/mpi/http://www.mcs.anl.gov/research/projects/mpi/ –http://www.mcs.anl.gov/research/projects/mpi/ mpich1/docs/mpichman-chp4/mpichman- chp4.htmhttp://www.mcs.anl.gov/research/projects/mpi/ mpich1/docs/mpichman-chp4/mpichman- chp4.htm –ftp://ftp.mcs.anl.gov/pub/mpi/ 1.2.7ftp://ftp.mcs.anl.gov/pub/mpi/ Atlas –http://math-atlas.sourceforge.net/http://math-atlas.sourceforge.net/

80 Links FFTW –http://www.fftw.org/http://www.fftw.org/ PVM (Parallel Virtual Machine) –http://www.csm.ornl.gov/pvm/http://www.csm.ornl.gov/pvm/ LAM (Local Area Multicomputer) –http://www.lam-mpi.org/http://www.lam-mpi.org/ Open-MPI –http://www.open-mpi.org/http://www.open-mpi.org/

81 Links XMTV –http://www.lam-mpi.org/software/xmtv/http://www.lam-mpi.org/software/xmtv/ Open-MPI –http://www.open-mpi.org/software/ompi/v1.3/http://www.open-mpi.org/software/ompi/v1.3/ OpenMP –http://scv.bu.edu/documentation/tutorials/Ope nMP/

82 Instalação criar o arquivo /etc/yum.repos.d/DVDlocal.repo com o seguinte conteúdo: [DVDlocal] name=Repositorio Local baseurl=http:// /repo enabled=1 gpgcheck=0

83 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


Carregar ppt "Construindo Supercomputadores com Linux - Resumido versão 29-05-13."

Apresentações semelhantes


Anúncios Google