GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC...

52
GoBack

Transcript of GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC...

Page 1: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

GoBack

Page 2: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

ORGC Processamento Paralelo – slide 1

Organizac ao de Computadores – 2005/2006Processamento Paralelo

Paulo Ferreirapaf a©dei.isep.ipp.pt

Maio de 2006

Page 3: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Introduc ao

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 2

Page 4: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Porqu e?

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 3

� Uma forma de conseguir mais performance.

� ≪–Se um boi lavra um campo, porque nao 40 galinhas?≫

� ≪–Porque nao 40 bois, mais depressa?≫

Page 5: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Definic ao de computac ao paralela

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 4

� Um conjunto de elementos de processamento que cooperam para resolverproblemas grandes de uma forma rapida.

� E que problemas temos de resolver?

Page 6: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Alocac ao de recursos

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 5

� Qual o numero de elementos?

� Qual a performance dos elementos?

� Quantidade de memoria?

Page 7: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Acesso aos dados, comunicac ao e sincronizac ao

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 6

� Como e que os elementos cooperam e comunicam?

� Como e que os dados sao transmitidos entre processadores?

� Que primitivas e abstracoes existem para a cooperacao?

Page 8: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Performance e escalabilidade

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 7

� 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 no deelementos.

Page 9: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Hoje em dia

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 8

� Microprocessadores de elevada performance

� Microprocessadores mais baratos

� Paralelismo ao nıvel da instrucao ja existe.

� Passo seguinte: Computacao paralela

Page 10: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Hist oria

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 9

� Processadores de 4, 8, 16, 32, 64 bits

� Uma unidade de execucao, varias unidades de execucao

� Passo seguinte?

� Varios processadores?

� Varios processos por processador?

� VLIW?

Page 11: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Hist oria

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 9

� Processadores de 4, 8, 16, 32, 64 bits

� Uma unidade de execucao, varias unidades de execucao

� Passo seguinte?

� Varios processadores?

� Varios processos por processador?

� VLIW?

� Ja ha:

� Hyperthreading (Intel)

� Dual Core (Intel+AMD)

� 8 Cores * 4 threads (Sun Ultra Sparc T1)

Page 12: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Hist oria

Introducao

Porque?

Definicao de computacaoparalela

Alocacao de recursos

Acesso aos dados,comunicacao e sincronizacao

Performance e escalabilidade

Hoje em dia

Historia

Historia

Taxonomia

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 10

� Modelos divergentes

� Modelo de programacao = Primitivas de comunicacao = o que existia no hardware

� Hoje em dia ja ha mais flexibilidade

Page 13: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Taxonomia

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 11

Page 14: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Memoria partilhada

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 12

� Mais simples

� Varios processadores partilham a mesma memoria

� Parecido com o time-sharing nos S.O. multitarefa

� Extensao dos modelos de programacao multitarefa (processos⇒processadores)

� Arquitectura menos estranha relativamente ao normal

� Cuidado: Acesso a memoria uniforme ou nao?

Page 15: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Hardware de comunicac oes

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 13

I / Oc tr lMe m Me m Me mIn te r c on n e c t

M e m I / Oc t r l

P r oc e s s o r P r oc e s s o rIn te r c on n e c tI / Ode v ic e s

Page 16: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Memoria partilhada

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 14

� Estilo mainframe

� Uso de um crossbar

� Switch que permite a ligacao simultanea entre p processadores e m memorias

� Vantagens: Performance

� Desvantagens: Custo

Page 17: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo de Hardware

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 15

Page 18: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Memoria partilhada

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 16

� (estilo PC)

� Partilha de um bus de acesso a memoria 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 coerencia?

Page 19: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo de Hardware

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 17

Page 20: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Escalabilidade

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 18

Page 21: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Memoria partilhada n ao uniforme

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 19

� NUMA – Non Uniform Memory Access

� Cada processador tem a sua memoria

� Todos os processadores acedem a memoria dos outros, pela interligacao

Page 22: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Interligac ao

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 20

� Em bus?

� Em rede?

� Em switch

� Coisas novas – Hypertransport

Page 23: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Message Passing

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 21

0 0 00 0 1

01 001 1

1 0 01 1 0

1 0 11 1 1

Page 24: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Message passing

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 22

� Entre os processadores circulam mensagens

� Originalmente implementacao em hardware

� Mais flexıvel em software

� Muitos overheads

� Programacao simples

Page 25: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Paralelismo de dados

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 23

� SIMD – Single Instruction Multiple Data processamento de vectores e matrizes

� As operacoes sao feitas em paralelo em cada elemento da estrutura de dados.

� Existe apenas uma instrucao para todos os processadores

� Um processador por elemento da estrutura de dados

� Processador: ⇒ recebe instrucao, executa instrucao

