Arquitectura de Computadores II. Multiprocessadores

Documentos relacionados
Arquitectura de Computadores II. Multiprocessadores

Arquitecturas Paralelas I Computação Paralela em Larga Escala. Introdução

Arquitectura de Computadores II. Introdução

Computação Paralela. João Luís Ferreira Sobral

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Caracterização de Sistemas Distribuídos

Sistemas Distribuídos

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Arquitetura de Computadores

Linguagem de Programação II

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

Arquitectura de Computadores II. Interface com Periféricos

Parallel Computing Paradigms

Arquiteturas de Sistemas de Processamento Paralelo. Introdução

Computadores e Programação (DCC/UFRJ)

CI212 Organização e Arquitetura de Computadores

Organização de Sistemas de Computadores

Ricardo Gonçalves 2013/2014. Arquitecturas Multicore

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

ORGANIZAÇÃO DE COMPUTADORES

Sistemas Operacionais Distribuídos

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho

Arquitetura II. CI312 Arquiteturas Avançadas de Computadores CI702 Arquitetura de Computadores Arquitetura para Adultos

Barramentos internos/externos

Paradigmas de Computação Paralela (UCE Computação Paralela Distribuída)

SSC510 Arquitetura de Computadores. 8ª aula

Disciplina de Arquitetura de Computadores

Arquitecturas Paralelas I. Computação Paralela. João Luís Ferreira Sobral

Arquitetura e Organização de Processadores. Aulas 06 e 07. Superescalaridade

Arquitectura de Computadores II. Pipelining Avançado e Paralelismo ao Nível da Instrução (ILP Instruction Level Paralelism)

Microprocessadores. Família x86 - Evolução

Hierarquia de Memória

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

ALGORÍTMOS PARALELOS (Aula 2) LCAD. Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES

28/8/13. Processadores. Introdução

Paradigmas de Computação

Taxonomia de Flynn. Procura classificar todas as arquitecturas de computadores com base no processamento das instruções e dos dado.

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO.

Desafios do Mapeamento de Processos em Arquiteturas Many-Core

Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h

Microcontroladores e Interfaces

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

Hierarquia de Memória

Arquitectura de Computadores II. Interface com Periféricos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ARQUITECTURA DE COMPUTADORES Ano Lectivo 2014/2015

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas SIMD

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Barramento compartilhado

Arquiteturas RISC e CISC de estado da arte

Organização de Computadores 2005/2006 Processamento Paralelo

Multiprocessadores: uma introdução

Ciências da Computação

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

ARQUITECTURA DE COMPUTADORES 2013/2014 2º SEMESTRE

The future is parallel but it may not be easy

Ferramentas para Programação em Processadores Multi-Core

Sistemas Operacionais I

Lic. Engenharia de Sistemas e Informática

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

MONTAGEM E MANUTENÇÃO DE COMPUTADORES

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES PARALELISMO: SMP E PROCESSAMENTO VETORIAL. Prof. Dr. Daniel Caetano

Arquitectura de Computadores II

Microprocessadores. Artur Moreira 11ºM1 Nº 4

Organização e Arquitetura de Computadores I

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA. INF Benchmark de Memória e Chipset

Barramento. Entrada. Saída

Apresentação dos Serviços para Processamento de Dados de Alto Desempenho disponibilizados pela InterNuvem

Conceitos Básicos Processador

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

Memória. Gestão do espaço lógico Paginação Segmentação com paginação

RT 1. Routers IP. Manuel P. Ricardo. Faculdade de Engenharia da Universidade do Porto

Computação Paralela. Medição e Optimização de Desempenho João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Barramento. Prof. Leonardo Barreto Campos 1

SISTEMAS DISTRIBUÍDOS

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

CURSO TÉCNICO EM INFORMÁTICA

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

SSC0611 Arquitetura de Computadores

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Organização e Arquitetura de Computadores INTRODUÇÃO

Breve Introdução aos Sistemas Operativos. Disciplina de Informática PEUS, U.Porto

Organização de Computadores II

Máquinas mais rápidas do mundo

Supercomputador Pleiades

Sistemas distribuídos. Prof. Emiliano Monteiro

