• Nenhum resultado encontrado

Sistemas de Computação e Desempenho (UCE Computação Paralela Distribuída)

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas de Computação e Desempenho (UCE Computação Paralela Distribuída)"

Copied!
28
0
0

Texto

(1)

Sistemas de Computação e Desempenho

(UCE Computação Paralela Distribuída)

João Luís Ferreira Sobral

(2)

Visão actual da computação paralela e distribuída

• Tendências actuais

– Movimento massivo na direcção de multi-core • 2-Core agora, 4-Core em 2008, 6-Core em 2009 • Sistemas heterogéneos no futuro

(3)

Visão actual da computação paralela e distribuída

• Tendências actuais

– Crescimento da utilização de “Clusters”

Rank Site Manufacturer Computer Country Year Processors RMax

1 DOE/NNSA/LANL IBM BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz , Voltaire InfinibandUnited States 2008 122400 1026000 2 DOE/NNSA/LLNL IBM eServer Blue Gene Solution United States 2007 212992 478200 3 Argonne National Laboratory IBM Blue Gene/P Solution United States 2007 163840 450300 4 Texas Advanced Computing Center/Univ. of Texas Sun MicrosystemsSunBlade x6420, Opteron Quad 2Ghz, Infiniband United States 2008 62976 326000 5 DOE/Oak Ridge National Laboratory Cray Inc. Cray XT4 QuadCore 2.1 GHz United States 2008 30976 205000 6 Forschungszentrum Juelich (FZJ) IBM Blue Gene/P Solution Germany 2007 65536 180000 7 New Mexico Computing Applications Center (NMCAC)SGI SGI Altix ICE 8200, Xeon quad core 3.0 GHz United States 2007 14336 133200 8 Computational Research Laboratories, TATA SONSHewlett-PackardCluster Platform 3000 BL460c, Xeon 53xx 3GHz, InfinibandIndia 2008 14384 132800

9 IDRIS IBM Blue Gene/P Solution France 2008 40960 112500

10 Total Exploration Production SGI SGI Altix ICE 8200EX, Xeon quad core 3.0 GHz France 2008 10240 106100 11 Government Agency Hewlett-PackardCluster Platform 3000 BL460c, Xeon 53xx 2.66GHz, InfinibandSweden 2007 13728 102800

(4)

Visão actual da computação paralela e distribuída

• Tendências actuais

– EGEE – Enabling Grids for E-sciencE No

Site

Reports GIIS Host totalCPU freeCPU 1 CERN-PROD prod-bdii.cern.ch 3512 474 2 FZK-LCG2 giis-fzk.gridka.de 2680 458 3 USCMS-FNAL-WC1 uscmsbdii.fnal.gov 1509 820 4 IN2P3-CC cclcgip01.in2p3.fr 1688 1041 5 UKI- NORTHGRID-MAN-HEP niels002.tier2.hep.manchester.ac.uk 1800 1231 6 UKI-LT2-QMUL ce01.esc.qmul.ac.uk 1360 1004 7 SARA-LISA mu9.matrix.sara.nl 1350 984 8 INFN-T1 sg01-lcg.cr.cnaf.infn.it 1262 316 9 RAL-LCG2 site-bdii.gridpp.rl.ac.uk 1238 24 10 giHECie gridgate.ichec.ie 0 0 11 UKI-LT2-IC-LeSC mars-ce2.mars.lesc.doc.ic.ac.uk 806 685 12 INFN-LNL-2 t2-ce-02.lnl.infn.it 782 152 13 INFN-CATANIA grid012.ct.infn.it 766 61 14 UKI- NORTHGRID-LIV-HEP hepgrid9.ph.liv.ac.uk 642 617 15 INFN-PISA gridbdii.pi.infn.it 321 131 16 Taiwan-LCG2 lcg00125.grid.sinica.edu.tw 563 99 17 UKI- SCOTGRID-GLASGOW svr021.gla.scotgrid.ac.uk 536 126 18 HG-06-EKT ce01.athena.hellasgrid.gr 228 224 19 UKI-LT2-Brunel dgc-grid-44.brunel.ac.uk 413 4 maxCPU avgCPU 41245 36611

(5)

Visão actual da computação paralela e distribuída

• Paradigmas para o desenvolvimento de aplicações paralelas e distribuídas

Os “Parallelizing compilers” não obtêm um desempenho aceitável

Os paradigmas actuais centram-se em 3 linhas

• Multi-core -> Thread-based (e.g. loop-based, OpenMP) • Clusters -> Message Passing (MPI)

• Grids -> Workflows (GLITE, Job submission with file stage-in and stage-out)

