You are on page 1of 64

Processamento Concorrente e Paralelo

Jairo Panetta ITA/IED Petrobras/E&P/Tecnologia Geofsica INPE/CPTEC/DMD/PAD


1

Bibliografia
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, 2nd edition, Addison Wesley, 2003
Princpios Gerais de Paralelismo; Viso Algoritmica.

M. Ben-Ari: Principles of Concurrent and Distributed Programming, Addison Wesley, 2006.


Pioneiro em livros sobre concorrncia (primeiro livro em 82).

Jack Dongarra, Ian Foster, Geoffrey Fox, William Gropp, Ken Kennedy, Linda Torczon, Andy White: Sourcebook of Parallel Computing, Morgan Kaufmann, 2003.
Um dos melhores livros em aplicaes.

David E. Culler, Jaswinder Pal Singh, Anoop Gupta: Parallel Computer Architecture, a Hardware/Software Approach, Morgan Kaufmann, 1999.
nfase em hardware e seus impactos em software.

Michael Wolfe: High Performance Compilers for Parallel Computing, Addison-Wesley, 1996.
Tcnicas de otimizao e de compilao para paralelismo.

John L. Hennessy, David A. Patterson: Computer Architecture: A Quantitative Approach, 4th edition, Morgan Kaufmann, 2007.
Biblia de arquitetura de computadores

Papers.

Introduo a Processamento Concorrente e Processamento Paralelo

Concorrncia x Paralelismo
Suponha que um conjunto de programas cooperam para realizar uma computao. Tradicionalmente, concorrncia utilizada quando os programas podem ser executados simultaneamente em um ou mltiplos processadores. Tradicionalmente, paralelismo utilizado quando os programas so executados simultaneamente em mltiplos processadores.

Processamento Concorrente a composio de mltiplas partes de uma nica computao que podem ser executadas simultaneamente
5

Processamento Paralelo a execuo simultnea de mltiplas partes de uma nica computao para reduzir seu tempo de execuo
6

Concorrente x Paralelo
Processamento Concorrente est estruturado para ser executado simultaneamente
mas no necessariamente realiza

Processamento Paralelo realiza a simultaneidade Exemplo: Com uma nica CPU (core), possvel realizar Processamento Concorrente e testar a correo de Processamento Paralelo, mas no possvel reduzir o tempo de execuo.
7

Outra forma:
Processamento Concorrente mantm duas ou mais aes em progresso simultaneamente. Processamento Paralelo executa duas ou mais aes simultaneamente Novamente, uma CPU (core) s faz Processamento Concorrente H vantagens em se estruturar uma computao concorrentemente, mesmo com uma nica CPU
encapsulamento, melhor uso do recurso (CPU), etc...
8

Exemplos de Processamento Paralelo


Copiar (xerox) documento da ordem de 10.000 pginas utilizando
1 copiadora 2 copiadoras ...

Cavar uma vala horizontal de 10km de comprimento por 2m de dimetro utilizando


1 trabalhador 2 trabalhadores ...

Escrever um arquivo em disco utilizando


1 servidor de arquivos 2 servidores de arquivos ...

Prever numericamente o tempo no futuro utilizando


1 CPU 2 CPUs ...

Caractersticas bsicas de Processamento Paralelo


Requer a replicao (total ou parcial) de entidades trabalhadoras
mltiplas copiadoras mltiplos trabalhadores mltiplos servidores de arquivos mltiplas CPUs

Requer alterar a forma de realizar a tarefa para usufruir da replicao Ao replicar n entidades deseja-se dividir o tempo de execuo da tarefa por n
mximo terico; porque?
10

Copiar 10.240 pginas


Suponha:
original entregue em ordem crescente das pginas numeradas; copia deve ser entregue da mesma forma uma nica pessoa divide o original em partes iguais a serem copiadas, entrega para os copiadores e recolhe as cpias cada copiadora copia uma nica parte 1 segundo para copiar uma pgina 5 segundos para encontrar uma pgina em um bloco de pginas 5 segundos para juntar dois blocos de pginas copiadas

Estime o tempo (s) para realizar a tarefa utilizando


1, 2, 4, 8, 16, 32 e 64 copiadoras

11

Estimativa Grosseira
Hiptese: tempo total = tempo de entrega sequencial das partes + tempo de copiar uma parte + tempo de recolher a ltima parte Mquinas