4. As condições de igualdade menor que e maior que são verificadas por a. Operações lógicas b. Subtração c. Localizações d. Operações aritméticas

Arquitetura de computadores

Organização de Computadores

Computação de alto desempenho

II Componentes de um computador

Estrutura de um Computador

Arquitetura e organização de computadores Uma visão geral

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Programador/a de Informática

Transcrição:

Arquitectura de Computadores II 3º Ano Multiprocessadores João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Maio 003

Utilização de vários processadores numa arquitectura => aumento do desempenho N processadores => ganho de N vezes? capacidade de processamento superior a qualquer sistema uniprocessador Escaláveis: o desempenho do sistema pode ser melhorado adicionando mais unidades de processamento. Populares em servidores de ficheiros e de bases de dados Utilizados para executar uma só aplicação (p. ex. simulação do tempo) ou para suportar a carga de vários utilizadores (p. ex. servidores Web) Classificação dos sistemas (Taxonomia de Flynn) - Classificação de acordo com o número de fluxos de instruções e de dados processados (Exemplo para MIPS) 1. SISD - Single Instruction Single Data Um só fluxo de instruções e de dados (processadores convencionais) IF ID EX MEM WB. SIMD - Single Instruction Multiple Data Um só fluxo de instruções processa vários fluxos de dados EX MEM WB IF ID EX MEM WB EX MEM WB 3. MIMD - Multiple Instruction Multiple Data Vários fluxos de instruções processam vários fluxos de dados IF ID EX MEM WB IF ID EX MEM WB IF ID EX MEM WB Arquitectura de Computadores II João Luís Sobral 003

MIMD Tem prevalecido por ser mais flexível e poder ser desenvolvido com base em processadores comerciais O hardware pode suportar um modelo de memória partilhada ou de memória distribuída MIMD com Memória partilhada centralizada: um só espaço de endereçamento partilhado por todos os processadores primitivas para sincronizar os acesso às zonas de memória partilhada velocidade de acesso à memória pode ser uniforme (UMA) MIMD com Memória distribuída: cada processador possui o seu espaço de endereçamento existem primitivas para o envio de informação entre processadores Sistemas híbridos de memória partilhada e distribuída velocidade de acesso à memória não uniforme (NUMA) variando em função do endereço acedido. Vantagens de memória distribuída: A largura de banda de acesso à memória escala mais facilmente A latência dos acessos à memória local é menor Desvantagens de memória distribuída: A comunicação entre máquina é mais complexa e a latência de comunicação entre máquinas é superior É possível simular por SW um sistema de memória partilhada numa sistema de memória distribuída (Virtual Shared Memory) Arquitectura de Computadores II 3 João Luís Sobral 003

Programação mais complexa que a dos sistemas uniprocessador: condicionada à obtenção de bons ganhos => forte envolvimento do programador complexidade de aplicações sequenciais + divisão da aplicação em tarefas paralelas + identificação das interacções entre tarefas. ganho condicionado pela fracção sequencial da aplicação Se s for a fracção sequencial do algoritmo, então 1/s é o ganho máximo que pode ser obtido com essa aplicação: Exemplo: Se 10% (s=0,1) da aplicação for sequencial qual o ganho máximo que pode ser obtido? ganho p = 1 0,9 + 0,1 p = p 10 Se for utilizado um número infinito de processadores o ganho é 10 x! (8,5x c/ 50 processadores, 9,x c/ 100 processadores) impacto negativo no desempenho da aplicação da latência dos acessos a memória remota Exemplo: acesso a uma memória remota = 000 ns Tcc = 10 ns acessos remotos = 0,5% CPI sem acessos remotos = 1 Qual o CPI se forem considerados os acessos remotos? CPI = CPI Base + % acessos remotos x custo de cada acesso CPI = 1,0 + 0,05 x 000/10 =,0 Uma máquina apenas com acessos locais é x mais rápida! Arquitectura de Computadores II 4 João Luís Sobral 003