� Processador de controle: ⇒ le programa e envia instrucoes para os outros

Page 26: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo de hardware

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 24

Page 27: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Dataflow

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 25

� Implementar em hardware as expressoes matematicas

� Cada operacao e implementada num no.

� Cada no recebe os operandos e envia o resultado

Page 28: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo de hardware

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 26

1 ba

+ − ×× ×c e

df

D a t a f lo w g r a p hf= a × d

N e t wo r k

To k e ns to r eW a i t i n gM a t c h i n g I n s t r u c t io nf e t c h Ex e c u t eTo k e n q u e u e Fo r mto k e n N e t wo r kN e t wo r k

P ro g r a ms to r e

a= ( b + 1 ) × ( b − c )d = c × e

Page 29: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Arquitecturas sist olicas

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 27

� Pipeline de elementos de processamento

� Diferente de dataflow porque cada elemento tem (pode ter) programa local, ememoria local

� Motivacao inicial: VLSI permite chips de baixo custo

� Ligar diferentes chips para fazer um algoritmo

� Poupar na largura de banda do acesso a memoria

Page 30: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo de hardware

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 28

Page 31: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Resumo (mem oria partilhada)

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 29

� UMA (mesma memoria para todos)

� Bus (aka SMP) – PCs

� Rede

� Crossbar – Mainframes

� NUMA (cada processador tem uma memoria mais sua)

� Interligacao pode ser de varios tipos

Page 32: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Resumo (outros)

Introducao

Taxonomia

Memoria partilhada

Hardware de comunicacoes

Memoria partilhada

Exemplo de Hardware

Memoria partilhada

Exemplo de Hardware

Escalabilidade

Memoria partilhada naouniforme

Interligacao

Message Passing

Message passing

Paralelismo de dados

Exemplo de hardware

Dataflow

Exemplo de hardware

Arquitecturas sistolicas

Exemplo de hardware

Resumo (memoria partilhada)

Resumo (outros)

Detalhes

Paralelizacao

ORGC Processamento Paralelo – slide 30

� Paralelismo de dados

� extensoes SIMD dos processadores actuais

� Message passing

� entre computadores diferentes e o mais facil

� DataFlow e arquitecturas sistolicas

� Naming: como se acedem aos dados?

� so se estivermos a fazer hardware

Page 33: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Detalhes

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 31

Page 34: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Problemas fundamentais

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 32

� Naming: como se referenciam os dados partilhados

� Operacoes: que operacoes sao permitidas nesses dados

� Ordenamento: como sao coordenados e ordenados os acessos

� Replicacao: como os dados sao (ou nao) copiados

� Custo das comunicacoes: Latencia, largura de banda, overhead, ocupacao docanal

Page 35: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Modelo de programac ao sequencial

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 33

� Naming: Espaco de enderecos virtual

� Hardware (e compiladores) fazem traducao

� Operacoes: Leituras e escritas

� Ordenamento: Ordem sequencial do programa

Page 36: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Performance (programac ao sequencial)

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 34

� Dependencias baseadas em referencias feitas a variaveis.

� Compiladores e hardware desrespeitam as ordens

� Compilador: reordenamento e alocacao de registos

� Hardware: execucao fora de ordem

� Caches: replicacao transparente

Page 37: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Modelo de mem oria partilhada

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 35

� Naming: Qualquer processo usa a memoria

� Operacoes: R/W mais as necessarias para ordenacao

� Modelo mais simples de Ordenacao:

� Dentro de um processo: ordem sequencial

� Entre processos: concorrencia

� Podemos ter sincronizacao

� Compiladores e hardware nao cumprem as ordens

Page 38: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Sincronizac ao

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 36

� Exclusao Mutua

� Locks

� Assegurar que certas operacoes em certos dados sao feitas apenas por umprocesso de cada vez

� Nao da garantias nenhumas de ordenacao

� Sincronizacao de eventos

� Ordenar os eventos para salvaguardar dependencias

� ex: produtor ⇒ consumidor

� 3 tipos principais

� ponto a ponto

� global

� grupo

Page 39: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Message Passing

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 37

� Naming: Apenas dos dados privados (nao existem dados partilhados)

� Operacoes: send e receive

� send : dados privados sao copiados para outro processo

� receive: dados do processo sao copiados para memoria

� Temos obrigatoriamente nomes para os processos

� Ordenacao:

� Ordem normal dentro de um processo

� send e receive podem fazer sincronismo ponto a ponto

� Exclusao mutua garantida

� Podemos construir enderecos globais

� Process Id + endereco dentro do processo

� Mas nao teremos operacoes directas nesses enderecos

Page 40: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Naming e Operac oes

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 38

� Existindo no modelo de programacao podem ser suportadas:

