Clusters e Grids
Introdução Supercomputadores dominavam o mercado Alto custo Requerem mão de obra muito especializada Desenvolvimento de microprocessadores poderosos a um baixo custo Desenvolvimento de redes de alta velocidade Por que não usar o poder da computação em rede para executar aplicações paralelas?
Clusters Fornecer o poder dos supercomputadores a um baixo custo!!! Aproveitando a interconexão de computadores em rede Fornecendo visão única do sistema
Quais as vantagens? Escalabilidade Alto desempenho Alta disponibilidade Melhor aproveitamento de recursos Uso de hardware de baixo custo
Categorias de Clusters Alta disponibilidade (HAC) Alto desempenho (HPC)
Clusters HA Objetivo: manter a operação do sistema e recursos envolvidos Alta disponibilidade = 99,9% Tempo de failover = 10s Princípio básico Utilizar a redundância de serviços e servidores Aplicações Bases de dados de missão crítica e servidores de aplicação
Clusters HA Mecanismos utilizados Heartbeat + failover Pode-se ter perda de poder de processamento Preocupações envolvidas Consistência e espelhamento de dados, recursos e serviços Monitoramento Há ainda clusters híbridos HA + HP
Clusters HA
Exemplos SUN Enterprise Cluster Microsoft Cluster Server Tandem Clusters Linux (explosão em 2002) Red Hat High Availability Cluster IBM Cluster System Management for Linux Beowulf OpenMosix Alguns requerem hardware específico; outros são comercializados ou distribuídos apenas como middleware
Clusters HP Objetivo: prover grande poder computacional Princípios básicos Dividir sub-tarefas entre os nós do cluster (balanceamento de carga) Least connections: baseia-se no menor número de requisições/tarefas por servidor Round-robin: direciona as requisições/tarefas para o próximo servidor disponível de uma forma circular Weighted fair: número de tarefas X capacidade dos nós do cluster Nós executam as sub-tarefas de maneira cooperativa e integrada
Clusters HP Aplicações Previsões meteorológicas e simulações geotérmicas Análises genéticas Astrofísica Renderização de imagens
Middleware
Middleware Funções Distribuição de tarefas Gerência dos nós Checagem dos nós (keepalive) Heartbeat Failover
SSI Clusters Usuários não vêem os nodos individuais Aplicações não precisam ser reescritas Utilização de algoritmos de balanceamento de carga adaptativos Migração dinâmica de tarefas Exemplo: OpenMosix, OpenSSI
OpenMosix Cluster SSI/HPC Extensão do kernel Linux Não se baseia no modelo mestre-escravo Administração descentralizada Migração rápida de processos Apenas a pilha do processo e seus registradores são migrados Demais páginas são carregadas sob demanda (page faults) Migração de threads via memória compartilhada distribuída (DSM)
OpenMosix 300 instalações pelo mundo Número médio de nodos: 25 Alguns clusters OpenMosix têm mais de 500 nodos Tempo de uptime chega a 200 dias sem reboot Usado por IBM, Motorola, Apple, Boeing, US Airforce, Israeli Defense Force, NASA etc API simples para prover gerência do cluster
Beowulf Desenvolvido pela NASA em 1994 Utilizado para processar informação coletada via satélite Cluster HPC Existe um servidor responsável por controlar todo o cluster Front-end Uso de bibliotecas específicas para a construção de aplicações: PVM e MPI Utilizadas para a troca de mensages entre os nós do cluster
Beowulf
Grids Computacionais O que começou em universidades e institutos de pesquisa ganhou o mundo empresarial e hoje faz parte da estratégia de corporações como IBM, HP, Sun, NEC, Microsoft e Oracle. (Walfredo Cirne, UFCG) Mas o que é um grid computacional?
Grids Computacionais
Grids Computacionais Uma rede na qual o indivíduo se conecta para obter serviços computacionais que agregam recursos sob demanda Recursos = ciclos, armazenamento, software, periféricos etc A idéia é que qualquer serviço computacional possa ser obtido Quantidades enormes de recursos podem ser alocadas Os recursos podem estar geograficamente dispersos e em várias instituições distintas Custos menores
Grids Computacionais Grid é uma plataforma para execução de aplicações distribuídas Mais heterogênea Alta dispersão geográfica Múltiplos domínios administrativos Controle distribuído Desafios: Autenticação e autorização Escalonamento Interoperabilidade
OurGrid: Um Exemplo
Grids Computacionais Exemplos seti@home: http://setiathome.ssl.berkeley.edu/ ourgrid: www.ourgrid.org globus: www.globus.org teragrid: http://www.teragrid.org/ 102 teraflops de capacidade de processamento 15 petabytes (quadrilhões de bytes) de armazenamento disponíveis para acesso on-line
Referências http://www.clubedohardware.com.br/artigos/153 http://www.infowester.com/cluster.php http://openmosix.sourceforge.net/ http://walfredo.dsc.ufcg.edu.br/papers/sbrc.2005.v18.pdf