• Nenhum resultado encontrado

Para ilustrar a idéia do fatiamento (sli ing) de pro essos em interesses, vamos

onsideraroseguinteexemplo: sejam

A

e

B

duasmatrizesquadradas

n × n

e

X

e

Y

dois vetores

1 × n

(onde

n > 0

). Iremos al ular o es alar

r = (A×X

T)×(B×YT)

.

Consideremos um algoritmo paralelo para este ál ulo em quatro pro essadores

(

P0, P1, P2

e

P3

) distintos, sendo que o pro essador

P0

que exe uta o pro esso root seresponsabilizará emini iar a omputação (alo ando memóriapara as matrizes e

ini ializando-as om valores numéri os) e re olher o resultado nal, oes alar

r

.

Opro essador

P0

, apósini ializarasmatrizeseosvetores,armazenaráametade superior(linha0atéàlinha

n/2−1

)damatriz

A

onsigoeenviaráametadeinferior

de

A

(linha

n/2

à linha

n − 1

) aopro essador

P1

(por enquanto, vamos abstrair a formadeenviodedadosentrepro essadores).

P0

enviará,também,ovetor

X

inteiro aopro essador

P1

emanterá uma ópia onsigo.

De posse da matriz

B

eo vetor

Y

,

P0

enviaráas metades superior e inferior da matriz

B

paraospro essadores

P2

e

P3

,respe tivamente. Jáovetor

Y

será enviado porinteiroaos pro essadores

P2

e

P3

.

Após realizada a distribuição des rita a ima,  aremos om o seguinte enário:

P0

de posse da metade superior de

A

(

A0

) e do vetor

X

;

P1

de posse da metade superior de

A

(

A1

) e do vetor

X

;

P2

de posse da metade inferior de

B

(

B0

) e do vetor

Y

; nalmente,

P3

de posse dametadesuperior de

B

(

B1

) e dovetor

Y

.

Figura 3.1: Separação da omputação nos pro essosenvolvidos

Oobjetivodestadistribuiçãoéparalelizaro ál ulodamultipli açãodasmatrizes

nos quatro pro essadores, onforme mostrado nagura 3.1. Ou seja,o pro essador

P0

vai al ular

V0

= A0×X

T

e

P1

vai al ular

V1

= A1×X

T

. Ovetor

V

éoresultado

dessa multipli ação, e o mesmo estará distribuído em

P0

(

V0

) e

P1

(

V1

). O mesmo o orre para

P2

e

P3

onde é riado o vetor

U

que estará dividido em

U0

= B0× Y

T

e

U1

= B1× Y

T

.

Atéeste pontodoalgoritmo,foram al ulados apenasoprodutode matrizespor

vetores de formaparalela,gerando doisnovosvetoresos quais hamamosde

U

e

V

.

O próximo passo do problema ini ial é o ál ulo do produto vetorial

r = U

T

× V

,

ujo resultado será armazenado em

r

. Este ál ulo deverá ser efetuado de forma

paralelanos pro essadores sendoquepara issofaz-sene essária aredistribuiçãodos

vetores apresentados na Figura 3.1. Vamos então dividir os vetores resultantes em

ada pro essador, ou seja,

V0

que está lo alizado em

P0

será dividido pela metade em

V0−upper

e

V0−lower

(upper paraametadesuperiorelower paraametadeinferior). Analogamente, nosoutrospro essadoresteremosque

P1

irágerar

V1−upper

e

V1−lower

,

P2

apresentará

U0−upper

e

U0−lower

e

P3

om

U1−upper

e

U1−lower

(Figura3.2).

Estanova onguraçãotornapossívelaredistribuição(Figura3.3)dosdadosnos

Figura 3.2: Parti ionamento dosvetores U e V nosrespe tivos pro essadores. A legenda

indi a a or de ada pro essador

P1

U0−lower

.

P2

envia a

P0

U0−upper

.

P1

envia a

P3

V1−lower

.

P3

envia a

P2U1−upper

. Apósaredistribuiçãodos vetores lower eupper, adapro essadordeverá efetuar

amultipli ação(Figura 3.4) dos vetores que foramre ebidos e armazenar osdados

emvariáveisquerepresentamor parti ionado. Aonal,deveráserfeitoosomatório

dessesvalores nopro essador

P0

. Logo

r = r0 + r1 + r2 + r3

.

Oexemplodamultipli açãoparalelaexpli adoa imapodeserdivididoemvários

interesses. Alguns omuns a todos os pro essos envolvidos, e outros omuns a

apenas dois pro essos,porexemplo. A Figura3.5 ilustra omo éfeita separação do

nosso exemplo em interesses. Abaixo, iremos enumerá-los, expli ando-os de forma

horizontal, on entrando-nos nopro essador

P0

.

i. Ini ializar: Esteinteresseperten eapenasà

P0

. Eleseen arregadeini ializar asestruturas

A, B, X

e

Y

om valores inteiros aleatórios, para ns de teste.

