O documento apresenta uma introdução ao processamento paralelo, definindo o conceito, apresentando exemplos e características básicas. A agenda inclui métricas de desempenho paralelo, a Lei de Amdahl, a necessidade e utilidade do paralelismo, a Lei de Moore e limitações de memória e energia em sistemas paralelos.
1. Introdução a
Processamento
Paralelo
Jairo Panetta
ITA/IEC
Petrobras/E&P Sede/TG
INPE/CPTEC
1 III Semana Inverno Geofísica
2. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
2 III Semana Inverno Geofísica
3. Processamento Paralelo é
a realização simultânea de
múltiplas partes de uma
única computação para
reduzir seu tempo de
execução
3 III Semana Inverno Geofísica
4. Exemplos de Processamento Paralelo
• Copiar (“xerox”) documento da ordem de 10.000 páginas utilizando
– 1 copiadora
– 2 copiadoras
– ...
• Cavar uma vala horizontal de 10km de comprimento por 2m de diâmetro
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
– ...
4 III Semana Inverno Geofísica
5. Características básicas de
Processamento Paralelo
• Requer a replicação (total ou parcial) de
entidades trabalhadoras
– múltiplas copiadoras
– múltiplos trabalhadores
– múltiplos servidores de arquivos
– múltiplas CPUs
• Requer alterar a forma de realizar a tarefa para
usufruir da replicação
• Ao replicar n entidades deseja-se dividir o
tempo de execução da tarefa por n
– máximo teórico
5 III Semana Inverno Geofísica
6. Copiar 10.240 páginas
• Suponha:
– original entregue em ordem crescente das páginas 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 cópias
– cada copiadora copia uma única parte
– 1 segundo para copiar uma página
– 5 segundos para dividir o original em dois blocos
– 5 segundos para juntar dois blocos de páginas copiadas
• Estime o tempo para realizar a tarefa utilizando
– 1, 2, 4, 8, 16, 32 e 64 copiadoras
6 III Semana Inverno Geofísica
7. Tempo com n copiadoras
n=1 10240
n=2 5 + 10240/2 + 5
3≤n≤?? 5(n-1) + 10240/n + 10
t
7 III Semana Inverno Geofísica
8. Estimativa do Tempo de Execução
Hipótese: tempo total = tempo de entrega sequencial das partes +
tempo de copiar uma parte + tempo de recolher duas últimas partes
Tempo (s)
Máquinas Ganho
dividir copiar juntar total
1 0 10240 0 10240 1,00
2 5 5120 5 5130 2,00
4 15 2560 10 2585 3,96
8 35 1280 10 1325 7,73
16 75 640 10 725 14,12
32 155 320 10 485 21,11
64 315 160 10 485 21,11
falha hipótese da estimativa
(recolhe cópias enquanto o último copiador trabalha)
8 III Semana Inverno Geofísica
9. Copiar 10.240 páginas
• Como utilizar eficientemente 1024 copiadoras?
– Alterando os mecanismos de distribuição 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 1% mais lenta que as outras?
– típico de grande número de máquinas iguais
• E se uma copiadora quebrar?
– Tolerância a falhas é desejável; as vezes, imprescindível
9 III Semana Inverno Geofísica
10. Cavar vala de 10km
• Exemplo atribuído ao Prof. Siang W. Song (IME/USP)
• Similar ao exemplo anterior. Assuma terreno demarcado, número
crescente de trabalhadores equipados e um capataz.
– Quais são os fatores que impedem redução “ótima” do tempo de
execução com o aumento do número de trabalhadores?
• E se a vala for vertical?
• Há problemas inerentemente sequenciais
– alterar 1 bit na memória
• Pequenas variações do problema podem causar grandes variações
no paralelismo
10 III Semana Inverno Geofísica
11. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
11 III Semana Inverno Geofísica
12. Speed-up (ou Ganho)
• Mede o ganho (no tempo de execução)
em utilizar p processadores
S(p) = T(1)/T(p)
• Teoricamente, S(p) p
• Na prática, características do computador
alteram tais limites
12 III Semana Inverno Geofísica
13. Eficiência
• Mede a eficiência em utilizar p
processadores
E(p) = T(1) / (p*T(p))
E(p) = S(p) / p
13 III Semana Inverno Geofísica
14. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
14 III Semana Inverno Geofísica
15. Lei de Amdahl - Sumário
Se a fração seqüencial do tempo de
execução de um programa é f, o ganho
(speed-up) máximo é
S(p) = 1/f
para qualquer número de processadores.
Gene M. Amdahl, “Validity of the single processor approach
to achieving large scale computing capabilities”, AFIPS
15 spring joint computer conference, 1967 III Semana Inverno Geofísica
16. Lei de Amdahl em Detalhe
16 III Semana Inverno Geofísica
17. Lei de Amdahl - Demonstração
17 III Semana Inverno Geofísica
18. Lei de Amdahl - Implicações
Speed-up máximo em função da fração do tempo de execução sequencial mantida
sequencial na execução paralela
1000
1000
500,2
100 90,9
Speed-up
10 9,91
1
1 10 100 1000
Processadores
f=0 f=0,1% f=1% f=10%
18 III Semana Inverno Geofísica
19. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
19 III Semana Inverno Geofísica
21. Desde que existem computadores
• Aplicações (usuários) 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 aplicações (usuários) crescem mais
rapidamente do que a velocidade das CPUs
• Acoplar múltiplas CPUs é uma forma viável de reduzir a
distância entre as necessidades dos usuários e a
velocidade de uma única CPU
21 III Semana Inverno Geofísica
22. Requisitos dos Usuários
• Usuários estão insatisfeitos com os modelos
matemáticos utilizados nas simulações
computacionais (não representam aspectos
críticos da realidade)
• Modelos matemáticos mais precisos requerem
computadores ordens de magnitude mais
velozes que os atualmente disponíveis (verdade
“desde sempre”)
22 III Semana Inverno Geofísica
23. Caso geral: Top500
• Lista dos 500 computadores mais rápidos do mundo
– métrica: velocidade efetiva na solução de sistema denso de equações
lineares em dupla precisão utilizando Linpack (High Performance
Linpack) de tamanho escolhido pelo usuário
– classificação: velocidade efetiva medida em flop/s (floating point
operations per second)
– submissão: usuários interessados executam HPL e enviam resultados
(logo, pode haver máquinas potentes fora da lista)
– site: http://www.top500.org
– importância: Rara base histórica de dados (duas listas por ano,
mantidas desde 1993)
– início: planilha de Linpack compilada por Jack Dongarra desde 1980;
vide http://www.netlib.org
• Ser número 1 no Top500 é objeto de desejo (“priceless”)
– HPL é um dos programas mais extensamente otimizados, por
fabricantes, da história de computação
– Dificilmente um programa obterá velocidade efetiva maior que a do
HPL na mesma máquina
23 III Semana Inverno Geofísica
24. Top 500 Jun 2012
Cores V Pico V Linpack Fabricante - Power
Máquina - Local
(CPUs) (TFlop) (TFlop) Processador (MW)
Sequoia, LLNL, Blue Gene Q: IBM
1 572 864 20 132 16 324 7,890
USA PowerPC 1,6GHz
K Machine, RIKEN,
705 024 11 280 10 510 Fujitsu: Spark 2GHz 12,659
Japan
Blue Gene Q: IBM
Mira, ANL, USA 786 432 10 066 8 162 3,945
PowerPC 1,6GHz
SuperMUC: Leibniz
IBM, Intel Sandy
Rechenzentrum, 147 456 3 185 2 897 3,422
Bridge, 2.7GHz
Germany
Tianhe-1A: National Home Made:
186 368 +
Supercomputing 4 701 2 566 4,040
GPUs Xeon + NVIDIA
Center, China
http://www.top500.org
24 III Semana Inverno Geofísica
25. Brasil no Top500 Jun 2012
CPTEC #79 NACAD #456
PETROBRAS #68
25 III Semana Inverno Geofísica
27. Projeção de Desempenho
Cray 2 ASCI Red Roadrunner ??
1 GFlop/s 1 TFlop/s 1 PFlop/s 1 EFlop/s
O(1) Thread O(103) Threads O(106) Threads O(109) Threads
Jack Dongarra, Invited Talk, SIAM 2008 Annual Meeting
27 III Semana Inverno Geofísica
28. Sumário: Porque Paralelismo?
• Usuários continuarão a demandar maior
potência computacional, alcançável 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 usuários e dos
fabricantes
28 III Semana Inverno Geofísica
30. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
30 III Semana Inverno Geofísica
31. Lei de Moore
Primeira forma (1965):
– Número de componentes por circuito
integrado que minimiza o custo por
componente dobra a cada ano
– Observação (não “lei”) no trabalho original
– Extrapolação baseada em 5 pontos
– Moore sugeriu reconsiderar após 10 anos
Segunda forma (1975):
– Dobra a cada dois anos
– Moore nunca disse 18 meses
– Profecia auto realizável
Gordon Moore: “Cramming more components onto
integrated circuits”, Eletronics v.38, N.8, 1965;
31 III Semana Inverno Geofísica
32. Verificação da Lei de Moore
Dobra a cada 24 meses
Dobra a cada 18 meses
http://www.intel.com/technology/mooreslaw
32 III Semana Inverno Geofísica
33. Força Motriz da Lei de Moore
Tecnologia de Litografia constantemente
reduz tamanho de componentes em CI
G. Moore, palestra convidada ISSCC 2003 III Semana Inverno Geofísica
33
34. Até recentemente
Canalizar aumento no número de componentes para
aumentar a freqüência de operação gera CPUs
progressivamente mais rápidas
G. Moore, palestra convidada ISSCC 2003 III Semana Inverno Geofísica
34
35. Mas o ganho anual em
velocidade de um
processador é bem menor
que o ganho anual no
número de componentes,
pois há barreiras
35 III Semana Inverno Geofísica
36. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
36 III Semana Inverno Geofísica
37. Mas há barreiras: Memory Wall
•A velocidade de acesso à memória escala mais lentamente que a
velocidade da CPU, ao longo dos anos
•Acesso à memória torna-se o gargalo da eficiência
•Largura de banda (bandwidth) vem sendo acomodada (economia)
•Latência (latency) é a questão crucial
J. L. Gaudiot, palestra convidada SBAC 2006 III Semana Inverno Geofísica
37
38. Mas há barreiras: Power Wall
•Dissipação atingiu níveis intoleráveis
Figura: Fred Pollack, palestra convidada MICRO 1999
38 Borkar, “Design Challenges of Technology Scaling”, IEEE Micro, July 1999
S. III Semana Inverno Geofísica
39. Dissipação de Potência
Pentium e Dissipador, 2005
Pentium e Dissipador, 1995
www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005
39 III Semana Inverno Geofísica
40. Dissipação de Potência impede novo
aumento de frequência
www.tomshardware.com/2005/11/21/the_mother_of_all_cpu_charts_2005
40 III Semana Inverno Geofísica
41. Em síntese
Ida à memória limita aumento de velocidade
de programas, pois freqüência da
memória não escala proporcionalmente à
frequência da CPU e a latência menos
ainda (memory wall)
Dissipação térmica atinge nível absurdo
(power wall)
E há outras barreiras...
41 III Semana Inverno Geofísica
42. Paralelismo: Novos Motivos
Como usar maior número de componentes
para gerar máquinas mais rápidas?
Aumentar a freqüência não é mais possível.
Tendência clara:
Múltiplas CPUs de menor freqüência no
mesmo chip
42 III Semana Inverno Geofísica
44. Por enquanto, poucas CPUs por chip.
Forte tendência de muitas PUs no
mesmo chip, idênticas ou não,
44 com uma ou múltiplas threads Fonte: INTEL e AMD Semana Inverno Geofísica
III
45. Comparando ganhos anuais
Métrica Ganho Anual
Lei de Moore
1,58
(dobra a cada 18 meses)
HPL
1,89
(mínimos quadráticos)
Gordon Bell
1,86
(mínimos quadráticos)
• HPL melhor que Moore devido a paralelismo
• Transformar ganho de Moore em ganho de velocidade
requer paralelismo
45 III Semana Inverno Geofísica
46. Porque Paralelismo: Conclusão
Paralelismo (uso simultâneo de múltiplas
CPUs em um programa) é uma tecnologia
disponível que reduz a distância entre as
necessidades dos usuários e a velocidade
de uma única CPU
Mas também é a forma viável de converter
o aumento no número de componentes da
Lei de Moore em aumento da velocidade
de processamento
46 III Semana Inverno Geofísica
47. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
47 III Semana Inverno Geofísica
49. Taxonomia de Flynn
• Múltiplas arquiteturas paralelas propostas desde o início da
computação
• As tentativas anteriores de organizar as propostas em categorias
não capturavam a arquitetura
• Flynn propôs classificação que foi adotada por todos
– Discutível se cobre algumas propostas posteriores
• O conceito central foi classificar arquiteturas pelo número de fluxos
(stream) de dados e instruções simultâneos no computador:
– Quantos fluxos de instruções (um ou mais)
– Quantos fluxos de dados (um ou mais)
Michael J. Flynn, “Some Computer Organizations and
Their Effectiveness”, IEEE Transactions on
Computers Vol. C-21, n. 9, Sept 1972
49
50. Taxonomia de Flynn
• SISD:
– Single Instruction Stream Single Data Stream
• SIMD:
– Single Instruction Stream Multiple Data Streams
• MISD:
– Multiple Instruction Streams Single Data Stream
• MIMD:
– Multiple Instruction Streams Multiple Data Streams
50
51. SISD
• Arquiteturas convencionais (sequenciais)
Instruction Stream
Control
Control Processing Memory
Unit Data Stream
Signals
Element
51
52. Ex. SIMD: Array de Processadores
Control
Signals
• Control Unit envia a mesma instrução decodificada (sinais) para todas as
PEs
• Cada PE atua exclusivamente sobre sua memória
• A Control Unit obtém instruções de alguma memória (exclusiva ou não)
52
53. MISD
• Categoria considerada vazia pela comunidade
• Flynn cita antigas calculadoras
– Talvez IBM 602, onde usuário monta o circuito (a verificar...)
53
54. MIMD – Memória Central
• Múltiplos processadores endereçando a mesma memória
Instruction Stream
Control
Control Processing
Unit Data Stream
Element
...
Signals
Interconection
Memory
Network
Instruction Stream
Control
Control Processing
Unit Data Stream
Signals Element
• Sistema Operacional unificado (Single System Image)
54
55. MIMD – Memória Distribuída
• Cada processador endereça sua própria memória
Instruction Stream
Control
Processing Memory
Unit Control Data Stream
Element
... ...
Signals
Interconection
Network
Instruction Stream
Control
Processing Memory
Unit Control Data Stream
Signals Element
• Múltipos Sistemas Operacionais, tipicamente idênticos
55
56. Arquitetura de Computadores MIMD:
Memória Central
Memória
CPU CPU CPU CPU
Único sistema operacional
56
III Semana Inverno Geofísica
57. Arquitetura de Computadores MIMD:
Memória Distribuída
Memória Memória Memória Memória
CPU CPU CPU CPU
Múltiplas cópias do mesmo
sistema operacional
57
III Semana Inverno Geofísica
58. Arquitetura de Computadores MIMD:
Clusters
Memória Memória
CPU CPU CPU CPU CPU CPU CPU CPU
Múltiplas cópias do mesmo sistema
operacional entre nós;
Sistema operacional único em cada nó
58
III Semana Inverno Geofísica
59. Agenda
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
59
III Semana Inverno Geofísica
60. Modelos de
Computação Paralela
(para arquiteturas MIMD)
60
III Semana Inverno Geofísica
61. Classificação de Computações MIMD
• Onde a computação é realizada (arquitetura do
computador):
– Memória Central
– Memória Distribuída
• Como a computação é realizada (modelo de
computação):
– Modelo de Troca de Mensagens
– Modelo Fork-Join
– Há outros...
61
III Semana Inverno Geofísica
62. Nomenclatura Genérica
• Uma computação paralela é composta por entidades
(trechos de programa) que cooperam.
• Utilizarei tarefa para denominar cada uma dessas
entidades.
• Cada modelo de computação utiliza um nome particular
para designar a entidade (ex., processo, thread).
• Utilizarei tarefa como nome genérico.
62
III Semana Inverno Geofísica
63. Modelo de Troca de Mensagens
• Tarefas cooperam na execução de uma computação
• Cada tarefa tem o seu espaço de endereçamento
(memória) invisível a outras tarefas
• Se necessário, tarefas trocam dados por meio de
mensagens
– Memória de uma tarefa é copiada para outra tarefa
– A troca de mensagens gera sincronismo (portanto,
dependência) entre as tarefas
63
III Semana Inverno Geofísica
64. Modelo Fork-Join
• Tarefas cooperam na execução de uma computação
• Todas as tarefas tem o mesmo espaço de
endereçamento
– Memória de uma tarefa é visível (e alterável) por outras tarefas
• Se necessário, tarefas trocam dados lendo e alterando
memória “alheia” (comum, na realidade)
– Potencial conflito de acesso (escrita - leitura ou escrita - escrita)
em uma posição de memória, denominado condição de corrida
(condição de corrida)
– A troca de dados requer sincronismo (portanto, dependência)
entre as tarefas
64
III Semana Inverno Geofísica
65. Arquitetura de Computadores MIMD
x
Modelos de Computação MIMD
• Tipicamente, Fork-Join é executado em máquinas MIMD
de memória central
– Mesmo espaço de endereçamento
• Troca de Mensagens é executada em máquinas MIMD
de memória central ou de memória distribuída
– Existem implementações triviais de espaços de endereçamento
distintos nos dois casos
65
III Semana Inverno Geofísica
66. Modelo Fork-Join de Paralelismo
• Um processo cria outro processo (filho) utilizando fork;
• Pai e filho tem o mesmo espaço de endereçamento;
• Pai aguarda término do filho invocando join;
• Como a criação e a destruição de processos é custosa,
este modelo utiliza threads (processos leves) e não
processos
66
III Semana Inverno Geofísica
67. Processos
e
Threads
Fontes:
Silberschatz, Galvin, Gagne: Operating System Concepts, John Willey, 2005
67 Tanenbaum, Modern Operating Systems, Pearson, 2008 III Semana Inverno Geofísica
68. Processos
• Processo é um programa em execução
• Unidade de trabalho do sistema operacional (SO)
– SO multiplexa (no tempo) a execução dos processos na(s)
CPU(s) sob seu controle
– O próprio SO é um conjunto de processos privilegiados
– Processos são representados e manipulados no SO por
estrutura de dados específica
• Cada processo possui um espaço de endereçamento
próprio
68
III Semana Inverno Geofísica
69. Espaço de Endereçamento de um
Processo (Memória)
max
heap
variáveis alocadas
dinamicamente
por
procedimentos
variáveis globais e
procedimentos em variáveis estáticas
execução e stack alocadas pelo
variáveis locais
dos data compilador
procedimentos
text instruções
0
69
III Semana Inverno Geofísica
70. Threads
• Thread (fio de execução) é um processo leve
– Criar threads é muito mais rápido do que criar processos
• Cada thread é composta por uma pilha e um conjunto de
registradores
– Herda do processo que a criou os demais atributos
• Threads criadas por um processo compartilham o
mesmo espaço de endereçamento
– Logo, compartilham text, data, heap
• Conceitualmente, um processo contém pelo menos uma
thread
– Não necessariamente implementada dessa forma
70
III Semana Inverno Geofísica
71. Espaço de Endereçamento de
Threads
max
heap
registradores thread 2 stack thread 2
registradores thread 1 stack thread 1
data
text
0
71
III Semana Inverno Geofísica
72. PTHREADS
• O padrão POSIX para threads é PTHREADS
– IEEE 1003.1c-1995
• Caracterísiticas de PTHREADS:
1. Fundamentalmente, uma thread é o conjunto de registradores
e uma stack, herdando demais atributos do processo que a
criou;
2. Threads são criadas por invocação da primitiva pthread_create
3. A criação de uma thread gera a execução de um método
(argumento de pthread_create) nos registradores e stack
recém criados
4. pthread_criate retorna imediatamente após a criação; as
threads pai e filho executam concorrentemente, disputando os
processadores existentes
5. O processo que cria threads aguarda o término da execução
de cada thread criada invocando pthread_join
72
III Semana Inverno Geofísica
73. Sumário
• Definição de Paralelismo
• Métricas de Desempenho Paralelo
• Lei de Amdahl
• Necessidade e Utilidade de Paralelismo
• Lei de Moore
• Memory Wall, Power Wall
• Classificação de Computadores Paralelos
• Modelos de Computação Paralela
73 III Semana Inverno Geofísica