A disciplina de sistemas de computação e desempenho incide no

desenvolvimento das competências necessárias para:

Identificar as características das arquitecturas que têm impacto no

desempenho

Escrever programas que adequadamente tirem partido dessas

(6)

Sistemas de Computação e Desempenho

Resultados da aprendizagem

• identificar e caracterizar a introdução dos diversos tipos de paralelismo na arquitectura interna dos processadores e no seu acesso à memória

• seleccionar as métricas, métodos e técnicas de avaliação de desempenho de programas em execução, para configurações da arquitectura de um sistema computacional

• avaliar quantitativamente o desempenho de um sistema de computação na execução de aplicações informáticas

• descrever e caracterizar os principais componentes de um sistema de computação em cluster ou em grelha

• avaliar criticamente a arquitectura dos sistemas de computação paralelos e distribuídos

Programa

• evolução recente da arquitectura de processadores: pipeline, superescalaridade, multi-threading, multi-core; hierarquia de memória em ambiente partilhado

• avaliação de desempenho na execução de aplicações: métricas, profiling, análise e

afinação de código (destaque para ciclos iterativos, manuseamento de matrizes e chamada de funções), benchmarking

• evolução do paralelismo nas arquitecturas: arquitecturas vectoriais, arquitecturas paralelas com memória partilhada e memória distribuída, arquitecturas distribuídas em rede; análise de desempenho em arquitecturas paralelas

(7)

Sistemas de Computação e Desempenho

Futuro da arquitectura de computadores

C a ch e s M e m ó ri a V ir tu a l R IS C S IM D M icr o p ro g ra m a çã o T im e s h a re d C C -U M A C C -N U M A N o t-C C -N U M A P a ssa g e m d e M e n sa g e n s Evolução Revolução V L IW ( E P IC ) G R ID /I n te rn e t P ip e lin in g S u p e re s c a la ri d a d e

Uma revolução obriga à alteração da forma de pensar dos programadores

Os processadores actuais

exploram paralelismo ao nível da instrução de forma transparente

Multi-threading

Processos comunicantes ILP

(8)

Sistemas de Computação e Desempenho

VLIW (Very Long Instruction Word)

• O escalonamento dinâmico incrementa de forma considerável a complexidade do Hardware.

• VLIW efectua um escalonamento estático, sendo o compilador responsável por indicar as instruções que podem ser realizadas em paralelo.

=> tem-se revelado um fracasso

• O formato de instrução indica as operações que são realizadas em paralelo por cada unidade funcional.

• Exemplo IA-64:

Instrução 2 Instrução 1 Instrução 0

128 bits T e m -p la te

Opcode PR REG REG REG

40 bits

(9)

Sistemas de Computação e Desempenho

VLIW (cont.)

• Limitações de VLIW

– O código gerado tende a ser de maior dimensão, porque é necessário inserir nop nos campos da instrução não preenchidos.

– Compatibilidade de código entre gerações dos mesmo processador uma vez que tende a expor a arquitectura interna do processador

– É mais penalizado com stalls que o escalonamento dinâmico

• EPIC – IA-64 / Itanium

– 64 registos de inteiros + 64 registos FP, ambos com 64 bits – 3 instruções em 128 bits (LIW?)

• menos bits que VLIW clássico, produzindo código mais compacto • possibilidade de ligação entre os vários grupos de instruções

(10)

Sistemas de Computação e Desempenho

Hyper-Threading (Intel)

• A adição de mais unidades funcionais nos processadores actuais não conduz a ganhos significativos de desempenho.

• O processador tem a capacidade de simular vários processadores (CC-NUMA) ou pode executar vários fios de execução em simultâneo.

– baseia-se mais no paralelismo ao nível dos fios de execução ou dos processos e menos paralelismo ao nível da instrução.

• Implica um aumento de <5% de transístores por processador e pode conduzir a ganhos no desempenho até 35% (Xeon actuais, com grau 2). • Os ganhos de desempenho são proporcionados por uma utilização mais

(11)

Sistemas de Computação e Desempenho

Hyper-Threading (cont.)

Super-escalar Multi-processador (2 vias) Hyper-Threading

Unidade Funcional 1 2 3 1 2 3 1 2 3 1 2 3 C ic lo s d e re ló g io 1 processador = 2 processadores ?

Não porque parte dos recursos do processador não são duplicados (i.é., são divididos pelos vários fios de execução) (caches, registos internos, buffers internos, etc.)

(12)

Sistemas de Computação e Desempenho

Hammer (AMD com 64 bits)

• Estende o IA-32 para 64 bits:

• A pipeline possui mais dois estágios (12 contra 10) que a arquitectura K7 (Athlon XP)

