• Nenhum resultado encontrado

Programação Paralela e Concorrente

N/A
N/A
Protected

Academic year: 2021

Share "Programação Paralela e Concorrente"

Copied!
20
0
0

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.

Referências

Documentos relacionados

Geraldo Pecorari na cidade de Jun- queirópolis, nesta quinta-feira, 17 de dezembro e contou com a participação da equipe da diretoria de ensino, a dirigente Regional de Ensino

Consiste em entrevistar pai, mãe ou responsável para extrair o máximo de informações possíveis sobre o sujeito, realizando uma posterior Análise e levantamento do

Em decorrência dos referidos acordos de colaboração, foram tomados 19(dezenove) termos de colaboração de MÔNICA MOURA, 10(dez) de JOÃO SANTANA e 04(quatro) termos

programador define distribui¸ c˜ ao de dados entre os places computa¸c˜ ao realizada por atividades (threads desacoplados de objetos). vari´ aveis usadas por mais que uma

Um estudo comparou os efeitos da Melatonina (5 mg) com os do benzodiazepínico temazepam (10 mg) sobre a desempenho cognitiva. Enquanto o temazepam causou uma indução ao

Uma vez adquirido o controlo da Sociedade Visada, o Oferente tem o propósito de desenvolver uma política de pessoal tendo como objectivo, designadamente, (i) a manutenção dos

A precisão e acidez sem fi ltros da “prosa bárbara” de Arantes, assim defi nida pelo próprio, poderá ser apreciada em sua inteireza, para além das torres de marfi m, por

Com dois vetores na notação módulo ângulo achamos a direção e o sentido do seu produto vetorial com a regra da mão direita da figura 2.17... 2ª LISTA