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

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

Construindo Supercomputadores com Linux

Apresentações semelhantes


Apresentação em tema: "Construindo Supercomputadores com Linux"— Transcrição da apresentação:

1 Construindo Supercomputadores com Linux
versão

2 1 - Introdução a supercomputação

3 Paralelismo Pode ser definido como uma técnica utilizada em grandes e complexas tarefas para obter resultados na forma mais rápida possível, dividindo-se então em tarefas pequenas que serão distribuídas em vários processadores para serem executadas simultaneamente

4 Processamento Paralelo

5 Classificação de Flynn
SISD MISD SIMD MIMD

6 Arquitetura MIMD Memória Compartilhada Memória Distribuída

7 MPP - Processadores Paralelos Massivos

8 SMP UMA NUMA COMA

9 CC-NUMA

10 Sistemas Distribuídos
computação distribuída computador paralelo

11 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

12 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

13 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

14 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

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

16 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 Sensoriamento remoto ou teledetecção) é uma técnica de obtenção de informações sobre um objeto, uma área ou fenômeno no Planeta Terra, sem que haja contato físico, atualmente essas informações são obtidas através de sensores em satélites que geram imagens. A NASA é uma das maiores captadoras de imagens recebidas por seus satélites.

17 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

18 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

19 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 O nome Beowulf foi tomado emprestado de um dos mais antigos poemas épicos da lingua inglesa, que conta a história de um cavaleiro ingles de grande força e valentia em sua saga para derrotar o monstro de Grendel (veja

20 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”

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

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

23 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

24 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

25 Redes de interconexão de alta velocidade
Myrinet SCI ATM

26 Ferramentas padrão para o processamento distribuído
TCP/IP DCE OSF

27 3 - Construindo um Cluster de Alto Desempenho

28 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

29 Top 500

30 4 - Principais Redes para Clusters

31 conectividade topologia

32 Divisão das redes Redes estáticas Redes dinâmicas

33 Topologias de redes mais comuns para clusters
fat tree estrela malha (mesh)

34 A latência é inversamente proporcional a eficiência
A largura de banda é diretamente proporcional a sua eficiência

35 Tecnologias Ethernet Fast-Ethernet Gigabit-Ethernet

36 Outras Tecnologias Myrinet QsNet SCI - Scalable Coherent Interface
HIPPI - High Performance Parallel Interface

37 5 - Configurando nosso Cluster

38 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

39 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

40 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

41 1º Passo: definir os endereços IP
Vamos usar o endereço de rede x Máscara de rede:

42 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 escravo1 escravo2 escravo3 sshd is running #ifconfig eth x netmask #route add default gw #route #/sbin/chkconfig --level 35 daemon on, onde daemon: xinetd #ntsysv Devido ao cluster ser pequeno não usaremos serviços de resolução de nomes como o DNS

43 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 escravo3

44 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 escravo3

45 5º Passo - Instalação do servidor RSH
instalar o rsh-server, caso ainda não esteja instalado Execute os comandos (como root): #yum install rsh-server #yum install ntsysv Execute o ntsysv e habilite os serviços de rsh, rlogin e rexec rsh el5.i386 rsh-server-0.17.el5.i386  servidor para o comandos de acesso remoto (rsh, rlogin, rcp) Nas máquinas com interface caracter: # yum install rsh-server inetd ou xinetd rsh (remote shell) rlogin (remote login) rcp (remote copy)

46 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 ao final do arquivo: rsh (remote shell) rlogin (remote login) rsh el5.i386 rsh-server-0.17.el5.i386  servidor para o comandos de acesso remoto (rsh, rlogin, rcp) Nas máquinas com interface caracter: # yum install rsh-server # yum install ntsysv

47 7º Passo - Habilitar os comando “R”
Habilite os serviços de rsh, rlogin e rexec com o comando ntsysv Inicie o xinetd através do comando: # service xinetd start Outra opção para iniciar o xinetd é ir até diretório /etc/rc.d/init.d e inicie o xinetd com o comando ./xinetd para que , toda vez que ao iniciar, o supervisor seja carregado automaticamente Inicie o depois vá ao /etc/rc.d/init.d e inicie o xinetd com o comando ./xinetd para que , toda vez que ao iniciar, o supervisor seja carregado automaticamente

48 8º Passo - Replicação Todos os arquivos hosts, hosts.equiv, securettty e .rhosts devem ser replicados em todos os computadores que formam o supercomputador (cluster)

49 Configurando o Servidor do Sistema de Arquivos (NFS)
No computador mestre: Edite o arquivo /etc/exports /home *(rw,no_root_squash) /etc *(rw,no_root_squash) onde: rw  montagem leitura/escrita no_root_squach  privilégios de superusuário Exporta os diretórios /home e /etc para montagem rw (read e write, isto é, leitura e escrita) com privilégios de superusuário (no_root_squach)

50 NFS - Servidor Reinicie o daemon do nfs # service nfs restart
Digite ntsysv e marque a opção para ativar o servidor NFS automaticamente (serviço nfs)

51 NFS - Cliente Nas máquinas cliente, podemos fazer os seguintes tipos de montagem: montagem manual montagem automática automontagem

52 NFS - Cliente Edite o arquivo /etc/fstab e acrescente as seguintes linhas: # # o endereço é o endereço do servidor (máquina # mestre) :/home /home nfs exec,dev,suid,rw 1 1 :/usr/local /usr/local nfs exec,dev,suid,rw 1 1

53 Chamadas a Remotas a Procedimentos (RPC)
Normalmente, os computadores que formam os sistemas distribuídos não compartilham a memória principal em suas comunicações. É comum a comunicação se utilizar de mecanismos de passagem de mensagens (utilizando bibliotecas como PVM, MPI, TCGMSG, Express, P4) e chamadas remotas a procedimentos (utilizando o serviço NFS)

54 Modelo de troca de mensagens
request processo cliente processo servidor response request = requisição response = resposta

55 Servidores de Tempo sincronização de relógios relógio lógico
servidor NTP (Network Time Protocol) - trabalha na porta UDP/123 O NTP implementa o modelo de sincronização hierárquico distribuído RTC - Real Time Clock UTC 0 Universal Time Coordinated

56 Servidores de Tempo - Configuração
/etc/ntp.conf Execute o comando: # touch /etc/ntp.drift Verifique o status do servidor NTP: # service ntpd status ntpdc localhost

57 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

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

59 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

60 Instalação do bWatch baixe o arquivo do site: crie o diretório /usr/local/bWatch 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

61 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

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

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

64 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

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

66 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

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

68 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 

69 Ganglia - Instalação Arquivos necessários para instalação no Ganglia no RHEL 4: php-gd rrdtool el4.wrl.i386.rpm rrdtool-python el4.wrl.i386.rpm ganglia el4.i386.rpm ganglia-gmond el4.i386.rpm ganglia-gmetad el4.i386.rpm ganglia-web el4.noarch.rpm

70 Passo 0 Instalação do php-gd: Instalação dos arquivos de dependência:
# yum install php-gd Instalação dos arquivos de dependência: # rpm -ivh rrdtool el4.wrl.i386.rpm # rpm -ivh rrdtool-python el4.wrl.i386.rpm

71 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

72 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”

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

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

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

76 Passo 3 - Configuração do Ganglia Frontend
# rpm -ivh ganglia-web el4.noarch.rpm Abra o navegador em:

77 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

78 Nagios Gerencia Servidores e Serviços

79 7 - Automatizando a Construção de Cluster HPC
O processo de construção e gerenciamento de cluster paralelos envolve diversos fatores: escolha e instalação do SO definição de ferramentas para configuração manutenção monitoramento escalonamento de tarefas

80 nodos de controle nodos computacionais sistema operacional bibliotecas de passagem de mensagens

81 SystemImager É um software que visa automatizar instalações Linux, distribuições de software e distribuição (deployments) de soluções como web farms, clusters, database farms, laboratório de informática e ambientes desktops corporativos

82 SystemImager (2) servidor de imagens golden client máquinas clientes

83 Kickstart É uma ferramenta da Red Hat para criar um modo de instalação automatizada A instalação do Kickstart poderá ser executada através de: cd-rom local disco rígido via rede por meio de NFS, FTP ou HTTP

84 FAI (Fully Automatic Installation)
Conjunto de scripts e arquivos de configuração para instalar de forma automatizada sistemas em cluster com a distribuição Debian

85 Projeto OSCAR (Open Source Cluster Application Resources)
É um ambiente para instalação, configuração e gerenciamento de clusters de alto desempenho com software livre Permite criar dois tipos de nodos: o nó controlador e os nós computacionais Possui interface gráfica como assistente de configuração e realização de tarefas

86 Projeto Rocks Permite a construção de pequenos clusters HPC rapidamente O Rocks é composto de vários aplicativos divididos em listas (rolls) escolhidas no momento da construção do ambiente

87 8 - Programação Paralela

88 Paralelismo Sistemas de computação paralela e distribuída

89 Padronizações Forum OpenMP equipe do PVM Forum MPI

90 Programação Paralela Objetivo
É transformar grandes algoritmos complexos em pequenas tarefas que possam ser executadas simultaneamente por vários processadores, reduzindo assim o tempo de processamento

91 bibliotecas ferramentas automáticas

92 Obstáculos ao Paralelismo
memória distribuída partição de dados distribuição de dados Sincronização dos processos

93 Tempo para coordenar as tarefas
tempo para se inicializar uma tarefa; tempo para sincronizar as tarefas; tempo para comunicação entre as tarefas, e tempo para finalizar uma tarefa

94 OpenMP Criado para desenvolvimento de programas paralelos em máquinas compartilhadas Característica Principal: existência de um único espaço de endereçamento na memória - cada processador poderá ler e escrever em todo espaço de memória do sistema

95 OpenMP (2) É composto por diretivas de compilação e bibliotecas para programação multithreads, suportando o modelo de paralelismo de dados Permite paralelismo incremental e combina partes de código escrito na forma serial e paralela num único programa-fonte

96 OpenMP (3)

97 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

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

99 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

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

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

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

103 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

104 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

105 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 A configuração desse arquivo é muito importante. Caso seja necessário alterá-lo, é preciso redefinir os valores das variáveis no terminal corrente, caso contrário, a modificação só terá efeito quando a máquina for rebotada. Veja que embora a linha abaixo pareça errada, ela está correta. export PATH=$PATH:$PVM_ROOT/lib/pvmd

106 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

107 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 escravo3 /root/pvmhosts

108 Utilizando o PVM Execute o PVM: #pvm pvm>add mestre
pvm>add escravo1 pvm>add escravo2 pvm>add escravo3

109 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) arch (tipo de arquitetura) speed (velocidade relativa)

