Computação de Alta Perfomance com Software Livre (Clusters) 3º Seminário de Tecnologia da Informação UCSal Marcelo Soares Souza (marcelo@cebacad.net) CEBACAD Centro Baiano de Computação de alto Desempenho
Computação de Alta Perfomance com Software Livre (Clusters) Snowflakes are one of nature's most fragile things, but just look at what they can do when they stick together. (Verna M Kelly) - Computação Paralela - Máquinas Paralelas Virtuais - Algumas tecnologias Livres para HPC
Computação Paralela - Refere-se ao aumento de velocidade na execução (processamento) de um programa atráves da divisão deste fragmentos. - Obtenção de alta perfomance através da cooperação de processadores na execução simultânea de tarefas. - Necessária em áreas de computação intensiva, tratamento de informações e manipulação de grande volume de dados.
Computação Paralela - Alguns dos grandes Desafios (Grand Challenge) para a computação de alta perfomance * Applied Fluid Dynamics * Ecosystem Simulations * Biomedical Imaging and Biomechanics * Molecular Biology * Molecular Design and Process Optimization * Nuclear power and weapons simulations - Executando uma tarefa dividida entre vários processadores se conseguirá executa-la muito mais rápidamente. (DIETZ, 2000)
Computação Paralela - Taxonomia de Flynn: Classificação de Arquiteturas de Computadores baseado no número de streams (fluxo) de instruções e dados: - Single instruction/single data stream (SISD) Computador convencional Sequencial. - Multiple instruction/single data stream (MISD) Não utilizado. - Single instruction/multiple data streams (SIMD) Processadores Vetoriais e/ou Instruções MMX, SSE, SSE2 e etc. - Multiple instruction/multiple data streams (MIMD) Multiplos processadores autonomos processando diferentes instruções em diferentes dados (Computadores Paralelos/Multiprocessados).
Computação Paralela
Computação Paralela - Computadores Multiprocessados Vs. Clusters. - Computadores Multiprocessados possuem memória compartilhada (Shared memory) ente os n- processadores atráves de um barramento dedicado e de alta velocidade. - Clusters possuem memória distribuida entre os n-nodes formadores do Cluster, interligadas atráves de um barramento dedicado ou não.
Computação Paralela - O conceito de Cluster se refere a um agrupamento de computadores, fracamente acoplados, trabalhando em conjunto. - A idéia foi originalmente desenvolvida pela DEC na década de 80. - n-computadores (n-nodes) interligados e compartilhando recursos possuem n-vezes mais poder computacional.
Computação Paralela - Clusters são construidos para High Perfomance Computing (HPC). - Clusters podem provê também estrutura para Tolerância a Falha (dependabilidade) em serviços de missão crítica. - A Construção de Clusters busca o melhor Custo X Beneficio.
Computação Paralela - Top 500 Supercomputers: http://www.top500.org/ - Cluster mais rápido do Mundo: IBM Blue Gene/L. 280.6 Tflops ou 286.6 trilhões de cálculos de ponto flutuante por segundo (2005). - Uso variado, indo desde calculos de envelhecimento de materiais, dinâmica das moléculas e instabilidade da hidrodinâmica e etc. - Consiste de 65,536 processadores PowerPC e sistema operacional GNU/Linux.
Computação Paralela
Máquinas Paralelas Virtuais - Computadores Paralelos Convencionais, tais como multiprocessados, possuem alto custo de aquisiçao e arquiteturas fechadas. - Uma das alternativa a estes sao as Máquinas Paralelas Virtuais (MPV), que são baseadas em Estações de trabalho, tambem conhecidas também como Cluster de COTS (Component Off the Shelf). - Utilizam de redes de computadores convencionais, locais e/ou remotas, como barramento de comunicação entre nodes.
Máquinas Paralelas Virtuais The Stone SouperComputer (155 nodes) http://stonesoup.esd.ornl.gov/
Máquinas Paralelas Virtuais - O Projeto Beowulf original foi desenvolvido para a computação de alta perfomance, utilizando de máquinas de baixo custo (Intel 486 DX4) interligadas atraves de um barramento nao dedicado (ethernet 10 mbs). - Originalmente desenvolvido (1993) por Donald Becker e Thomas Sterling nos laboratorios da NASA como solução a recursos escarsos. - Um cluster Beowulf é um agrupamento de PCs, rodando Sistemas Operacionais Livres (GNU/Linux). Utilizandose de uma rede Ethernet e de um middleware que permite a paralelização.
Algumas tecnologias Livres para HPC - Conforme aponta Merkey[1], dentros os diversos fatores que possibilitaram a evolução dos clusters de computadores estão a disponibilidade de sistemas operacionais sobre licença livre, como o GNU/Linux e de compiladores do projeto GNU (Merkey, 2004). - O modelo de desenvolvimento aberto tem beneficiado o rápido desenvolvimento de ferramentas para a construção de clusters de computadores, como é facilmente observado pelo crescente surgimento de soluções sobre licença livre.
Algumas tecnologias Livres para HPC - Duas formas se destacam para a construção e utilização de clusters baseados em estações de trabalhos. - SSI (Single-system image). Onde o Cluster é visto, de maneira transparente, como uma única máquina de grande porte. - MPI (Message Passing Interface). Onde as aplicações são codificadas explicitamente, de forma paralela, para a resolução de dado problema computacional.
Algumas tecnologias Livres para HPC - Soluções para clusters Beowulf geralmente são codificadas explicitamente atráves de uma biblioteca de troca de mensagem. - O padrão para troca de mensagem em clusters de computadores é o MPI (Message Parsing Interface). Este padrão é implementado na forma de uma Biblioteca para a construção de Softwares que paralelizem o processamento. - Ainda é a Solução mais estudada e difundida, permite explorar e desenvolver o conhecimento sobre paralelização da computo. - Implementação livres do Padrão MPI: mpich, lam/mpi, ft-mpi, openmpi e etc.
Algumas tecnologias Livres para HPC MPIPov Renderização de imagem atráves de troca de mensagem
Algumas tecnologias Livres para HPC MPIPov 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 Tempo (segundos) Amd Opteron 250 (2400 Mhz) 72 x Amd Athlon XP (2000 Mhz) 82 x Intel Xeon (2800 Mhz)
Algumas tecnologias Livres para HPC - O alto custo de desenvolvimento ou adequação de soluções, de forma paralela, comerciais e cientificas existentes dificulta ou impossibilita o uso de Troca de Mensagem. - A forma SSI oferece uma solução transparente ao usuário sem necessidade de alteração em códigofonte de qualquer aplicativo.
Algumas tecnologias Livres para HPC - SSI permite a virtualização de processos de maneira transparente ao usuário. Se assemelha a um sistema multiprocessado. - As principais preocupações do modelo SSI é provê disponibilidade, escalabilidade e manutenbilidade. - Single root, cluster filesystems, single process space and process migration, load leveling, single and shared IPC space, device space and networking space, and single management space.
Algumas tecnologias Livres para HPC - Tecnologias SSI Livre * Amoeba (MicroKernel) * Bproc (Extensão kernel Linux) * DragonFly BSD * Kerrighed (Extensão kernel Linux) * OpenMosix (Extensão kernel Linux) * Nomad (Extensão kernel Linux) * OpenSSI (Extensão kernel Linux)
Algumas tecnologias Livres para HPC - openmosix. Fork (2002) do projeto MOSIX da Universidade de Israel. - Implementado em forma de patch no Kernel do Sistema Operacional Linux. - Uma máquina pode se juntar ou sair do cluster a qualquer momento. O openmosix tenta continuamente otimizar o alocamento de recursos existentes.
Algumas tecnologias Livres para HPC - Migração Transparente dos Processos do user-space do nó pai (local) para o kernel-space do nó remoto. Não é visivel atráves de ferramentas de controle de processo (ps, top ou outros) - Uso de Algoritmo de Balanceamento de Carga (Load Balance) baseado em lógica do Mercado Financeiro (Menor custo).
Algumas tecnologias Livres para HPC - Um Cluster openmosix comporta-se como um sistema multiprocessado distribuindo processos entre os nós do cluster. - Não possibilita a migração de Processos com Memória Compartilhada e/ou ou que possua Multi- Thread. - Processo tem seu mapa de memória destruido e as páginas relacionadas ao nó original recriado no nó remoto.
Algumas tecnologias Livres para HPC - migshm é um patch ao openmosix Kernel que possibilita a migração de alguns procesos que utilizam de áreas de memória compartilhada. - Possibilita à migração de processos, tais como Web Servers, Sistemas Gerenciadores de Banco de Dados e outros. - Barramento de comunicação tem forte influência na perfomance geral de um Cluster de Computadores.
Algumas tecnologias Livres para HPC Teste de Perfomance Apache Web Server openmosix + migshm
CEBACAD E-Mail: marcelo@cebacad.net http://marcelo.cebacad.net http://www.cebacad.net