Computação Paralela Equipe: Arthur Masahiro Brunelli Miranda Eric Felipe Paulo Roberto Arquiteturas Paralelas Utiliza múltiplos processadores para resolver, simultaneamente, o mesmo problema Aumento de desempenho Motivação Possibilidade de resolver problemas cada vez mais complexos; Desenvolvimento de novas arquiteturas de sistemas computacionais; Clock dos processadores se aproximando dos limites ditados pela física Clock dos processadores Aplicações Simulações Computação gráfica Matemática computacional Bioinformática Evolução das Arquiteturas Arquitetura Tradicional E CPU Memória S Evolução das Arquiteturas Unidade de E/S autônomas E CPU Memória S Evolução das Arquiteturas Hierarquia de memória E CPU L1 L2 Memória S Evolução das Arquiteturas Pipeline de Instrução F E CPU D E W F D E W F D E L1 L2 Memória S W Evolução das Arquiteturas Acelerar o processamento de dados pela CPU Liberando CPU Acelerando a alimentação da CPU Sobrepondo ciclos de CPU Acelerar o processamento de arquiteturas com múltiplas CPU’s Arquiteturas Paralelas dados construindo Taxonomia de Flynn É uma classificação genérica proposta em 1972. Embora seja antiga ainda é válida e muito difundida. Baseia-se na ideia de fluxo de instruções (Instruction Stream) e fluxos de dados (Data Stream). Taxonomia de Flynn Propõe 4 classes: SISD (Single Instruction Single Data) SIMD (Single Instruction Multiple Data) MISD (Multiple Instruction Single Data) MIMD (Multiple Instruction Multiple Data) SISD Um único fluxo de instruções atua sobre um único fluxo de dados Exemplos: Computadores com um único processador MISD Múltiplos fluxos de instrução atuam sobre um único fluxo de dados. Exemplo: Ainda não foi implementada SIMD Uma única instrução é executada ao mesmo tempo sobre múltiplos dados Exemplo: Máquinas Array (Eliminam as tarefas de controle do laço de instruções) MIMD Múltiplas instruções são executadas em múltiplos dados Exemplo: Computadores com múltiplos processadores. Top 500.org MIMD A maioria dos computadores que constam no Top 500 possui a arquitetura MIMD e utiliza o Linux como sistema operacional. Na lista de Novembro de 2011 o Top 10 inteiro utiliza o Linux. O Windows HPC 2008 tem uma única menção como sistema operacional do 59º. Multiprocessadores Subclasse das máquinas MIMD Existe um único espaço de endereçamento, o qual é compartilhado por todos os processadores Memória Entrelaçada Memória com Múltiplas Portas (Processador ligado diretamente na Memória Principal) E CPU CPU CPU CPU Memória S Multicomputadores Outra subclasse de máquinas MIMD Cada processador possui uma memória local de acesso único. As outras são consideradas memórias remotas e possuem espaços de endereçamento distintos Troca de Mensagens Exemplo: Rede de computadores interconectados através de um barramento Ethernet Multicomputadores EE EE CPU CPU CPU CPU Memória Memória Memória Memória SS SS Arquiteturas com múltiplos processadores UMA (Uniform Memory Acess) Consiste de dois ou mais processadores similares conectados. Existe um único sistema operacional que controla o multiprocessamento (Windows ou Linux). Mesmo tempo de acesso. Aplicação: servidores de fabricantes como Compaq, IBM, Dell e HP. Coerência de cache. Arquiteturas com múltiplos processadores Arquitetura de um multiprocessador do tipo UMA ou SMP Arquiteturas com múltiplos processadores NUMA (Non – Uniform Acess Memory) A memória é distribuída e implementada em módulos. Cada processador está associado a um módulo, formando um nó. Tempo de acesso variável. Espaço de endereçamento comum. Windows: API Win 32. Coerência de cache Arquiteturas com múltiplos processadores Arquitetura geral de um multiprocessador do tipo NUMA Arquiteturas com múltiplos processadores Arquitetura geral de um multiprocessador do tipo NUMA com o conceito de nó Arquiteturas com múltiplos processadores NUMA – Implementações quanto a coerência de cache NCC – NUMA (Non – Cache Coherent NUMA) Sem garantia de coerência de cache ou sem cache. CC – NUMA (Cache Coherent NUMA) Coerência garantida pelo hardware (protocolo). Arquiteturas com múltiplos processadores NCC – NUMA: Carnegie-Mellon Cm LSI-11 Arquiteturas com múltiplos processadores SC-NUMA Software-Coherent NUMA Implementada em software DSM (Distributed Shared Memory) Arquiteturas com múltiplos processadores COMA Cache-only Memory Architecture Memórias locais são caches (COMA caches) Bastante complexo e custo elevado Clusters Um cluster é um tipo de sistema de processamento paralelo que consiste de uma coleção de computadores independentes interconectados através de uma rede, trabalhando cooperativamente, criando a ilusão de uma máquina única. Clusters A ideia do uso de clusters é espalhar as cargas entre todos os computadores disponíveis, usando ao máximo os recursos que estão livres nas outras máquinas. O cluster como um todo será mais poderoso quanto mais rápidos forem os seu computadores individualmente e quanto mais rápida for a rede de interconexão que os conecta. Clusters Além disso, o sistema operacional de um cluster deve fazer o melhor uso do hardware disponível em resposta às mudanças de condições da computação. É uma ótima opção para instituições que precisam de desempenho, mas não têm recursos suficientes para comprar uma única máquina com vasto poder de processamento nem um cluster pronto de algum fabricante. Exemplos de Clusters Unicamp usa PlayStation 3 para realizar pesquisas São 12 PlayStation 3 ligados em rede em uma sala da Unicamp usando o sistema operacional Linux, formando um ‘cluster’ de processamento e ajudando nos cálculos de bioinformática desde junho de 2007. Exemplo de Clusters Exemplo de Clusters O projeto do primeiro CLUSTER em nossa região, denominado LANE-I, o qual foi concebido (03/2001) através de três computadores pessoais. O segundo cluster denominado de Amazônia-I, foi patrocinado pela ERICSSON, o qual é constituído de 12 nós. Exemplo de Clusters Cluster Amazônia-I Exemplo de Clusters O terceiro cluster denominado Amazônia-II. Este cluster é constituído de quatro máquinas do tipo: Quad Opteron. Exemplo de Clusters Cluster Amazônia-II Referências Bibliográficas De Rose, C.; Navaux, P. Arquiteturas Paralelas. Editora Sagra-Luzzatto, 2003. (Série Livros Didáticos Número 15) http://www.inf.ufsc.br/~mario/oac.pdf http://www.upf.br/erad/download/brusso.pdf http://i.top500.org/ Silva, Gabriel P.; Arquiteturas de Computadores II.