Figura 3.4: Cál ulo das partes der em ada pro essador

ii. Distribuir(

A, X

): Note-se que este interesse é omum tanto a

P0

quanto a

P1

. Ele é responsável em distribuir as respe tivas metades da matriz

A

e o vetor

X

( ompleto) entre esses dois pro essadores. Como expli ado,

P0

irá re eber

A0

e

X

T

. Já

P1

 ará om

A1

etambém om

Y

T

.

iii. Distribuir(

B, Y

): Análogo ao interesse a ima, este é omum a

P0, P2

e

P3

. Ele perten e a

P0

também pois este pro essador é quem ini ia as estruturas dedados,noentanto,não efetua omputaçãosobreasmesmas. Completando,

ele distribui as respe tivas metades da matriz

B

e o vetor

Y

entre

P2

e

P3

. Comoexpli ado,

P2

iráre eber

B0

e

Y

T

. Já

P3

 ará om

B1

e também om

YT

.

iv. MultMatVet(

A, X

) e MultMatVet(

B, Y

): O primeiro multipli a

A

e

X

T

e armazena o resultado em

V

. O segundo, multipli a

B

e

Y

T

e armazena o

resultado em

U

. Note que em

P0

, apenas a metade superior de

A

é passada om parâmetro (

A0

). E em

P1

, a metade

A1

é usada. O mesmo vale para a matriz

B

, dividida entre os pro essadores

P3

e

P4

. O vetores resultantes também são subdivididos em

V0

,

V1

,

U0

e

U1

e distribuídos respe tivamente em

P0

,

P1

,

P2

e

P3

. Importanteressaltarque esses interesses trabalhamsobre dados diferentes. Em

P0

e

P1

, MultMatVet atua sobre

A, X

e

V

. E em

P2

e

P3

,atuasobre

B, Y

e

U

. Mesmoqueem

P0

,apenasametadeini ialde

A

seja usada eem

P1

, a metade nal, ainda assim esse dois pro essos ompartilham omesmointeresse, pois não houvea riaçãode uma novaestrutura de dados.

Eles ontinuamatuando sobreamatriz

A

. Analogamente, omesmora io ínio

valepara

P3

e

P4

.

Figura 3.5: Interesses omuns e espe í os dis riminados por or em ada pro essador

e

V

deverãoser repartidosentre osmesmos,sema riaçãode novasestruturas

de dados (Veja Figuras3.2e 3.3).

vi. MultVetVet(

U

,

V

): Outro interesse omum aos quatro pro essadores só que

omaparti ularidadedeque adapro essadorirátrabalhar omumapartede

U

e

V

distintadas demais. Cadapro essador deve al ular,então, um es alar

r

.

vii. A umular(

r

): Maisuma vez, um interesse omum atodos ospro essos. Em

P1

,

P2

e

P3

,alógi aseráadeenviaroresultado al uladonointeresseanterior em ada pro essador para

P0

.

P0

, além de enviar seu resultado a ele mesmo, irásomar os resultados provindos de outros pro essadores, e dele mesmo, no

es alar

r

. Ointeresseé mútuopoistodos ompartilhamamesmaestrutura de

dados,o es alar

r

.

Re apitulando,amultipli açãode dois vetoresé uminteresse omum atodos os

pro essos. Cada pro essador ne essita de uma rotina que efetua essa operação. A

riação e distribuição das matrizes e vetores através dos pro essos é um interesse

que diz respeito a apenas ao pro esso

P0

(root). O re ebimento do vetor

X

, é um interesse que diz respeito a apenas os pro essos

P0

e

P1

. Já o vetor

Y

deve ser re ebido porapenas ospro essos

P2

e

P3

.

Visualizando o programa horizontalmente, por interesses, vamos de en ontro à

assumeminteresses omoaunidadebási aparaade omposiçãode umsoftware [51℄

Portanto, o modelo # propõe uma visão fo ada em interesses, quebrando

assim o modelo tradi ional de perspe tiva orientada a pro essos dos artefatos de

programação paralela existentes. A programação paralela sob a perspe tiva #,

passaentãoaser orientadaainteresses. Um omponente#é apazde tratarde um

interesseenvolvendounidades de um onjuntode pro essosenvolvidos,de talforma

que ada unidade representa o papel dopro esso naquele interesse. Por exemplo, o

interesseA umularnas unidades

P1

,

P2

e

P3

apenasenviamseus dados à

P0

. Esse, porsua vez, alémde re eberodado al uladonelepróprio,deverá fazerosomatório

dos resultados provindos dos outros pro essadores. Dessa forma, a síntese de um

programa paralelo baseado em pro essos, apaz de exe utar de maneira e iente

em arquiteturas distribuídas ontemporâneas, é possível a partir da de omposição

baseadaeminteresses deumprograma#. Conje tura-sesuageneralidade,deforma

queoutras noções de omponentes podem ser interpretadasem termosdeste [40℄.

Documentos relacionados