(13)

Sistemas de Computação e Desempenho

UltraSparc T1 (T2)

- 8 cores

- 32 threads simultâneas (4 ou 8/core)

- 4 caches L2

(14)

Sistemas de Computação e Desempenho

Memória partilhada centralizada (CC-UMA, CC-NUMA)

• 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:

Cache Processor Cache Processor Cache Processor Singlebus Memory I/O

(15)

Sistemas de Computação e Desempenho

Memória distribuída – processadores conectados por uma rede de interligação (CC-NUMA, passagem de mensagens)

• 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

Network Cache Processor Cache Processor Cache Processor Memory Memory Memory

(16)

Sistemas de Computação e Desempenho

Cluster de máquinas

• Constituídos pode HW “normal”, interligados por uma rede de alta velocidade (Gbit/s com muito baixa latência)

• 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

• Exemplo (Cluster investigação da Universidade do Minho - 2006):

– 8 nodos com SAN FC 3TB

– 8 nodos com NVIDIA 7800 GTX

48 2-way / 4-way 1 GB/s, 3us (10 Gbit/s) 96GB / 768GB 3,0 GHz 2,0 GHz Intel Xeon 96 7 2-way 250 MB/s, 10us (2,0 Gbit/s) 10 GB / 112 GB 3,2 GHz Intel Xeon 14 Máximo de nodos Nodos Comunicação Memória Actual/Máxi ma Freq. Relógio Processador CPU

(17)

Computação paralela : Cluster Search

Se

rvices and Advanced Research Computing with HTC/HPC clusters

30 nós duplo Xeon

3.2GHz, 2 GB RAM

8 nós duplo Xeon-dual core

2.0 GHz, 4 GB RAM

rede 10Gbit/s Myrinet

armazenamento central SAN

com 3TB

Total de 92 cores,

(18)

Computação paralela : Cluster Search

(19)

Computação Paralela

GRID

• Pode ser a próxima geração da internet

• "A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end

computational capabilities.", Foster 1998.

• "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations.”, Foster and Al, 2000.

• A partilha de recursos é altamente controlada, com os fornecedores e os utilizadores dos recursos a definirem claramente o que é partilhado, que está autorizada a utilizar cada recurso e em que condições a partilha ocorre.

• a coordenação de recursos não deve ser centralizada (os vários recursos encontram-se em domínios diferentes)

• deve utilizar protocolos standard e abertos

• deve fornecer vários níveis, não triviais, de serviço

• requer novos paradigmas de programação? (os recursos dinâmicos, altamente heterogéneos e sujeitos a grandes variações de desempenho)

(20)

Sistemas de

Computação e

Desempenho

Iniciativa nacional GRID

(www.gridcomputing.pt)

- “apoiar o desenvolvimento de estruturas de suporte à computação distribuída para a partilha de recursos na resolução de problemas complexos com necessidade de processamento intensivo de dados” - “assegurar o desenvolvimento de

competências e capacidades nacionais de interesse estratégico para a evolução deste tipo de computação distribuída”

(21)

Sistemas de Computação e Desempenho

• Transístores por microprocessador (Lei de Moore):

T ra n s is to rs                                                      1,000 10,000 100,000 1,000,000 10,000,000 100,000,000 1970 1975 1980 1985 1990 1995 2000 2005

Bit-level parallelism Instruction-level Thread-level (?)

i4004 i8008 i8080 i8086 i80286 i80386 R2000 Pentium R10000 R3000

(22)

Sistemas de Computação e Desempenho

• Evolução das arquitecturas (2003)

Evolução tecnológica:

• Ciclo de relógio ~ 30% por ano (até agora!) • Densidade de transístores ~35%

• Área do chip ~15% • Transístores por chip ~55% • Capacidade total ~100%

Capacidade das arquitecturas em três anos:

• 2 x Ciclo de relógio (4-6 GHz)

• 5x número de transístores (vários biliões) • 10x mais capacidade bruta

• 4x mais densidade RAM • 4x mais capacidade de disco

Capacidade Velocidade (latência) Lógica ~2x cada 3 anos ~2x cada 3 anos

DRAM ~4x cada 3 anos ~2x cada 10 anos Disco ~4x cada 3 anos ~2x cada 10 anos

(23)

Sistemas de Computação e Desempenho

Evolução das arquitecturas (engenharia de computadores)

Medição de desempenho

– Hardware: custo, dissipação de calor, consumo, área – Tempo de execução (tempo de reposta), débito

– Grau de disponibilidade do sistema

Avaliar os sistemas existentes Implementar os sistemas da nova geração Simular novos projectos e organizações Benchmarks Workloads