110 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  quit  sai do console reset

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

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

113 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

114 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

115 Outros exemplos Vejam outros exemplos no arquivo Readme

116 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 #yum install pvm-gui

117 XPVM - Instalação #yum install pvm-gui #xpvm

118 MPI (Message Passing Interface)
É uma biblioteca com funções para troca de mensagens responsável pela comunicação e sincronização de processos em um cluster paralelo É portável Apresenta aproximadamente 129 funções para programação

119 MPI (Message Passing Interface)
Implementações: proprietárias open source Bibliotecas de passagem de parâmetros: Express NX/2 Vertex Parmacs P4

120 MPI - Especificações MPI-1 (1992) MPI-1.2 MPI-2 (1997)

121 Algumas implementações MPI
MPI-F: IBM MPICH: ANL/MSU - Argone National Laboratory e Mississipi State University UNIFY: Mississipi State University CHIMP: Edinburgh Parallel Computing Center LAM: Ohio Supercomputer Center MPL: IBM OPEN-MPI: Várias entidades de pesquisas e empresas

122 Conceitos Importantes
Rank Group Communicator Application Buffer System Buffer Blocking Communication Non-Blocking Communication Synchronous Send Buffered Send Standard Send Ready Send

123 Comandos Divididos em dois grandes grupos:
primeiro grupo> possui os comandos relacionados a inicialização, identificação e finalização dos processos segundo grupo> possui os comandos de comunicação comandos ponto a ponto (ex: MPI_Send, MPI_Recv) comandos em grupo (ex: MPI_Bcast, MPI_Reduce)