Tempo (s) dividir 0 5 15 35 75 155 315 copiar 10240 5120 2560 1280 640 320 160 juntar 0 5 5 5 5 5 5 total 10240 5130 2580 1320 720 480 480

Ganho 1,00 2,00 3,97 7,76 14,22 21,33 21,33

1 2 4 8 16 32 64
12

falha hiptese da estimativa (recolhe cpias enquanto o ltimo copiador trabalha)

ERRADO

Copiar 10.240 pginas


Como utilizar eficientemente 1024 copiadoras?
Alterando os mecanismos de distribuio de dados e de coleta de resultados

O procedimento (algoritmo) muda com o volume de paralelismo


pois muda o gargalo da tarefa

E se uma copiadora for 10% mais lenta que as outras?


tpico de grande nmero de mquinas iguais

E se uma copiadora quebrar?


Tolerncia a falhas desejvel; as vezes, imprescindvel

13

Cavar vala de 10km


Exemplo atribudo ao Prof. Siang W. Song (IME/USP) Similar ao exemplo anterior. Assuma terreno demarcado, nmero crescente de trabalhadores equipados e um capataz.
Quais so os fatores que impedem reduo tima do tempo de execuo com o aumento do nmero de trabalhadores?

E se a vala for vertical? H problemas inerentemente sequenciais


alterar 1 bit na memria

Pequenas variaes do problema podem causar grandes variaes no algoritmo

14

Nveis de Paralelismo

15

Nveis de Paralelismo
Paralelismo ao nvel de bits
BLP: Bit Level Parallelism Acelera a execuo de uma instruo aumentando a largura do datapath (microprocessadores de 4, 8, 16 e 32 bits) Muito explorado at meados da dcada de 80; praticamente esgotado

Paralelismo ao nvel de instrues


ILP: Instruction Level Parallelism Execuo simultnea de mltiplas instrues ou trechos: RISC, VLIW, Superscalar Muito explorado at meados da dcada de 90; praticamente esgotado

Paralelismo ao nvel de tarefas


TLP: Thread Level Parallelism Mltiplos fluxos de execuo simultneos: Multi-core chips, Multithreading, etc...

Curso concentrado em TLP


Alguns casos de ILP
Culler, Cap. 1 16

Paralelismo utilizado desde os primrdios da computao

17

Soma de dois inteiros de n bits


Sejam X e Y dois inteiros de n bits
representados por xi e yi, i=0,...,n-1 bit 0 o menos significativo

Obter sua soma Z=zi, utilizando operaes lgicas de um bit:


e lgico, representado por xiyi ou lgico, representado por xi + yi ou exclusivo lgico, representado por xi # yi
18 M. D. Ercegovac, T. Lang, Digital Systems and Hardware/Firmware Algorithms, John Wiley & Sons

Algoritmo tradicional
Seja ci o carry para o bit i
da soma dos bits 0,...,i-1 defina c0=0

Ento (pense quando o bit resultante for 1)


zi = xi # yi # ci ci+1 = xiyi + ci(xi # yi)

