Construindo Supercomputadores com Linux - PowerPoint PPT Presentation

About This Presentation
Title:

Construindo Supercomputadores com Linux

Description:

Construindo Supercomputadores com Linux vers o 26-05-13 1 - Introdu o a supercomputa o Paralelismo Pode ser definido como uma t cnica utilizada em grandes e ... – PowerPoint PPT presentation

Number of Views:278
Avg rating:3.0/5.0
Slides: 164
Provided by: mltechCom
Category:

less

Transcript and Presenter's Notes

Title: Construindo Supercomputadores com Linux


1
Construindo Supercomputadores com Linux
  • versão 26-05-13

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

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

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
  • http//www.top500.org/

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 192.168.7.x
  • Máscara de rede 255.255.255.0

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
  • 192.168.7.71 mestre
  • 192.168.7.72 escravo1
  • 192.168.7.73 escravo2
  • 192.168.7.74 escravo3

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

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)

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

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

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 192.168.7.71 é o endereço do
    servidor (máquina
  • mestre)
  • 192.168.7.71/home /home nfs exec,dev,suid,rw 1 1
  • 192.168.7.71/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
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

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

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

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
    http//ganglia.sourceforge.net

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-1.2.30-1.el4.wrl.i386.rpm
  • rrdtool-python-1.2.30-1.el4.wrl.i386.rpm
  • ganglia-3.0.6-1.el4.i386.rpm
  • ganglia-gmond-3.0.6-1.el4.i386.rpm
  • ganglia-gmetad-3.0.6-1.el4.i386.rpm
  • ganglia-web-3.0.6-1.el4.noarch.rpm

70
Passo 0
  • Instalação do php-gd
  • yum install php-gd
  • 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.rp
    m

71
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

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
  • nameMyCluster ? este nome deve ser único pois
    identifica o cluster
  • ownerMauro

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-3.0.6-1.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
  • Alterar o parâmetro
  • 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-3.0.6-1.el4.noarch.rpm
  • Abra o navegador em http//localhost/ganglia

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/man13/
  • 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_ARCHLINUX
  • export PATHPATHPVM_ROOT/libPVM_ROOT/lib/PVM
    _ARCH
  • export PATHPATHPVM_ROOT/lib/pvmd
  • export XPVM_ROOT/usr/share/pvm3/xpvm

106
Instalando e configurando o PVM
  • altere a permissão do arquivo /etc/profile.d/pvm.s
    h 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
  • mestre
  • escravo1
  • escravo2
  • escravo3

108
Utilizando o PVM
  • Execute o PVM
  • pvm
  • pvmgtadd mestre
  • pvmgtadd escravo1
  • pvmgtadd escravo2
  • pvmgtadd 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
  • pvmgt spawn ? hello
  • Exemplo de saída
  • im 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

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

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 grupogt possui os comandos relacionados a
    inicialização, identificação e finalização dos
    processos
  • segundo grupogt 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
  • tar -zxvf mpich.tar
  • mv mpich-1.2.7 /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.LINU
    X
  • 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
  • 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 PATHPATH/usr/lib/lam/bin

134
Instalação do LAM
  • /usr/lib/lam/etc/lam-bhost.def
  • /home/ltusergt/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
PVM 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
  • http//www.rrdtool.com/
  • http//oss.oetiker.ch/rrdtool/
  • gexec
  • http//ganglia.info/talks/lug_lbl_talk/index.html
  • http//www.theether.org/gexec/

159
Links
  • MPICH
  • http//www.mcs.anl.gov/research/projects/mpi/
  • http//www.mcs.anl.gov/research/projects/mpi/mpich
    1/docs/mpichman-chp4/mpichman-chp4.htm
  • ftp//ftp.mcs.anl.gov/pub/mpi/ ? 1.2.7
  • Atlas
  • http//math-atlas.sourceforge.net/

160
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/

161
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/

162
Instalação
  • criar o arquivo /etc/yum.repos.d/DVDlocal.repo
    com o seguinte conteúdo
  • DVDlocal
  • nameRepositorio Local
  • baseurlhttp//10.0.10.177/repo
  • enabled1
  • gpgcheck0

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
Write a Comment
User Comments (0)
About PowerShow.com