Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação Arquiteturas paralelas Arquiteturas computacionais Taxonomia de Flynn: 1972 - se baseia nas possíveis unicidade e multiplicidade dos fluxos de instruções e de dados para definir quatro tipos de arquiteturas: SISD (Single Instruction Streams Single Data Streams ): Fluxo único de instruções sobre um único conjunto de dados . Computadores sequenciais SIMD (Single Instruction Streams Multiple Data Streams ): Fluxo único de instruções em múltiplos conjuntos de dados .Computadores vetoriais e matriciais MISD (Multiple Instruction Streams Single Data Streams ): Fluxo múltiplo de instruções em um único conjunto de dados .Não existem computadores MIMD (Multiple Instruction Streams Multiple Data Streams ): Fluxo múltiplo de instruções sobre múltiplos conjuntos de dados. .Arquiteturas com múltiplos processadores independentes Classificação de Flynn SISD (Single Instruction Single Data) Máquinas von Neumann tradicionais: microcomputadores pessoais e estações de trabalho Classificação de Flynn SIMD (Single Instruction Multiple Data) Máquinas array: CM-2, MasPar Classificação de Flynn MISD (Multiple Instruction Single Data) Não existe! Classificação de Flynn MIMD (Multiple Instruction Multiple Data) Multiprocessadores e multicomputadores: nCube, Intel Paragon, Cray T3D Multiprocessadores e multicomputadores MIMD Computadores Paralelos e Distribuídos Fortemente Acoplado Multiprocessadores (memória compartilhada) Barramento Switched Sequent, Encore Ultracomputer, RP3 Fracamente Acoplado Multicomputadores (memória privada) Barramento Estações de Trabalho Switched Transputer, Hypercube Multiprocessadores Baseado em barramento CPU CPU CPU cache cache cache Memória Multiprocessadores Baseado em switch M M M M C M C C M C C M C C M C crossbar switch omega switching network Multicomputadores Baseado em barramento Estação de Trabalho Estação de Trabalho Estação de Trabalho Memória Local Memória Local Memória Local CPU CPU CPU Rede Multicomputadores Baseado em switch grid hypercube Compartilhamento de memória Multiprocessadores (espaço de endereçamento único) UMA (uniform memory access) - memória central NUMA (non-uniform memory access) - memória distribuída COMA (cache-only memory architecture) CC-NUMA (cache-coherent non-uniform memory access) NCC-NUMA (non-cache-coherent non-uniform memory access) Multicomputadores (múltiplos espaços de endereçamento) NORMA (non-remote memory access) SC-NUMA (software-coherent non-uniform memory access) DSM (Distributed shared memory) Compartilhamento de memória UMA P P P P P Rede de Interconexão M Coerência de cache resolvida em HW. P P P Acesso Não-Uniforme à Memória (NUMA) NUMA Dois ou mais processadores compartilham a memória global (= um único espaço de endereçamento). Em um sistema NUMA os processadores são organizados em nós. Cada nó possui 1 ou mais processadores, com sua(s) própria(s) memória(s) cache (um, dois, ou mais níveis) e alguma memória principal conectados por um barramento ou outro sistema de interconexão. Principal característica de uma arquitetura NUMA é o acesso não uniforme à memória, ou seja, embora todos os processadores possam acessar todas as posições de memória, os tempos de acesso variam de acordo com o endereço acessado Acesso local mais rápido que acesso remoto Dois tipos: ncNUMA (NUMA sem cache) e ccNUMA (NUMA com cache) Compartilhamento de memória NUMA espaço de endereçamento M M M M M M M M P P P P P P P P Rede de Interconexão Compartilhamento de memória NORMA P P P P P P P P M M M M M M M M Rede de Interconexão Arquiteturas paralelas Serie: N módulos conectados um após o outro. Falha de um módulo ocasiona falha o sistema todo Paralelo: N módulos conectados entre si. O sistema falha somente se todos os módulos falharem Arquiteturas paralelas Confiabilidade pode ser calculada através das fórmulas Série Paralelo Regra: Todos os módulos podem ser percorridas da esquerda para a direita ADF funciona BCDF não funciona Quando não pode percorrer todos os caminhos usar a fórmula: Arquiteturas paralelas e distribuídas Cray T90 Cray SX6 Arquiteturas paralelas e distribuídas Multiprocessadores simétricos (SMP) Múltiplos processadores similares conectados entre si e à memória por um barramento ou alguma outra forma de circuito de conexão interno Compartilhamento total Sistema operacional controla tudo P/C P/C P/C P/C Barramento / Matriz de chaveamento MC MC MC Baixa escalabilidade – gargalo no barramento. Exemplos: IBM R50, SGI Power Challenge, SUN Ultra Enterprise 10000, HP/Convex Exemplar X-Class, DEC Alpha Server 8400 Arquiteturas paralelas e distribuídas HP Integrity rx8620-32 Server Intel Quad Xeon 7400 Server Arquiteturas paralelas e distribuídas Máquinas maciçamente paralelas (MPP) P/C P/C P/C M M M Rede de interconexão de baixa latência Rede de interconexão proprietária. Comunicação através de troca de mensagens. Exemplos: Intel Paragon, Connection Machine CM-5, IBM SP-2 Arquiteturas paralelas e distribuídas Intel Paragon IBM SP2 Connection Machine CM-5 Arquiteturas paralelas e distribuídas Blue Gene da IBM Arquiteturas paralelas e distribuídas Máquinas com memória compartilhada distribuída (DSM) P/C P/C P/C M M M Rede de interconexão de baixa latência NUMA / NORMA Os processadores podem acessar todas as memórias. (único espaço de endereçamento) DSM implementado em SW, HW ou misto. Exemplos: Stanford DASH, Cray T3D, estações de trabalho rodando TreadMarks Arquiteturas paralelas e distribuídas Cray T3D Clusters - Motivação Processamento de alto desempenho ⌐ milhares de aplicações ao mesmo tempo ⌐ tarefas paralelas Ao longo dos anos uso de arquiteturas massivamente paralelas (MPP) e de memória compartilhada (SMP) Custo elevado desses tipos de máquinas Computadores pessoais custo menor O que é cluster ? “Cluster é um sistema distribuído que consiste na coleção de computadores interconectados, usados como um sistema único” (Gregory F. Pfister – In search of cluster) Sistema de processamento de dados paralelo ou distribuído Agregar computadores pessoais Computadores conectados de forma cooperativa Visão de sistema único para usuários e aplicações Execução de aplicações específicas de uma organização Arquitetura de cluster Parallel Applications Parallel Applications Parallel Applications Sequential Applications Sequential Applications Sequential Applications Parallel Programming Environment Cluster Middleware (Single System Image and Availability Infrastructure) PC/Workstation PC/Workstation PC/Workstation PC/Workstation Communications Communications Communications Communications Software Software Software Software Network Interface Hardware Network Interface Hardware Network Interface Hardware Network Interface Hardware Cluster Interconnection Network/Switch Classificação dos clusters Limite geográfico Métricas para Utilização dos nodos classificação dos clusters Tipo de topologia -Pequena (sala, laboratório) -Média (departamento) -Grande (organização) -Dedicados -Não dedicados -NOW (Network of Workstations) -COW (Cluster of Workstations) -Clumps (Cluster de SMPs) Aplicações alvo -Alto desempenho -Alta disponibilidade Tipos de nós -Homogêneo -Heterogêneo Classificação dos clusters Limite geográfico: área de atuação do cluster Pequena (sala, laboratório) Média (departamento) Grande (organização) Classificação dos clusters Utilização dos nós: define quais políticas de gerenciamento, segurança, alta disponibilidade, qual tipo de middleware usar Dedicados Não dedicados Classificação dos clusters Tipo de topologia: qual hardware usar NOW (Network of Workstations): estações de trabalho normais COW (Cluster of Workstations): heterogêneas, usadas em aplicações específicas Clumps (Cluster de SMPs): composto por máquinas SMP NOW Redes de estações de trabalho (NOW) P/C P/C P/C M M M Rede padrão (Ethernet,ATM) Compartilhamento de recursos. Utiliza rede convencional. Exemplos: estações de trabalho interligadas por Ethernet NOW COW Máquinas agregadas (COW) P/C P/C P/C M M M Rede padrão ou de alto desempenho Aplicações paralelas, alta disponibilidade, balanceamento de carga. Pode utilizar rede convencional ou de alto desempenho. Otimizações em software. Exemplos: iCluster HP Labs (Grenoble), Primergy Server do PC2 (Paderborn), cluster Amazônia (CPAD-PUCRS/HP) Clusters Clusters Amazônia e Ombrófila CPAD-PUCRS/HP Clusters HP i-cluster Grenoble