Conectados por um único barramento (arquitecturas com memória partilhada centralizada): Vários processadores partilham um barramento de acesso à memória As caches de cada processador contribuem para reduzir o tráfego no barramento e a latência dos acessos à memória um valor pode estar replicado em vários sítios => são necessários mecanismos para assegurar a coesão entre as caches dos vários processadores e a memória A largura de banda de acesso à memória é partilhada pelos vários processadores => limitação à escalabilidade deste tipo de arquitectura P ro c e s so r P r o c e s s or P r o ce ss o r C ach e Cach e C a c he S ing l e bus Mem or y I / O Exemplos (1997): Nome Nº máx. Freq. Memória Débito de CPU de CPU Relógio Máxima comunicação Compaq Proliant 5000 4 Pentium Pro 00,0 GB 540 MB/s Digital AlphaServer 8400 1 Alpha 1164 440 8,6 GB 150 MB/s HP 9000 k460 4 PA-8000 180 4,0 GB 960 MB/s IBM RS/6000 R40 8 PowerPC 604 11,0 GB 1800 MB/s SGI Power Challenge 36 MIPS R10000 195 16,3 GB 100 MB/s SUN Enterprise 6000 30 UltraSPARC 1 167 30,7 GB 600 MB/s Exemplos (00 Boards para Intel/AMD): Nome Tyan Thunder K7X Tyan Thunder i860 Tyan Thunder i7500 Nº CPU CPU AMD Athlon MPX Intel Pentium 4 Xeon Intel Pentium 4 Xeon Freq. Rel. 1,73 GHz,0 GHz,0 GHz Mem. Max BW Memória 4,0 GB 100 MB/s 4,0 GB 300 MB/s 1,0 GB 300 MB/s Outros x 64 bit PCI Dual Ultra 160 SCSI x 64 bit PCI Dual Ultra 160 SCSI x 64 bit PCI-X Dual Ultra 160 SCSI Arquitectura de Computadores II 5 João Luís Sobral 003

Coesão de caches O facto de os processadores poderem utilizar protocolos de cache writeback, pode originar valores inconsistentes entre a cache e a memória principal partilhada com outros processadores. Os protocolos que asseguram a coesão entre os valores das caches dos vários processadores e da memória central são designados por protocolos de coesão de caches Coesão baseada em Snooping cada bloco da cache contém informação indicando se é partilhado. O processador monitoriza a actividade de barramento verificando se esta envolve um bloco local: Write-invalidate: Quando um processador escreve um valor na cache todas as outras cópias são tornadas inválidas através de um sinal do barramento. Write-update: Quando um processador escreve um valor na cache todas as outras cópias são também actualizadas. P ro c ess o r P r oces so r P r o ce s so r S n o o p t a g C ac h e t a g an d d a ta S n o o p t a g C a c h e t a g an d da ta Sn o o p ta g Ca c h e t a g a n d dat a Si n g le bu s M e mo r y I /O write-invalidate tende a gerar menos tráfego no barramento, uma vez várias escritas numa mesma linha da cache não geram tráfego. write-update tende a reduzir a latência nos acessos, porque as cópias estão sempre actualizadas A generalidade dos sistemas comerciais utiliza o esquema write-invalidate. As linhas de cache de elevada dimensão dão origem ao problema da falsa partilha: variáveis utilizadas por processadores diferentes e colocadas num mesmo bloco => o bloco é invalidado pelos dois processadores Arquitectura de Computadores II 6 João Luís Sobral 003

Conectados por uma rede de interligação Os sistemas interligados por um barramento tendem a limitar o número de processadores que efectivamente podem ser ligados A alternativa reside na utilização de uma rede dedicada à interligação dos vários processadores, possuindo cada processador a sua memória dedicada P ro c e s so r P r o c e s s or P r o ce ss o r C ach e Cach e C a c he M e m o ry Mem ory Me mo r y Net w o r k Exemplos (1997): Nome Cray Research T3E HP/Convex Exemplar X-class Sequent NUMA Q SGI Origin 000 Sun Enterprise 10000 Nº máx. de CPUs CPU 048 Alpha 1164 64 PA-8000 3 Pentium Pro 18 MIPS R10000 64 Ultra SPARC 1 Freq. Rel. 450 180 00 195 MHZ 50 Memória Máxima Largura de Banda de comunicação Tipo de Nodos Topologia 54 GB 100 MB/s 4-way 3-D torus 65 GB 980 MB/s -way 8-way crossbar + anel 131 GB 104 MB/s 4-way anel 131 GB 800 MB/s -way 6-cube 65 GB 1699 MB/s 4-way 16-way crossbar Arquitectura de Computadores II 7 João Luís Sobral 003