Ou seja:
bit i da soma 1 sse haver carry sse
apenas um dos trs bits xi yi ci for 1, ou os trs bits xi yi ci forem 1 carry for gerado neste bit (xiyi), ou houver carry do bit anterior (ci) e for propagado por este bit (xi # yi)

19

Algoritmo tradicional
Algoritmo:
c0 = 0 for i = 0 : n-1 : 1 ! ndice = primeiro : ultimo : passo zi = xi # yi # ci ci+1 = xiyi + ci(xi # yi) end for

Algoritmo sequencial (por que?)


recurso, pois ci+1 = f(ci)

20

Algoritmo tradicional
Interior do lao original:
zi = xi # yi # ci ci+1 = xiyi + ci(xi # yi)

Defina gi (gera carry) e pi (propaga carry) por


gi = xiyi pi = xi # yi

Ento o interior do lao pode ser escrito:


gi = xiyi; zi = pi # ci; pi = xi # yi ci+1 = gi + cipi

Os bits propaga e gera podem ser obtidos em um nico passo (paralelo) para todos os i=0,...,n-1;
falta resolver a recurso no carry (obter todos simultaneamente) quando resolvida, zi pode ser obtido em paralelo para todos os i

21

Recurses
Recurso de profundidade 1:
ci+1 = f(ci)

Tcnica para gerar recurso de profundidade 2:


ci+2 = f(ci+1) = f(f(ci))

E assim sucessivamente... Tcnica exaustivamente utilizada para gerar paralelismo, quer aumentando a profundidade da recurso quer, no extremo, eliminando a recurso

22

Carry Lookahead Adder


Como
ci+1 = gi + ci pi ci+2 = gi+1 + ci+1pi+1

Ento substituindo ci+1 por sua expresso


ci+2 = gi+1 + (gi + ci pi)pi+1 = gi+1 + gi pi+1+ ci pi pi+1

Algoritmo na metade dos passos do original:


for i = 0 : n-1 : 2 gi = xi yi; gi+1 = xi+1 yi+1; pi = xi # yi; pi+1 = xi+1 # yi+1 ; zi = pi # ci; zi+1 = pi+1 # ci+1 ; ci+1 = gi + cipi; ci+2 = gi+1 + gi pi+1+ ci pi pi+1; end for
23

Carry Lookahead Adder


Sucessivamente: de
ci+1 = gi + ci pi ci+2 = gi+1 + ci+1pi+1 geramos ci+2 = gi+1 + (gi + ci pi)pi+1 = gi+1 + gi pi+1+ ci pi pi+1 e sucessivamente incrementando i e substituindo ci+1, ci+3 = gi+2 + gi+1pi+2 + gi pi+1 pi+2 + ci pi pi+1 pi+2 ci+4 = gi+3 + gi+2 pi+3 + gi+1pi+2 pi+3 + gi pi+1 pi+2 pi+3 + ci pi pi+1 pi+2 pi+3 ......

At obter cn-1 = f(c0), eliminando a recurso


Na prtica, limitado por fan-in das portas lgicas

24

Carry Lookahead Adder


Lao original gera um bit por iterao; h n iteraes
recurso de profundidade 1

Lao paralelo gera dois bits por iterao; h n/2 iteraes


recurso de profundidade 2

Lao paralelo pode gerar quantos bits forem necessrios, aumentando a profundidade da recurso ou, eventualmente, eliminando-a
25

Mtricas de Desempenho

26

Speed-up
Mede o ganho (no tempo de execuo) em utilizar p processadores

S(p) = T(1)/T(p)
Teoricamente, S(p) p Na prtica, caractersticas do computador alteram tais limites
27

Eficincia
Mede a eficincia em utilizar p processadores

E(p) = T(1) / (p*T(p)) E(p) = S(p) / p


28

Lei de Amdahl - Sumrio


Se a frao seqencial do tempo de execuo de um programa f, o ganho (speed-up) mximo

S(p) = 1/f
para qualquer nmero de processadores.

Gene M. Amdahl, Validity of the single processor approach to achieving large scale computing capabilities, AFIPS spring joint computer conference, 1967 29

Lei de Amdahl em Detalhe

30

Lei de Amdahl - Demonstrao

31

Lei de Amdahl - Implicaes


Speed-up mximo em funo da frao do tempo de execuo sequencial mantida sequencial na execuo paralela 1000

1000 500,2

100 Speed-up

90,9

10

9,91

1 1 10 Processadores f=0 f=0,1% f=1% f=10% 100 1000

32

Formas de Speed-up face a Amdahl


Tipicamente, a frao do tempo sequencial diminui com o tamanho do problema
Tcnica comum quando o speed-up no bom: aumentar artificialmente o tamanho do problema(1) Mas h casos em que o aumento necessrio para observar efeitos invisveis em problemas menores(2)

Strong speed-up
Mantm o tamanho do problema e escala o nmero de processadores

Weak speed-up
Escala o tamanho do problema com o nmero de processadores

(1)

D. H. Bailey: Twelve Ways to Fool the Masses When Giving Performance Results on Parallel Computers, Supercomputing Review, Aug. 1991

33(2)J. L. Gustafson: Reevaluating Amdahls Law, CACM May 1988

Porque Paralelismo? H Motivos Perenes

34

Desde que existem computadores


Aplicaes (usurios) requerem computadores cada vez mais potentes Velocidade e poder computacional de CPUs crescem a velocidade assombrosa
Base: Lei de Moore (veremos em seguida)

Requisitos das aplicaes (usurios) crescem mais rapidamente do que a velocidade das CPUs Acoplar mltiplas CPUs uma forma vivel de reduzir a distncia entre as necessidades dos usurios e a velocidade de uma nica CPU
35

Requisitos dos Usurios


Usurios esto insatisfeitos com os modelos matemticos utilizados nas simulaes computacionais (no representam aspectos crticos da realidade) Modelos matemticos mais precisos requerem computadores ordens de magnitude mais velozes que os atualmente disponveis (verdade desde sempre) Exemplo: Modelo de Circulao Global
36

Ex: Modelo Global do CPTEC


Resoluo Horizontal (km) 210 105 63 40 20
37

Flops por Dia de Previso (normalizado) 1 6 52 219 727

Dias de Previso por Dia de CPU (1 CPU NEC SX6) 995 100 16 7 1

Complexidade O(1/resoluo4)

Forecast Days per Day as function of Model Resolution (km) and Processor Count
700

600

26 (ECMWF)

500

79 79 83 (BOM)

F o recast D ays

400

40 (ECMWF)

26 (ECMWF)

26 (ECMWF)

300
79 63 63 60 (UK) 40 (ECMWF) 26 (ECMWF) 26 (ECMWF) 79 63 26 (ECMWF) 79 63 53 42 63 53 42 53 42 53 53 42 42

200

100

Velocidade mnima para produo (ES) 10


10 10 (ES) (ES)

10 10 (ES) 10 (ES) (ES)

0 1

10

100 Processors

1000

10000

38

Aumentando a Resoluo

39

Caso geral: Top500


Lista dos 500 computadores mais rpidos do mundo
mtrica: velocidade efetiva na soluo de sistema denso de equaes lineares em dupla preciso utilizando Linpack (High Performance Linpack) de tamanho escolhido pelo usurio classificao: velocidade efetiva medida em flop/s (floating point operations per second) submisso: usurios interessados executam HPL e enviam resultados (logo, pode haver mquinas potentes fora da lista) site: http://www.top500.org importncia: Rara base histrica de dados (duas listas por ano, mantidas desde 1993) incio: planilha de Linpack compilada por Jack Dongarra desde 1980; vide http://www.netlib.org

Ser nmero 1 no Top500 objeto de desejo (priceless)


HPL um dos programas mais extensamente otimizados, por fabricantes, da histria de computao Dificilmente um programa obter velocidade efetiva maior que a do HPL na mesma mquina
40

Top 500 June 2009


Mquina - Local Cores (CPUs) V Pico (TFlop) V Linpack (TFlop) Fabricante Processador IBM Blade: PowerPC + Cell Cray XT5: Opteron IBM Blue Gene/P: PowerPC SGi Altix (Xeon) IBM Blue Gene/L: PowerPC

RoadRunner Los Alamos, 129 600 USA Jaguar Oak Ridge, USA Jugene Juelich, Germany Pleiades NASA Ames, USA BlueGene/L Lawrence Livermore, USA
http://www.top500.org 41

1 456 1 381 1 002 608 596

1 105 1 059 825 487 478

150 152 294 912 51 200 212 992

Top500: Viso Histrica

Soma

#1

#500

LapTop

http://www.top500.org 42

Projeo de Desempenho

Cray 2 1 GFlop/s O(1) Thread

ASCI Red 1 TFlop/s O(103) Threads

Roadrunner 1 PFlop/s O(106) Threads

?? 1 EFlop/s O(109) Threads

Jack Dongarra, Invited Talk, SIAM 2008 Annual Meeting 43

Caso geral: Gordon Bell Award


Aplicao completa mais rpida do mundo no ano
premio dado anualmente no Supercomputing nos ltimos anos, tambm necessrio ter contedo cientfico alto esforo de otimizao, mas menor que HPL; por isso, mais prxima do usurio comum submetida por usurios

44

HPL x Gordon Bell


10.000,00 1.000,00

Mquina de propsito especfico

100,00

TFlop/s

10,00

Gordon Bell (preciso mista) supera HPL (preciso dupla)

1,00 1992

1994

1996

1998

2000

2002

2004

2006

2008

2010

0,10

0,01 Ano Gordon Bell HPL

45

Sumrio: Porque Paralelismo?


Usurios continuaro a demandar maior potncia computacional, alcanvel por paralelismo
at quando paralelismo resolve? I know how four ox can push a wagon, but not 1024 chickens

Entretanto, h motivos mais recentes para usar paralelismo


motivos alheios vontade dos usurios e dos fabricantes
46

Porque Paralelismo? H Motivos Recentes

47

Lei de Moore
Enunciado: A quantidade de componentes por circuito integrado dobra a cada ano (1965) ... a cada dois anos (1975) ... a cada 18 meses (atual)
48

Lei de Moore
Primeira forma (1965):
Quantidade de componentes por circuito integrado que minimiza o custo por componente dobra a cada ano Observao (no lei) no trabalho original Extrapolao baseada em 5 pontos Moore sugeriu reconsiderar aps 10 anos

Segunda forma (1975):


Quantidade de componentes por circuito integrado dobra a cada dois anos Moore nunca disse 18 meses (intel aponta 18 meses) Profecia auto realizvel
Gordon Moore: Cramming more components onto integrated circuits, Eletronics v.38, N.8, 1965; 49

Verificao da Lei de Moore


Dobra a cada 24 meses

Dobra a cada 18 meses

http://www.intel.com/technology/mooreslaw 50

Fora Motriz da Lei de Moore


Tecnologia de Litografia constantemente reduz tamanho de componentes em CI

G. Moore, palestra convidada ISSCC 2003 51

At recentemente
Canalizar aumento no nmero de componentes para aumentar a freqncia de operao gera CPUs progressivamente mais rpidas

G. Moore, palestra convidada ISSCC 2003 52

Mas o ganho anual em velocidade de um processador bem menor que o ganho anual no nmero de componentes, pois h barreiras
53

Mas h barreiras: Memory Wall

A velocidade de acesso memria escala mais lentamente que a velocidade da CPU, ao longo dos anos Acesso memria torna-se o gargalo da eficincia Largura de banda (bandwidth) vem sendo acomodada (economia) Latncia (latency) a questo crucial
J. L. Gaudiot, palestra convidada SBAC 2006 54

Mas h barreiras: Power Wall

Dissipao atingiu nveis intolerveis

Figura: Fred Pollack, palestra convidada MICRO 1999 S. 55 Borkar, Design Challenges of Technology Scaling, IEEE Micro, July 1999

Dissipao de Potncia
Pentium e Dissipador, 2005

Pentium e Dissipador, 1995


www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005

56

Dissipao de Potncia impede novo aumento de frequncia

www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005

57

Em sntese
Ida memria limita aumento de velocidade de programas, pois freqncia da memria no escala proporcionalmente frequncia da CPU e a latncia menos ainda (memory wall) Dissipao trmica atinge nvel absurdo (power wall) E h outras barreiras...
58

Paralelismo: Novos Motivos Como usar maior nmero de componentes para gerar mquinas mais rpidas? Aumentar a freqncia no mais possvel. Tendncia clara: Mltiplas CPUs de menor freqncia no mesmo chip
59

Paralelismo: Novos Motivos

60

Por enquanto, poucas CPUs por chip.

61

Forte tendncia de muitas PUs no mesmo chip, idnticas ou no, com uma ou mltiplas threads

Fonte: INTEL e AMD

Comparando ganhos anuais


Mtrica Lei de Moore (dobra a cada 18 meses) HPL (mnimos quadrticos) Gordon Bell (mnimos quadrticos) Ganho Anual 1,58 1,89 1,86

HPL melhor que Moore devido a paralelismo Transformar ganho de Moore em ganho de velocidade requer paralelismo
62

Porque Paralelismo: Concluso


Paralelismo (uso simultneo de mltiplas CPUs em um programa) uma tecnologia disponvel que reduz a distncia entre as necessidades dos usurios e a velocidade de uma nica CPU Mas tambm a forma vivel de converter o aumento no nmero de componentes da Lei de Moore em aumento da velocidade de processamento
63

Sumrio: Tpicos Abordados



64

Definio de Paralelismo Nveis de Paralelismo Recurses e sua resoluo Mtricas de Desempenho Paralelo Lei de Amdahl Necessidade e Utilidade de Paralelismo Lei de Moore Memory Wall, Power Wall

You might also like