124 MPICH (MPICHamaleon) É uma implementação do padrão MPI (Message Passing Interface)

125 MPICH - Instalação Digite os comandos na sequência:
tar -zxvf mpich.tar mv mpich /usr/local cd /usr/local/mpich-1.2.7 Digite os comandos na sequência: #./configure --prefix=/usr/local/mpich-1.2.7 #make #make install

126 MPICH - Instalação Edite o arquivo machine.LINUX em /usr/local/mpich-1.2.7/util/machines/machines.LINUX E acrescente os nomes dos computadores que farão parte do cluster: mestre escravo1 escravo2 escravo3

127 MPICH - Instalação Alterar o arquivo profile no diretório /etc e acrescentar a linha: export MPIR_HOME=/usr/local/

128 MPICH - Testes # cd /usr/local/mpich-1.2.7/examples/basic
Compilação do programa CPI (Cálculo do PI) # mpicc cpi.c -o cpi Executando a aplicação com 3 processos: # mpirun -np 3 cpi

129 MPI-Testes # cd /usr/local/mpich-1.2.7/examples # cd perftest
Execute os comandos: # ./configure --with-mpich # make

130 MPI-Tests # mpirun -np 2 mpptest -logscale
# mpirun -np 3 mpptest -bisect -logscale

131 MPE - Multi-Processing Environment
É uma extensão das bibliotecas do MPICH que facilita a geração de arquivos de log, depuradores de rotinas de configuração, rotinas de serialização de sessões de códigos paralelos e uma biblioteca gráfica X.