Conectados por uma rede de interligação Implementação de um endereçamento partilhado A implementação mais simples é não fornecer HW para suporte a coesão de cache => a cache não é utilizada em acessos remotos Serviço de directoria que mantém a informação sobre a partilha de cada bloco local de memória: A directoria é distribuída pelos processadores Cada entrada indica os processadores que contêm uma cópia do bloco de memória A invalidação dos blocos em caches é efectuada través de mensagens, com base em informação na directoria P r oc e ss o r Pr o c e s s o r P r oce s so r P rocess o r C a c h e Cac he C a ch e Ca ch e D i r e c t o r y M e m o r y D i r e c t or y M em or y Di re cto r y M e mo r y Di re c t o ry M e m o r y N e t w o r k N e tw o rk a. b. Comparação entre os sistemas conectados por um barramento e os sistema conectados por uma rede de interligação N e t w o r k N et work Netw o r k B us C o s t B u s Pe r f o rman ce Bus Per f o r m an c e p e r u n i t c o s t 4 8 16 N u mb e r o f p r o c e s s o r s 3 4 8 16 N u m be r o f pr oc esso r s 3 4 8 16 N um b e r o f p r oc es so rs 3 Arquitectura de Computadores II 8 João Luís Sobral 003

Programação de sistemas multiprocessadores com memória partilhada Os processadores comunicam através da memória, efectuando load e store As primitivas de sincronização asseguram que os acessos a regiões críticas são efectuados com exclusividade Somar uma lista de números 1. Dividir os elementos da lista pelos processadores disponíveis. Efectuar a soma parcial em cada processador 3. Efectuar a soma das várias somas parciais Exemplo: somar 100000 números com 10 processadores: Memória Central Passos 1 e : calcular somas parciais Valores a somar A[0] A[1] + P0 soma A[0] a A[n/p-1] 1, Soma[Pn]=0; for (i=10000*pn, i<10000*(pn+1); i++) Soma[Pn]= Soma[Pn] + A[i]; // i é uma variável privada // em cada processador Somas calculadas por cada processador A[n-1] Soma[0] Soma[1] Soma[p-1] Guarda o resultado em Soma[0] + +... + + 3 Somar as somas em log(p) passos Passo 3: somar as somas parciais Num = 10; do { synch(); // espera por soma parcial if (num%!= 0 && Pn==0) // nº impar Soma[0]= Soma[0] + Soma[Num-1]; Num = Num/; if (Pn<Num) Soma[Pn] = Soma[Pn] + Soma[Pn+Num]; } while (Num>1); Arquitectura de Computadores II 9 João Luís Sobral 003

Programação de sistemas multiprocessadores com memória distribuída Os processadores comunicam através da memória de passagem de mensagens (send, receive) Exemplo: somar 100000 números com 100 processadores: P0 Memória Local P1 Pp-1 A[n-n/p] A[0] A[n-n/p+1] Valores A[1] + 1, a somar... local/ P0 soma A[n-1] A[n/p-1] A[0] a A[n/p-1] Soma Soma Soma local + + 3 Somar as somas em log(p) passos Passo 3: somar as somas parciais Num = 100; // 100 Processadores Lim = Num do { Num=(Num+1)/; if (Pn>=Num && Pn<Lim) send(pn-num,soma); if (Pn < (Lim/-1) ) Soma = Soma + receive(); Lim = Num; } while (Num>1); Passos 1 e : calcular somas parciais em cada nodo Soma=0; for (i=0, i<10000; i++) Soma= Soma + A[i]; A principal diferença reside no passo 3, porque as somas parciais se encontram distribuídas por vários processadores, sendo necessário enviar mensagens entre processadores com a soma parcial Adicionalmente, é necessário uma fase antes dos passos 1, para distribuir os valores a somar pelas memórias de cada nodo Arquitectura de Computadores II 10 João Luís Sobral 003