� Directamente pelo hardware

� Pelo sistema operativo

� Por bibliotecas

� Pelo compilador

Page 41: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 39

� Memoria partilhada no modelo de programacao

� Hardware tem memoria fısicamente partilhada

� Suporte directo pelo hardware

� Hardware tem memorias independentes

� Memoria partilhada pode ser feita pelo sistema operativo

� Pode ser feita pelo compilador/bibliotecas

Page 42: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Exemplo

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 40

� 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 (proteccao,buffering)

� S.O.: custo das chamadas ao S.O.

Page 43: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Ordenac ao

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 41

� Message Passing

� Nao existe nenhuma ordenacao exceptuando aquela que e imposta pelospares send/receive

� Memoria partilhada

� Importante e subtil

� Uniprocessadores fazem reordenacao para ganhar paralelismo ou localidade

� Estes truques sao mais importantes em multiprocessadores

� Quais sao os truques que continuam a ser validos?

� Quais sao os novos truques?

Page 44: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Replicac ao

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 42

� Importante para reduzir transferencia de dados/comunicacao

� Depende do modelo de naming

� Uniprocessador: automatica

� Message passing: a replicacao tem de estar explıcita no SW

� Memoria partilhada: problema da coerencia das caches

Page 45: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Comunicac ao

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 43

� Performance determina o uso das operacoes

� Tres caracterısticas fundamentais:

� Latencia: tempo necessario para o inıcio

� Largura de Banda: Velocidade de transferencia

� Custo: Tempo de CPU necessario

� Erros normais:

� Nao contar com a latencia

� Nao contar com a possibilidade de overlap

Page 46: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Redes de interconex ao

Introducao

Taxonomia

Detalhes

Problemas fundamentais

Modelo de programacaosequencial

Performance (programacaosequencial)

Modelo de memoriapartilhada

Sincronizacao

Message Passing

Naming e Operacoes

Exemplo

Exemplo

Ordenacao

Replicacao

Comunicacao

Redes de interconexao

Paralelizacao

ORGC Processamento Paralelo – slide 44

� Cada vez mais importantes:

� Entre computadores

� Entre chips (Interconnection Networks)

� Intra chips

Page 47: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Paralelizac ao

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 45

Page 48: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Lei de Amdahl

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 46

� Um programa tem uma percentagem do seu tempo total de execucao serie S e oresto do tempo de execucao e paralelizavel P .

� Se o total do tempo de programa e 100% entao o tempo total e igual a 1, o queimplica que 1 = P + S ou de outra forma P = 1 − S.

� Temos assim que o tempo normal de execucao sera igual a S + (1 − S).

� Se pusermos N processadores a trabalhar na parte paralela e o tempo deexecucao da parte paralela diminuir de uma forma ideal o tempo de execucao seraigual a S + (1−S)

N.

� Se N for infinito, entao o tempo de execucao sera apenas de S.

� Logo o aumento de performance que teremos sera o inverso dos tempos ou(S+(1−S))

So que da 1

S, isto supondo que a paralelizacao e perfeita.

Page 49: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Decomposic ao

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 47

� A partir de um programa sequencial gerar tarefas

� O que e uma tarefa: parte do trabalho global que e processada sequencialmente.

� Muitas ou poucas tarefas?

Page 50: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Atribuic ao

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 48

� Atribuir (distribuir) tarefas pelos processos.

� O que e um processo: entidade que executa as tarefas, tem a obrigacao decomunicar com os outros processos para executar as tarefas.

� Atribuicao estatica ou dinamica? Vantagens e desvantagens?

� Se for dinamica temos uma fila de tarefas global ou uma fila por processo?Vantagens e desvantagens?

Page 51: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Orquestrac ao

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 49

� Objectivo: estruturar a comunicacao e o acesso aos dados.

� Que comunicacao vai haver entre que processos?

� Reduzir os custos da comunicacao.

� Escalonar as tarefas correctamente.

� Depende muito das primitivas oferecidas e do tipo de comunicacao.

� Depende de onde (em que processo) pomos os dados.

Page 52: GoBack - Departamento de Engenharia Informáticapaf/orgcdocs/ProcParalelo-slides.pdf · ORGC Processamento Paralelo – slide 9 Processadores de 4, 8, 16, 32, 64 bits Uma unidade

Mapeamento

Introducao

Taxonomia

Detalhes

Paralelizacao

Lei de Amdahl

Decomposicao

Atribuicao

Orquestracao

Mapeamento

ORGC Processamento Paralelo – slide 50

� Atribuir processos aos processadores.

� Mais simples e usual: cada processo tem o seu processador.

� Normalmente o utilizador pode especificar a sua intencao mas o sistema operativopode decidir de outra maneira.