Programação Paralela e Concorrente

Texto

(1)

Programa¸c˜ ao Paralela e Concorrente

Linguagens para Programa¸ c˜ ao Paralela — PGAS

Noemi Rodriguez

2016

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(2)

Linguagens de Programa¸c˜ ao Paralelas

paralelismo de dados (data-parallel) GAS e PGAS

orienta¸c˜ ao a processos

mem´oria compartilhada troca de mensagens

(3)

Paralelismo de Dados: exemplo HPF

Fortran 90: opera¸ c˜ oes com arrays

operadores escalares estendidos para arrays:

real A(10,20), B(10,20) logical L(10,20)

A = A + 1.0 ! Adds 1.0 to each element of A

A = SQRT(A) ! Computes square root of each element of A L = A .EQ. B ! Sets L(i,j) to .true. if A(i,j)= B(i,j);

HPF: express˜ ao de paralelismo sobre dados processadores virtuais

arrays distribu´ıdos entre processadores *cyclic, block, ...) alinhamento entre arrays

programa descreve o mundo global e n˜ ao a vis˜ ao de um ´ unico processo

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(4)

Paralelismo de Dados: exemplo HPF

!distribution directives not supplied - replication PROG1

INTEGER BARRAY(100)

!default distribution directives supplied - replication PROG2

INTEGER BARRAY(100)

!HPF$ DISTRIBUTE BARRAY(*) REAL X(16), Y(16)

!HPF$ DISTRIBUTE Y(BLOCK)

!HPF$ ALIGN X(I) WITH Y(I+1)

(5)

Paralelismo de Dados: exemplo HPF

!HPF$ PROCESSORS p(20)

real A(100,100), B(100, 100), C(100,100)

!HPF$ ALIGN B(:,:) WITH A(:,:)

!HPF$ ALIGN C(i,j) WITH A(j,i)

!HPF$ DISTRIBUTE A(BLOCK,*) ONTO p

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(6)

Alinhamento em HPF

(7)

Linguagens PGAS

Partitioned Global Address Space ... tipicamente final dos anos 90 Titanium, Co-array FORTRAN, UPC

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(8)

Linguagens PGAS

HPF retrospectivamente PGAS

processadores (possivelmente virtuais) chamados de lugares em vocabul´ ario PGAS

fun¸ c˜ ao custo reflete custo de acesso a diferentes dados

tipicamente “barato” e “caro”

ditribui¸ c˜ oes pr´ e-definidas para dados regulares

cyclic,block-cycliceblock

dados remotos acessados explicita ou implicitamente

(9)

UPC

vari´ aveis podem ser

private

ou

shared

vari´ aveis compartilhadas podem ser usadas por todos mas explicitam o custo de comunica¸c˜ ao

e s˜ao de fato o ´unico ponto onde isso fica expl´ıcito

vari´ aveis escalares compartilhadas: sempre na thread 0 vetores distribu´ıdos entre threads

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(10)

UPC: compartilhamento

(11)

UPC: compartilhamento

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(12)

UPC: distribui¸c˜ ao de trabalho

(13)

distribui¸c˜ ao de trabalho — formas comuns

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(14)

UPC: distribui¸c˜ ao de trabalho

afinidade

express˜ ao extra no forall

valor inteiro: avaliada se valor (m´ odulo # threads) igual ao id

(15)

PGAS: modelo de mem´ oria

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(16)

PGAS – anos 2000

DARPA – projeto PERCS (Productive Easy-to-use Reliable Computer Systems)

aumento de produtividade de programadores...

arquiteturas NUCC

arquiteturas h´ıbridas: non-uniform cluster computing

X10 (IBM) e Chapel (Cray)

ˆ

enfase em constru¸ c˜ oes ass´ıncronas

(17)

Chapel – paralelismo de dados

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(18)

Chapel – paralelismo de tarefas

(19)

Chapel e X10 – Modelo da Linguagem

deriva¸c˜ ao de sintaxes anteriores sublinguagem para arrays APGAS – assincronismo!

reifica¸c˜ao de localidade: localeseplaces

placesfixados no in´ıcio da execu¸c˜ao do programa

programador define distribui¸ c˜ ao de dados entre os places computa¸c˜ ao realizada por atividades (threads desacoplados de objetos)

X10: vari´aveis usadas por mais que uma atividade devem ser declaradas comofinal

imutabilidade!

Noemi Rodriguez Programa¸ao Paralela e Concorrente

(20)

Referˆ encias

PGAS M. De Wael e outros. Partitioned Global Address Space Languages. ACM Computing Surveys, 47(4), May 2015.

UPC : http://upc.lbl.gov/publications/

Chapel B. Chamberlain e outros. Parallel Programmability and the Chapel Language. International Journal of High Performance Computing Applications, August 2007, 21(3): 291-312.

X10 P. Charles e outros. X10: An Object-oriented

approach to non-uniform Clustered Computing.

Imagem

Referências

temas relacionados :