Clusters de máquinas Constituídos pode HW normal, interligados por uma rede de alta velocidade Cada nodo de processamento pode ser uma máquina de memória partilhada com vários processadores Cada nodo possui uma cópia do SO Alta disponibilidade: quando falha uma máquina basta substituí-la por outra Custos de administração na ordem do número de máquinas Exemplos (1997) Nome HP 9000 EPS1 IBM RS/6000 HACMP R 40 IBM RS/6000 SP Sun Enterprise Cluster 6000 HA Tandem NonStop Himalaya S70000 Número máximo de processadores Processador 64 PA-8000 16 PowerPC 604 51 Power SC 60 4096 Ultra SPARC 1 MIPS R10000 Freq. Relógio 180 11 135 167 195 Memória Máxima Largura de Banda de comunicação Nodos Máximo de nodos 65 GB 53 MB/s 4-way 16 4 GB 1 MB/s 8-way 1000 GB 150 MB/s 61 GB 100 MB/s 1000 GB 40 MB/s 16- way 30- way 16 way 3 56 Exemplo (Cluster investigação da Universidade do Minho - 1999) Nº máx. CPU Processador Freq. Relógio Memória Máxima 16 Pentium III 400 6,1 GB Largura de Banda de comunicação 150 MB/s (1, Gbit/s) Nodos Máximo de nodos -way 8 Arquitectura de Computadores II 11 João Luís Sobral 003

Futuro da Arquitectura de Computadores TOP 500 (os mais potentes computadores do mundo www.top500.org) Rank Manufacturer Computer/Procs 1 NEC Earth-Simulator/ 510 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.5 GHz/ 4096 3 Hewlett-Packard ASCI Q - AlphaServer SC ES45/1.5 GHz/ 4096 4 IBM ASCI White, SP Power3 375 / 819 5 Linux NetworX MCR Linux Cluster Xeon.4 GHz - Quadrics/ 304 R max R peak 35860.00 40960.00 777.00 1040.00 777.00 1040.00 76.00 188.00 5694.00 11060.00 Installation Site Country/Year Earth Simulator Center Japan/00 Los Alamos National Laboratory USA/00 Los Alamos National Laboratory USA/00 Lawrence Livermore National Laboratory USA/000 Lawrence Livermore National Laboratory USA/00............... 7 Hewlett-Packard AlphaServer SC ES45/1 GHz/ 560 3980.00 510.00 Commissariat a l'energie Atomique France/001............... 161 IBM SP Power3 375 / 380 393.00 570.00 EDINFOR Portugal/00 Computer Family Computer Type NEC Vector SX6 Compaq AlphaServer Al.Se.-Cluster Compaq AlphaServer Al.Se.-Cluster IBM SP SP Power3 375 high node NOW - Intel NOW Cluster - Intel Compaq AlphaServer Al.Se.-Cluster IBM SP SP Power3 375 Evolução versus revolução Microprogramação Pipelining Superescalaridade Caches Timeshared Memória Virtual RISC VLIW (EPIC) CC-UMA CC-NUMA Not-CC-NUMA Passagem de Mensagens GRID/Internet SIMD Evolução ILP Multithreading Processos comunicantes Revolução Os processadores actuais exploram paralelismo ao nível da instrução de forma transparente Uma revolução obriga à alteração da forma de pensar dos programadores Arquitectura de Computadores II 1 João Luís Sobral 003

Bibliografia Matéria Bibliografia Introdução aos multiprocessadores CODe 9.1 e 9. Multiprocessadores conectados por um barramento Multiprocessadores conectados por uma rede e Clusters CODe 9.3 CODe 9.4, 9.5, 9.7, 9.8, 9.9 e 9.10 CODe Computer Organization and Design: the hardware/software interface, D. Patterson and J. Hennessy, Morgan Kaufmann, ª edição, 1998. CA3e Computer Architecture: A Quantitative Approach, J. Hennessy and D. Patterson, Morgan Kaufmann, 3ª edição, 00. Arquitectura de Computadores II 13 João Luís Sobral 003