Professional Documents
Culture Documents
Bibliografia
Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, 2nd edition, Addison Wesley, 2003
Princpios Gerais de Paralelismo; Viso Algoritmica.
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.
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
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
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
1 2 4 8 16 32 64
12
ERRADO
13
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
17
Algoritmo tradicional
Seja ci o carry para o bit i
da soma dos bits 0,...,i-1 defina c0=0
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
20
Algoritmo tradicional
Interior do lao original:
zi = xi # yi # ci ci+1 = xiyi + ci(xi # yi)
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)
E assim sucessivamente... Tcnica exaustivamente utilizada para gerar paralelismo, quer aumentando a profundidade da recurso quer, no extremo, eliminando a recurso
22
24
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
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
30
31
1000 500,2
100 Speed-up
90,9
10
9,91
32
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
34
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
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
0 1
10
100 Processors
1000
10000
38
Aumentando a Resoluo
39
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
Soma
#1
#500
LapTop
http://www.top500.org 42
Projeo de Desempenho
44
100,00
TFlop/s
10,00
1,00 1992
1994
1996
1998
2000
2002
2004
2006
2008
2010
0,10
45
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
http://www.intel.com/technology/mooreslaw 50
At recentemente
Canalizar aumento no nmero de componentes para aumentar a freqncia de operao gera CPUs progressivamente mais rpidas
Mas o ganho anual em velocidade de um processador bem menor que o ganho anual no nmero de componentes, pois h barreiras
53
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
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
56
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
60
61
Forte tendncia de muitas PUs no mesmo chip, idnticas ou no, com uma ou mltiplas threads
HPL melhor que Moore devido a paralelismo Transformar ganho de Moore em ganho de velocidade requer paralelismo
62
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