O Sistema de Processamento Paralelo Netuno
Aplicações Paralelas Genoma Humano Turbulência dos Fluidos Dinâmica de Veículos Circulação de Oceanos Dinâmica de Fluidos Viscosos Modelagem de Supercondutores Cromodinâmica Quântica Visão por Computador Farmacêutica Biologia Estrutural Previsão do Tempo (+ 72 hs)
Aplicações Paralelas Algebra Linear Densa ou Esparsa Métodos Espectrais (Transformada de Fourier) N-Body (Barnes-Hut) Grade Estruturada (Lattice Boltzman) Grade Não Estruturada (Análise de Elementos Finitos) Simulação de Monte Carlo Lógica Combinatória (Criptografia) Grafos (Ordenação) Programação Dinâmica Métodos Branch and Bound Modelos Gráficos (Redes Bayesianas) Simulação de Máquinas de Estado Finito.
Simulando a Evolução das Galáxias A simulação da evolução de galáxias ao longo de milhões de anos é um dos problemas interessantes que podem ser resolvidos pela computação científica. Usando simples equações de física Newtoniana, usando a massa e a distância de suas estrelas, podemos prever com precisão o comportamento futuro de um conjunto de galáxias. Contudo, considerando-se que uma galáxia possui milhões de estrelas, esta seria uma aplicação com custos computacionais elevadíssimos.
Método de Barnes-Hut
Simulando a Evolução das Galáxias Para solucionar este tipo de problema é necessário calcular a interação gravitacional para cada par de estrelas em diversos intervalos de tempo. Este método de solução tem complexidade O(N2) o que o tornaria impossível chegar a uma solução em um tempo adequado. Mas levando-se em conta que a força gravitacional diminui com o quadrado da distância, pode-se usar um algoritmo aproximativo de complexidade O(N logn).
Simulando a Evolução das Galáxias Neste caso grupos de estrelas mais distantes são consideradas como uma única estrela com massa equivalente e situada no centro de massa dessas galáxias. Este algoritmo hierárquico recebe o nome de Barnes-Hut Ampla concorrência existe entre estrelas dentro de um intervalo de tempo, mas como são padrões bastantes irregulares e variantes no tempo, é um desafio explorar esta concorrência em arquiteturas paralelas.
Método de Barnes-Hut
Método de Barnes-Hut
Método de Barnes-Hut
Aplicações Biológicas Simulações Biomoleculares Dobramento de RNA Dobramento de Proteína Dinâmica do Tecido Muscular Biomecânica Neuromuscular Dinâmica Cardiovascular
Dobramento de Proteínas As proteínas são um conjunto de diferentes tipos de aminoácidos. A sua funcionalidade é dada pela forma final que assume, resultante de diversas e complexas forças de interação entre esses aminoácidos. São necessários recursos computacionais poderosos para simular com eficiência esse processo. A seguir vemos alguns exemplos de simulação de dobramento de proteínas.
Dobramento de Proteínas
Aplicações Geofísicas A exploração petrolífera e a prospecção mineral são as atividades, em nível de indústria de aproveitamento de recursos naturais, de maior aplicação da Geofísica. O desenvolvimento de programas de pesquisa que visem suprir o conhecimento geológico necessário é um fator essencial para a superação de limites na exploração mineral/petrolífera. Um dos grandes utilizadores do Netuno é a UFPA, que atua na pesquisa Geofísica, propondo soluções para os desafios para a produção petrolífera na Amazônia. Ou seja, a necessidade do aperfeiçoamento de técnicas adequadas a aumentar a capacidade de previsão, com diminuição de custos, da ocorrência de reservatórios em bacias sedimentares da Amazônia (onshore e offshore).
Aplicações Geofísicas Baseado na propagação de ondas sísmicas geradas por uma fonte artificial, e registradas em sensores denominados geofones (na terra) e hidrofones (na água), o geofísico usa os métodos sísmicos na definição de imagens de rochas na sub-superfície da Terra, em duas (2D) e três (3D) dimensões, possibilitando a delimitação de alvos de interesse para a exploração. Esta tarefa exige sofisticados equipamentos para a aquisição de uma gigantesca quantidade de dados, e sistemas computacionais de alto desempenho para o processamento e interpretação 2D e 3D. A atividade geofísica aplicada à exploração de petróleo na região. As reservas petrolíferas de Urucu no Amazonas e a atividade exploratória no litoral do Pará são as duas principais atividades petrolíferas na região.
Aplicações Geofísicas
Simulando as Correntes Oceânicas Modelo do clima da terra precisa saber como a atmosfera interage com os oceanos, que ocupam ¾ da superfície da Terra. Estão envolvidos neste estudo diversas forças físicas: efeitos atmosféricos, vento e fricção com o fundo dos oceanos. O oceano é divido em planos e cada plano possui uma grade de pontos igualmente espaçados (uma matriz) com informações como velocidade e pressão, entre outras. Além disto, todos esses planos são simulados para diversos intervalos de tempo, também igualmente espaçados.
Simulando as Correntes Oceânicas Para um oceano como o Atlântico, de 2000 km x 2000 km, uma grade de 100 x 100 pontos implica uma distância de 20 km entre os pontos, o que não é uma resolução muito fina. Para simular o comportamento dos oceanos para um período de 5 anos, atualizados a cada 8 horas, serão necessários cerca de 5500 intervalos de tempo. A demanda computacional para alta acurácia é enorme e a necessidade de multiprocessamento é clara. Por sorte a aplicação naturalmente permite bastante concorrência, pois há bastante independência de dados entre as diversas fases da computação.
Simulando as Correntes Oceânicas
Simulando as Correntes Oceânicas
SuperComputadores Paralelos
Evolução das Arquiteturas no Top500
ENIAC - 1946
O mais rápido em 1976 Cray 1
O mais rápido em 2001 ASCI White
O mais rápido em 2003 Earth Simulator
O mais rápido em 2005/2007 Earth Simulator IBM Blue Gene L
O mais rápido em 2008/2009 RoadRunner
Evolução Desempenho Top500
Evolução x Década 1 Gflop/s - 1988: Cray Y-MP; 8 Processadores Análise Estática de Elementos Finitos 1 Tflop/s 1998: Cray T3E; 1024 Processadores Modelagem de átomos de magnetos metálicos 1 Pflop/s 2008: Cray XT5; 1.5x105 Processadores Materiais Supercondutores 1 EFlop/s; ~2018: 1x107 Processadores 109 Threads
Netuno
Descrição O Netuno é um sistema de processamento paralelo composto por: Nós Computacionais Nós de Acesso e Controle Rede de Interconexão de Alta Velocidade Rede de Interconexão de E/S Sistema de Armazenamento Sistema Operacional Bibliotecas de programação Sistema de Gerenciamento: Nós Submissão
Descrição O Netuno é um sistema de processamento paralelo composto por: Nós Computacionais Nós de Acesso e Controle Rede de Interconexão de Alta Velocidade Rede de Interconexão de E/S Sistema de Armazenamento Sistema Operacional Bibliotecas de programação Sistema de Gerenciamento: Nós Submissão
Nós Computacionais 256 nós computacionais com: Dois processadores Intel Quad-core de 2,66 GHz com 12 MB de cache Memória com capacidade de 16 GB Unidade de disco com 160 GB Interface HCA para rede Infiniband Duas interfaces de rede Gigabit Ethernet Totalizando 2048 processadores e 4 TB de memória.
Nós de Acesso Quatro nós de acesso com a mesma configuração dos nós computacionais Acesso via ssh ou interface web (Moab). Compiladores disponíveis: Portland Fortran e C Intel C e Fortran GNU C e Fortran Depuradores paralelos (Totalview) Aplicações disponíveis na área de geofísica e oceanografia, entre outras. Sistema de submissão de tarefas Torque/Moab.
Nós de Controle Dois nós de controle com processadores AMD dual-core de 2.0 GHz. Software de gerenciamento SCALI Manager. Permite o envio simultâneo de comandos para todos os nós. Gerencia uma base de dados com as configurações de cada nó. Permite a instalação de todo o sistema operacional com apenas um apertar de botão.
Rede de Interconexão de Alta Velocidade Rede Infiniband com 20 Gbps por canal. Switch CISCO com capacidade para 260 conexões A comunicação se realiza totalmente sem bloqueio. Cada nó possui sua interface para conexão diretamente com o switch. Amplia bastante o espectro de aplicações que podem ser rodadas no sistema. Os drivers utilizados foram da distribuição OFED.
Rede de Interconexão de E/S Todos os nós de um rack de interligam a um switch local com 48 portas com portas Gigabit. Um switch central interliga a cada switch de rack através de um par de fibras óticas de 10 Gbps cada. O servidor de armazenamento se interconecta ao switch central com 12 canais Gigabit permitindo uma capacidade de transferência de até 1,2 GB/s.
Sistema de Armazenamento Paralelo Sistema de armazenamento PANASAS de alto desempenho. Capacidade inicial de 30 TB. Sistema de arquivos paralelos, que distribui um mesmo arquivo por vário discos, permitindo a sua leitura/escrita simultânea por vários usuários. Suporte para MPI I/O. Redundância para a proteção dos dados, duplica arquivos menores que 64 KB, RAID 5 para os maiores.
Sistema de Armazenamento Paralelo Sistema de armazenamento PANASAS de alto desempenho. Capacidade inicial de 30 TB. Sistema de arquivos paralelos, que distribui um mesmo arquivo por vário discos, permitindo a sua leitura/escrita simultânea por vários usuários. Suporte para MPI I/O. Redundância para a proteção dos dados, duplica arquivos menores que 64 KB, RAID 5 para os maiores.
Sistema de Armazenamento Paralelo
Sistema de Armazenamento Convencional Um servidor NFS com 4 links de 1 Gbps Capacidade de armazenamento bruta de 135 TB. Utiliza RAID-5 para redundância dos dados. Possui um servidor (head node) responsável pelo acesso ao array de discos com 4 interfaces de rede 1 Gbps, dois processadores AMD quad-core e 8 GB memória. 9 gavetas com 15 discos SATA de 1 TB cada.
Sistema Operacional Sistema operacional CentOS 5.1, baseado na distribuição RedHat Enterprise Linux. Software aberto permitindo acesso à informações e atualizações facilmente pela internet. Alto desempenho e confiabilidade. Ferramentas especiais de controle são adicionadas para permitir o gerenciamento do cluster como um único computador.
Avaliação de Desempenho Para avaliação de desempenho do cluster foi utilizado o programa High Performance Linpack (HPL), que é um solucionador paralelo de matrizes lineares densas. Como o Netuno é composto por vários nós, onde um nó não tem acesso direto à memória do outro, foram utilizadas as bibliotecas de comunicação MPI para a troca de mensagens entre os nós.
Avaliaão de Desempenho O desempenho final do Netuno para este benchmark foi de 16,2 TFlops Isso colocou o Netuno na 138a posição da lista Top500 de junho de 2008. Para obter-se este valor, vários parâmetros de configuração do HPL tiveram que ser ajustados para obter-se o melhor desempenho. O conjunto adequado de bibliotecas matemáticas e de comunicação teve que ser escolhido para conseguir-se um desempenho ideal.
Benchmark HPL
Benchmark HPL 0 0 1 2 1 2 A11 A14 A17 A12 A15 A18 A13 A16 A31 A34 A37 A32 A35 A38 A33 A36 A51 A54 A57 A52 A55 A58 A53 A56 A71 A74 A77 A72 A75 A78 A73 A76 A21 A24 A27 A22 A25 A28 A23 A26 A41 A44 A47 A42 A45 A48 A43 A46 A61 A64 A67 A62 A65 A68 A63 A66 A81 A84 A87 A82 A85 A88 A83 A86
Desempenho Entre as várias opções de bibliotecas matemáticas, utilizamos a GotoBLAS, com melhor desempenho que a ATLAS ou mesmo a Intel MKL. O tamanho da matriz inicialmente utilizado foi de 40000 x 40000 elementos. O desempenho medido para um nó (8 processadores) chegou a 70 GFlops em um desempenho máximo teórico de 85 GFlops. A eficiência situou-se em torno de 83% do valor de pico.
Desempenho O tempo de solução para uma matriz de 40000 x 40000 elementos ficou em torno de 12 minutos para a execução em um nó. Para avaliação do desempenho em execução com vários nós, a velocidade e latência da rede de interconexão tem influência significativa no desempenho. A seguir apresentamos uma comparação entre o uso de Ethernet (1Gbps) e Infinibando (20 Gbps).
Desempenho Ethernet O desempenho para um rack com 32 nós, ou seja, 256 processadores, é de 1,5 TFlops com uso da interface ethernet. Ou seja, uma eficiência em torno de 58%. O desempenho com o uso de 2000 processadores foi de 8,9 TFlops. Esses valores indicam uma eficiência final de apenas 42%.
Desempenho Sustentado Ethernet 10000 1000 D. Sus. 100 10 0 500 1000 1500 2000 2500
Eficiência Ethernet 100 90 82 80 70 D. Sus. 60 55 50 42 40 0 500 1000 1500 2000 2500
Desempenho Infiniband O desempenho para um rack com 32 nós, ou seja, 256 processadores, é de 2,1 TFlops com uso da interface Infiniband. O tempo de solução de uma matriz de 224000 x 224000 é em torno de 1 hora. A eficiência foi em torno de 77%. O desempenho para 1000 processadores com uso da Infiniband é 7,6 TFlops. Esses valores indicam uma eficiência total em torno de 71%. O tamanho da matriz utilizada foi de 414000 x 414000.
Desempenho Infiniband O desempenho para 2048 processadores com uso da Infiniband é de 16,2 Tflops. O tamanho da matriz utilizada foi de 650.000 x 650.000. Só espaço de memória necessário para armazenar a matriz é de 3,4 TB em um total de 4,1 TB (83%). Esses valores indicam uma eficiência final de 70%. Os parâmetros de configuração do HPL podem ser encontrados nas referências em anexo.
Desempenho Sustentado Infiniband 16240 7590 10000 2050 1000 D. Sus. 100 70 10 0 500 1000 1500 2000 2500
Eficiência Infiniband 100% 90% 82% 80% 75% 71% 70% 70% Efic. 60% 50% 40% 0 500 1000 1500 2000 2500
Avaliação de Desempenho Nós N NB P Q Resultados (GFlops) OpenMPI Intel MPI Scali MPI 1 41448 192 2 4 71 72 72 4 82897 192 4 8 282 283 284 8 117234 192 8 8 561 548 570 16 165794 192 8 16 1106 1088 1131 32 234468 192 16 16 2189 2081 2218 64 331588 192 16 32 4248 4097 4365 128 468936 192 32 32 8268 7760 8385
Referências Publicações: http://www.dcc.ufrj.br/~gabriel/artigos.php Portal de Acesso http://login.hpc.ufrj.br:8181/map/user/nodeview.jsp Portal Netuno http://www.hpc.ufrj.br (em breve) Top500 http://www.top500.org HPL http://www.netlib.org/benchmark/hpl/