(24)

Como determinar o desempenho: limite = tempo de execução

Uma máquina X é n vezes mais rápida que outra Y se: Tempo de execução em Y

n = ---Tempo de execução em X

Lei de Amdahl

Ganho devido a uma melhoria E:

Tempo de execução sem E ganho =

---Tempo de execução com E

Se a melhoria E acelerar um factor A uma fracção F do programa e o resto do programa permanecer inalterado: 1

ganho = ---(1 – Fracção) + Fracção/Aceleração

Exemplo1:

qual o ganho se melhorarem as instruções de FP em 2X, sabendo que apenas 10% das instruções são FP?

Exemplo2:

qual o ganho se apenas se melhorarem as instruções de FP, sabendo que apenas 10% das instruções são FP: 053 , 1 2 1 , 0 ) 1 , 0 1 ( 1 = + − 111 , 1 1 , 0 ) 1 , 0 1 ( 1 = ∞ + + −

(25)

Sistemas de Computação e Desempenho

Níveis de abstracção

Linguagem de Alto Nível Linguagem Assembly Linguagem Máquina Especificação de sinais de controlo Compilador Assembler Interpretação da máquina temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

(26)

Sistemas de Computação e Desempenho

Tipos de métricas de desempenho

Compilador Linguagens de programação Aplicação Datapath Control Transistors Fios Pinos

ISA

Unidades Funcionais

(milhões) de Instruções por segundo: MIPS

(milhões) de (FP) operações por segundo: MFLOP/s

Ciclos por segundo (clock rate) Megabytes por segundo

Soluções por mês

(27)

Desempenho do CPU (análise quantitativa de desempenho)

– Tempo de execução de um programa

• #Instruções x ciclos por instrução (CPI) x período do relógio (Tcc) • #I x CPI x Tcc

– Impacto de cada nível em cada parcela

– O CPI pode ser determinado para cada classe de instruções, sendo o CPI médio calculado multiplicando a frequência de cada instrução pelo seu CPI:

• Qual o impacto no desempenho se 30% dos saltos demorarem três ciclos?

– CPIBranch = 0,7x2 + 0,3x3 = 2,3 – CPIGlobal = 0,5x1 + 0,2x2 + 0,1x2 + 0,2x2,3 = 1,56 – Ganho = 1,5/1,56 = 0,96

= = = n i i i i i global I I F onde F CPI CPI 1 # # *

Combinação típica (mix) Operação Freq (Fi) Ciclos por

Instr. (CPIi) CPIi x Fi (% tempo)

ALU 50% 1 0,5 (33%) Load 20% 2 0,4 (27%) Store 10% 2 0,2 (13%) Branch 20% 2 0,4 (27%) Σ= 1,5 #I CPI Tcc Programa X Compilador X (X) Conj. instruções X X Organização X X Tecnologia X

(28)

Sistemas de Computação e Desempenho

Conjunto de Instruções (ISA)

Software

ISA

Hardware

Stack Acumulador Reg-Mem Load-store Push A Load A Load R1, A Load R1, A Push B Add B Add R1, B Load R2, A

Add Store C Store R1, C Add R3, R1, R2

Pop C Store R3, A

Referências

Documentos relacionados

Se você for retirar o kit para outra pessoa, você precisará de uma cópia do e-mail de confirmação e de uma cópia de um documento oficial da pessoa para a qual você está

Um clustering é aplicado à transformada de Hough para que para cada ordenada na origem compreendida entre seja feita a média do declive. Isto é feito com o objectivo

Com efeito, o problema da perda de informa¸c˜ao induzida pela poss´ıvel completa evapora¸c˜ao de buracos negros num estado t´ermico, leva a contradi¸c˜oes com

Direto Urbanístico brasileiro experimentou de- senvolvimento intenso nas últimas décadas. No quadro da Constituição de 1988 e da profunda re- democratização do Estado e

a) Comparação Pós-Classificação: é uma das técnicas mais óbvias que consistem em classificar as duas imagens separadamente pixel a pixel e depois comparar as

The most common diagnoses in the specialist clinic were tendinopathy of the rotator cuff (41.2%), adhesive capsulitis (13.5%), complete rotator cuff tear (12.2%), partial rotator

Este capítulo é destinado à apresentação do protótipo de um software para auxiliar as empresas de software na implantação da norma ISO 9000-3, apoiada pela ISO/IEC

No 3T11, as despesas operacionais e outras receitas operacionais apresentaram um aumento líquido de R$ 0,4 milhão, decorrentes do aumento de R$ 2,5 milhões nas Despesas