132 LAM (Local Area Multicomputer)
É uma outra implementação do MPI Instalando o LAM Executando o LAM

133 Instalação do LAM Diretório de instalação:
# yum install lam # yum install lam-devel # yum install lam-libs # laminfo  verifica a instalação Diretório de instalação: /usr/lib/lam Acrescentar ao arquivo /etc/profile: export PATH=$PATH:/usr/lib/lam/bin

134 Instalação do LAM /usr/lib/lam/etc/lam-bhost.def
/home/<user>/mkdir mpi cd mpi vi lamhosts mestre escravo1 escravo2

135 OpenMPI - Open Source High Performance Computing
O projeto Open MPI é uma implementação do padrão MPI-2, desenvolvido e mantido por um consórcio formado por universidades, pesquisadores e empresas. Visa construir uma biblioteca MPI em código aberto

136 OpenMPI - Instalação # yum install openmpi # cd /usr/lib/openmpi
# man mpi

137 Comparando o PVM ao MPI-1
portabilidade máquina virtual recursos topologia tolerância a falhas

138 Comparando o PVM ao MPI-1
Portabilidade possui um grau maior de portabilidade Máquina Virtual coleta máquinas como visão de um único recurso não utiliza essa abstração Recursos forma dinâmica forma estática Topologia exige do programador a visão de agrupamento de tarefas abstração em ternos de topologia Tolerância a Falhas

139 Ferramentas auxiliares na programação paralela
Intel Tracer & Collector Cluster Development Kit TotalView Paragraph outras

140 9 - Renderizando Imagens com o POVRay

141 10 - Ferramentas de Análise de Desempenho e Otimizações

142 11 - Sistema de Arquivos Distribuídos

143 Sistemas de Arquivos Distribuídos
NAS = Networked Attached Storage SAN = Storage Area Network Storage = armazenamento

144 Formas de sistema de arquivos em um cluster paralelo
um ou mais servidores NFS para exportar o sistema de arquivos para todos os nodos sistema de arquivos puramente paralelo usar discos locais para prover um sistema de arquivos separado para cada nodo

145 NFS Sistemas de arquivos em rede de alta performance openAFS CODA Intermezzo openGFS Lustre GPFS PVFS

146 O Sistema de arquivos NFS

147 12 - Gerenciando Recursos em um Cluster

148 Queuing Escalonamento de Tarefas Políticas de Escalonamento

149 13 - Cluster x Grids - Uma visão introdutória

150 Grid Computig

151 Benefícios de um Grid

152 Arquitetura de um Grid

153 Principais Projetos de Grid
Globus Legion Condor

154 Conclusão

155 Termos computação em cluster processamento paralelo
aplicações paralelas processamento distribuído programas paralelos programação paralela ambiente paralelo paralelismo dados paralelos computação baseada em cluster

156 Processamento Paralelo x Distribuído
processamento paralelo  visa resolver um problema em um menor espaço de tempo possível processamento distribuído  o objetivo também é o poder computacional, mas a visão de alta disponibilidade, migração de processos, transparência aos recursos, dentre outros.

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

158 Links https://www.millennium.berkeley.edu/
Ferramenta RRDTool - usada pelo Ganglia gexec

159 Links MPICH Atlas http://www.mcs.anl.gov/research/projects/mpi/
ftp://ftp.mcs.anl.gov/pub/mpi/  1.2.7 Atlas

160 Links FFTW PVM (Parallel Virtual Machine)
PVM (Parallel Virtual Machine) LAM (Local Area Multicomputer) Open-MPI

161 Links http://www.rocketcalc.com/vct/4.html XMTV Open-MPI OpenMP
Open-MPI OpenMP

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

163 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"

Apresentações semelhantes


Anúncios Google