Organizac¸ ˜ao de Computadores – 2005/2006
Processamento Paralelo
Paulo Ferreira
paf a
dei.isep.ipp.pt
Maio de 2006
Introduc¸ ˜ao 2 Porqu ˆe? . . . 3Definic¸ ˜ao de computac¸ ˜ao paralela . . . 4
Alocac¸ ˜ao de recursos . . . 5
Acesso aos dados, comunicac¸ ˜ao e sincronizac¸ ˜ao . . . 6
Performance e escalabilidade . . . 7
Hoje em dia . . . 8
Hist ´oria . . . 9
Hist ´oria . . . 10
Taxonomia 11 Mem ´oria partilhada . . . 12
Hardware de comunicac¸ ˜oes . . . 13
Mem ´oria partilhada . . . 14
Exemplo de Hardware . . . 15
Mem ´oria partilhada . . . 16
Exemplo de Hardware . . . 17
Escalabilidade . . . 18
Mem ´oria partilhada n ˜ao uniforme . . . 19
Interligac¸ ˜ao . . . 20 Message Passing . . . 21 Message passing . . . 22 Paralelismo de dados . . . 23 Exemplo de hardware . . . 24 Dataflow . . . 25 Exemplo de hardware . . . 26
Arquitecturas sist ´olicas . . . 27
Exemplo de hardware . . . 28
Resumo (mem ´oria partilhada) . . . 29
Resumo (outros) . . . 30
Detalhes 31 Problemas fundamentais . . . 32
Modelo de programac¸ ˜ao sequencial . . . 33
Performance (programac¸ ˜ao sequencial) . . . 34
Modelo de mem ´oria partilhada . . . 35
Sincronizac¸ ˜ao. . . 36
Message Passing . . . 37
Naming e Operac¸ ˜oes . . . 38
Exemplo . . . 39
Ordenac¸ ˜ao . . . 41
Replicac¸ ˜ao . . . 42
Comunicac¸ ˜ao . . . 43
Redes de interconex ˜ao . . . 44
Paralelizac¸ ˜ao 45 Lei de Amdahl . . . 46 Decomposic¸ ˜ao . . . 47 Atribuic¸ ˜ao . . . 48 Orquestrac¸ ˜ao . . . 49 Mapeamento . . . 50
Introduc¸ ˜ao
slide 2
Porqu ˆe?
Uma forma de conseguir mais performance.
≪–Se um boi lavra um campo, porque n ˜ao 40 galinhas?≫
≪–Porque n ˜ao 40 bois, mais depressa?≫
ORGC Processamento Paralelo – slide 3
Definic¸ ˜ao de computac¸ ˜ao paralela
Um conjunto de elementos de processamento que cooperam para resolver problemas grandes de uma forma r ´apida.
E que problemas temos de resolver?
ORGC Processamento Paralelo – slide 4
Alocac¸ ˜ao de recursos
Qual o n ´umero de elementos?
Qual a performance dos elementos?
Quantidade de mem ´oria?
ORGC Processamento Paralelo – slide 5
Acesso aos dados, comunicac¸ ˜ao e sincronizac¸ ˜ao
Como ´e que os elementos cooperam e comunicam?
Como ´e que os dados s ˜ao transmitidos entre processadores?
Que primitivas e abstrac¸ ˜oes existem para a cooperac¸ ˜ao?
ORGC Processamento Paralelo – slide 6
Performance e escalabilidade
Como ´e que isto se traduz em termos de performance?
E em termos de escalabilidade?
Escalabilidade quer dizer aumento de performance com o aumento do node elementos.
ORGC Processamento Paralelo – slide 7
Hoje em dia
Microprocessadores de elevada performance
Microprocessadores mais baratos
Paralelismo ao n´ıvel da instruc¸ ˜ao j ´a existe.
Passo seguinte: Computac¸ ˜ao paralela
Hist ´
oria
Processadores de 4, 8, 16, 32, 64 bits
Uma unidade de execuc¸ ˜ao, v ´arias unidades de execuc¸ ˜ao
Passo seguinte?
V ´arios processadores?
V ´arios processos por processador?
VLIW?
J ´a h ´a:
Hyperthreading (Intel)
Dual Core (Intel+AMD)
8 Cores * 4 threads (Sun Ultra Sparc T1)
ORGC Processamento Paralelo – slide 9
Hist ´
oria
Modelos divergentes
Modelo de programac¸ ˜ao = Primitivas de comunicac¸ ˜ao = o que existia no hardware
Hoje em dia j ´a h ´a mais flexibilidade
ORGC Processamento Paralelo – slide 10
Taxonomia
slide 11
Mem ´
oria partilhada
Mais simples
V ´arios processadores partilham a mesma mem ´oria
Parecido com o time-sharing nos S.O. multitarefa
Extens ˜ao dos modelos de programac¸ ˜ao multitarefa (processos
⇒
processadores)Arquitectura menos estranha relativamente ao normal
Cuidado: Acesso `a mem ´oria uniforme ou n ˜ao?
Hardware de comunicac¸ ˜
oes
I/O ctrl M em M e m M em Interconne ct M e m I/O ctrl Processor Processor In terconn ect I/O devicesORGC Processamento Paralelo – slide 13
Mem ´
oria partilhada
Estilo mainframe
Uso de um crossbar
Switch que permite a ligac¸ ˜ao simult ˆanea entre
p
processadores em
mem ´oriasVantagens: Performance
Desvantagens: Custo
ORGC Processamento Paralelo – slide 14
Exemplo de Hardware
P P C C I / O I / O M M M MMem ´
oria partilhada
(estilo PC)
Partilha de um bus de acesso a mem ´oria por todos os processadores
SMP – Simmetric MultiProcessing
Vantagens: Custo
Desvantagens: Performance
A largura de banda do barramento ´e partilhada por todos os processadores.
Caches: problema da coer ˆencia?
ORGC Processamento Paralelo – slide 16
Exemplo de Hardware
ORGC Processamento Paralelo – slide 17
Escalabilidade
M M M ° ° ° ° ° ° M ° ° ° M M N etw ork N e tw ork P $ P $ P $ P $ P $ P $ “ D a n c e h a ll” D is t r ib u t e d m e m o ryMem ´
oria partilhada n ˜ao uniforme
NUMA – Non Uniform Memory Access
Cada processador tem a sua mem ´oria
Todos os processadores acedem `a mem ´oria dos outros, pela interligac¸ ˜ao
ORGC Processamento Paralelo – slide 19
Interligac¸ ˜ao
Em bus?
Em rede?
Em switch
Coisas novas – Hypertransport
ORGC Processamento Paralelo – slide 20
Message Passing
0 00 0 0 1 0 10 0 1 1 10 0 1 10 10 1 1 1 1ORGC Processamento Paralelo – slide 21
Message passing
Entre os processadores circulam mensagens
Originalmente implementac¸ ˜ao em hardware
Mais flex´ıvel em software
Muitos overheads
Programac¸ ˜ao simples
Paralelismo de dados
SIMD – Single Instruction Multiple Data processamento de vectores e matrizes
As operac¸ ˜oes s ˜ao feitas em paralelo em cada elemento da estrutura de dados.
Existe apenas uma instruc¸ ˜ao para todos os processadores
Um processador por elemento da estrutura de dados
Processador:
⇒
recebe instruc¸ ˜ao, executa instruc¸ ˜aoProcessador de controle:
⇒
l ˆe programa e envia instruc¸ ˜oes para os outrosORGC Processamento Paralelo – slide 23
Exemplo de hardware
P E P E P E ° ° ° P E P E P E ° ° ° P E P E P E ° ° ° ° ° ° ° ° ° ° ° ° C o n tro l p ro c e s s o rORGC Processamento Paralelo – slide 24
Dataflow
Implementar em hardware as express ˜oes matem ´aticas
Cada operac¸ ˜ao ´e implementada num n ´o.
Cada n ´o recebe os operandos e envia o resultado
Exemplo de hardware
1 b a + − × × × c e d f D a ta flow gr ap h f = a × d N et w ork Tok en st or e W aitin g M atchin g I nst ru cti o n f etch Ex ec u te Tok en q u e u e F orm t o k en N et w ork N et w ork Progr a m st or e a = ( b + 1) × ( b − c ) d = c × eORGC Processamento Paralelo – slide 26
Arquitecturas sist ´
olicas
Pipeline de elementos de processamento
Diferente de dataflow porque cada elemento tem (pode ter) programa local, e mem ´oria local
Motivac¸ ˜ao inicial: VLSI permite chips de baixo custo
Ligar diferentes chips para fazer um algoritmo
Poupar na largura de banda do acesso `a mem ´oria
ORGC Processamento Paralelo – slide 27
Exemplo de hardware
M P E M P E P E P EResumo (mem ´
oria partilhada)
UMA (mesma mem ´oria para todos)
Bus (aka SMP) – PCs
Rede
Crossbar – Mainframes
NUMA (cada processador tem uma mem ´oria mais sua)
Interligac¸ ˜ao pode ser de v ´arios tipos
ORGC Processamento Paralelo – slide 29
Resumo (outros)
Paralelismo de dados
extens ˜oes SIMD dos processadores actuais
Message passing
entre computadores diferentes ´e o mais f ´acil
DataFlow e arquitecturas sist ´olicas
Naming: como se acedem aos dados?
s ´o se estivermos a fazer hardware
ORGC Processamento Paralelo – slide 30
Detalhes
slide 31
Problemas fundamentais
Naming: como se referenciam os dados partilhados
Operac¸ ˜oes: que operac¸ ˜oes s ˜ao permitidas nesses dados
Ordenamento: como s ˜ao coordenados e ordenados os acessos
Replicac¸ ˜ao: como os dados s ˜ao (ou n ˜ao) copiados
Custo das comunicac¸ ˜oes: Lat ˆencia, largura de banda, overhead, ocupac¸ ˜ao do canal
ORGC Processamento Paralelo – slide 32
Modelo de programac¸ ˜ao sequencial
Naming: Espac¸o de enderec¸os virtual
Hardware (e compiladores) fazem traduc¸ ˜ao
Operac¸ ˜oes: Leituras e escritas
Ordenamento: Ordem sequencial do programa
Performance (programac¸ ˜ao sequencial)
Depend ˆencias baseadas em refer ˆencias feitas a vari ´aveis.
Compiladores e hardware desrespeitam as ordens
Compilador: reordenamento e alocac¸ ˜ao de registos
Hardware: execuc¸ ˜ao fora de ordem
Caches: replicac¸ ˜ao transparente
ORGC Processamento Paralelo – slide 34
Modelo de mem ´
oria partilhada
Naming: Qualquer processo usa a mem ´oria
Operac¸ ˜oes: R/W mais as necess ´arias para ordenac¸ ˜ao
Modelo mais simples de Ordenac¸ ˜ao:
Dentro de um processo: ordem sequencial
Entre processos: concorr ˆencia
Podemos ter sincronizac¸ ˜ao
Compiladores e hardware n ˜ao cumprem as ordens
ORGC Processamento Paralelo – slide 35
Sincronizac¸ ˜ao
Exclus ˜ao M ´utua
Locks
Assegurar que certas operac¸ ˜oes em certos dados s ˜ao feitas apenas por um processo de cada vez
N ˜ao d ´a garantias nenhumas de ordenac¸ ˜ao
Sincronizac¸ ˜ao de eventos
Ordenar os eventos para salvaguardar depend ˆencias
ex: produtor
⇒
consumidor3 tipos principais
ponto a ponto global grupo
Message Passing
Naming: Apenas dos dados privados (n ˜ao existem dados partilhados)
Operac¸ ˜oes: send e receive
send : dados privados s ˜ao copiados para outro processo
receive: dados do processo s ˜ao copiados para mem ´oria
Temos obrigatoriamente nomes para os processos
Ordenac¸ ˜ao:
Ordem normal dentro de um processo
send e receive podem fazer sincronismo ponto a ponto
Exclus ˜ao m ´utua garantida
Podemos construir enderec¸os globais
Process Id + enderec¸o dentro do processo
Mas n ˜ao teremos operac¸ ˜oes directas nesses enderec¸os
ORGC Processamento Paralelo – slide 37
Naming e Operac¸ ˜
oes
Existindo no modelo de programac¸ ˜ao podem ser suportadas:
Directamente pelo hardware
Pelo sistema operativo
Por bibliotecas
Pelo compilador
ORGC Processamento Paralelo – slide 38
Exemplo
Mem ´oria partilhada no modelo de programac¸ ˜ao
Hardware tem mem ´oria f´ısicamente partilhada
Suporte directo pelo hardware
Hardware tem mem ´orias independentes
Mem ´oria partilhada pode ser feita pelo sistema operativo Pode ser feita pelo compilador/bibliotecas
Exemplo
Message passing
Suporte directo pelo hardware
mais flex´ıvel com matching e buffering
Suporte pelo S.O. ou acima
Hardware faz o transporte
Send/Receive em SW (protecc¸ ˜ao,buffering) S.O.: custo das chamadas ao S.O.
ORGC Processamento Paralelo – slide 40
Ordenac¸ ˜ao
Message Passing
N ˜ao existe nenhuma ordenac¸ ˜ao exceptuando aquela que ´e imposta pelos pares send/receive
Mem ´oria partilhada
Importante e subtil
Uniprocessadores fazem reordenac¸ ˜ao para ganhar paralelismo ou localidade
Estes truques s ˜ao mais importantes em multiprocessadores
Quais s ˜ao os truques que continuam a ser v ´alidos?
Quais s ˜ao os novos truques?
ORGC Processamento Paralelo – slide 41
Replicac¸ ˜ao
Importante para reduzir transfer ˆencia de dados/comunicac¸ ˜ao
Depende do modelo de naming
Uniprocessador: autom ´atica
Message passing: a replicac¸ ˜ao tem de estar expl´ıcita no SW
Mem ´oria partilhada: problema da coer ˆencia das caches
Comunicac¸ ˜ao
Performance determina o uso das operac¸ ˜oes
Tr ˆes caracter´ısticas fundamentais:
Lat ˆencia: tempo necess ´ario para o in´ıcio
Largura de Banda: Velocidade de transfer ˆencia
Custo: Tempo de CPU necess ´ario
Erros normais:
N ˜ao contar com a lat ˆencia
N ˜ao contar com a possibilidade de overlap
ORGC Processamento Paralelo – slide 43
Redes de interconex ˜ao
Cada vez mais importantes:
Entre computadores
Entre chips (Interconnection Networks)
Intra chips
ORGC Processamento Paralelo – slide 44
Paralelizac¸ ˜ao
slide 45
Lei de Amdahl
Um programa tem uma percentagem do seu tempo total de execuc¸ ˜ao s ´erie
S
e o resto do tempo de execuc¸ ˜ao ´e paraleliz ´avelP
.Se o total do tempo de programa ´e
100%
ent ˜ao o tempo total ´e igual a 1, o que implica que1 = P + S
ou de outra formaP
= 1 − S
.Temos assim que o tempo normal de execuc¸ ˜ao ser ´a igual a
S
+ (1 − S)
.Se pusermos
N
processadores a trabalhar na parte paralela e o tempo de execuc¸ ˜ao da parte paralela diminuir de uma forma ideal o tempo de execuc¸ ˜ao ser ´a igual aS
+
(1−S)N .Se
N
for infinito, ent ˜ao o tempo de execuc¸ ˜ao ser ´a apenas deS
.Logo o aumento de performance que teremos ser ´a o inverso dos tempos ou(S+(1−S))S o que d ´a S1, isto supondo que a paralelizac¸ ˜ao ´e perfeita.
ORGC Processamento Paralelo – slide 46
Decomposic¸ ˜ao
A partir de um programa sequencial gerar tarefas
O que ´e uma tarefa: parte do trabalho global que ´e processada sequencialmente.
Atribuic¸ ˜ao
Atribuir (distribuir) tarefas pelos processos.
O que ´e um processo: entidade que executa as tarefas, tem a obrigac¸ ˜ao de comunicar com os outros processos para executar as tarefas.
Atribuic¸ ˜ao est ´atica ou din ˆamica? Vantagens e desvantagens?
Se for din ˆamica temos uma fila de tarefas global ou uma fila por processo? Vantagens e desvantagens?
ORGC Processamento Paralelo – slide 48
Orquestrac¸ ˜ao
Objectivo: estruturar a comunicac¸ ˜ao e o acesso aos dados.
Que comunicac ˜ao vai haver entre que processos?
Reduzir os custos da comunicac¸ ˜ao.
Escalonar as tarefas correctamente.
Depende muito das primitivas oferecidas e do tipo de comunicac¸ ˜ao.
Depende de onde (em que processo) pomos os dados.
ORGC Processamento Paralelo – slide 49
Mapeamento
Atribuir processos aos processadores.
Mais simples e usual: cada processo tem o seu processador.
Normalmente o utilizador pode especificar a sua intenc¸ ˜ao mas o sistema operativo pode decidir de outra maneira.