• Nenhum resultado encontrado

Organização de Computadores 2005/2006 Processamento Paralelo

N/A
N/A
Protected

Academic year: 2021

Share "Organização de Computadores 2005/2006 Processamento Paralelo"

Copied!
15
0
0

Texto

(1)

Organizac¸ ˜ao de Computadores – 2005/2006

Processamento Paralelo

Paulo Ferreira

paf a

dei.isep.ipp.pt

Maio de 2006

Introduc¸ ˜ao 2 Porqu ˆe? . . . 3

Definic¸ ˜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

(2)

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

(3)

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

(4)

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?

(5)

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 devices

ORGC Processamento Paralelo – slide 13

Mem ´

oria partilhada

 Estilo mainframe

 Uso de um crossbar

 Switch que permite a ligac¸ ˜ao simult ˆanea entre

p

processadores e

m

mem ´orias

 Vantagens: Performance

 Desvantagens: Custo

ORGC Processamento Paralelo – slide 14

Exemplo de Hardware

P P C C I / O I / O M M M M

(6)

Mem ´

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 ry

(7)

Mem ´

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 1

ORGC 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

(8)

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¸ ˜ao

 Processador de controle:

l ˆe programa e envia instruc¸ ˜oes para os outros

ORGC 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 r

ORGC 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

(9)

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 × e

ORGC 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 E

(10)

Resumo (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

(11)

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

consumidor

 3 tipos principais

 ponto a ponto  global  grupo

(12)

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

(13)

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

(14)

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 ´avel

P

.

 Se o total do tempo de programa ´e

100%

ent ˜ao o tempo total ´e igual a 1, o que implica que

1 = P + S

ou de outra forma

P

= 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 a

S

+

(1−S)N .

 Se

N

for infinito, ent ˜ao o tempo de execuc¸ ˜ao ser ´a apenas de

S

.

 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.

(15)

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.

Referências

Documentos relacionados

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

 A história fala sobre um homem chamado Cosme Fernandes, que estudava para ser padre, porém, não contava em se apaixonar por Lianor, uma jovem de 22 anos de

Testes com os inseticidas pirimifós metílico e cipermetrina aplicados em combinação com os sinergistas na população de São José do Rio Preto-SP, mostraram que no tratamento

Graças ao apoio do diretor da Faculdade, da Rede de Museus e em especial da Pro Reitoria de Extensão, o CEMEMOR tem ampliado e mantido suas atividades junto

De acordo com estes resultados, e dada a reduzida explicitação, e exploração, das relações que se estabelecem entre a ciência, a tecnologia, a sociedade e o ambiente, conclui-se

A maneira expositiva das manifestações patológicas evidencia a formação de fissuras devido a movimentação térmica das paredes, Figura 9, que não foram dimensionadas com

Aplicado um método de pesquisa de estudo de caso, onde serão utilizados dados, coletados a partir de como transportar a Cerâmica, será analisada o modo de

Espécies antes apenas registradas para águas rasas (até 20m de profundidade) agora são registradas para profundidades de até 250 metros, como é o caso de uma das