modelagem e predição de desempenho de primitivas de

113
HÉLIO MARCI DE OLIVEIRA Modelagem e Predição de Desempenho de Primitivas de Comunicação MPI Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do título de Mestre em Engenharia. São Paulo 2003

Upload: ngodat

Post on 09-Feb-2017

218 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Modelagem e Predição de Desempenho de Primitivas de

HÉLIO MARCI DE OLIVEIRA

Modelageme PrediçãodeDesempenhode

PrimitivasdeComunicaçãoMPI

Dissertaçãoapresentadaà Escola

PolitécnicadaUniversidadedeSão

Paulo para obtençãodo título de

MestreemEngenharia.

SãoPaulo

2003

Page 2: Modelagem e Predição de Desempenho de Primitivas de

HÉLIO MARCI DE OLIVEIRA

Modelageme PrediçãodeDesempenhode

PrimitivasdeComunicaçãoMPI

Dissertaçãoapresentadaà Escola

PolitécnicadaUniversidadedeSão

Paulo para obtençãodo título de

MestreemEngenharia.

ÁreadeConcentração:

SistemasDigitais

Orientador:

Prof. Dr. EdsonT. Midorikawa

SãoPaulo

2003

Page 3: Modelagem e Predição de Desempenho de Primitivas de

AGRADECIMENTOS

AgradeçoàDeuspelacapacidadeeproteção,oportunidadesedesafios,e tudo

maisquemefoi concedido...emboramuitasvezeseuaindanãoestivesseaptoa

compreender.

Aos meuspaisAntonio eFlordinice,tambémaosmeusirmãosMarcoseEdson,

peloapoiofundamentale invariavelmentepresente.

Ao meuorientador, prof. EdsonMidorikawa,pelaconfiançaemmim depositada

e pelosauxíliosemmuitoscasosimprescindíveisnestesquasedoisanosde

mestrado.

Ao amigoecompanheiroJean,votossincerosdesucessoe realizações.Comojá

dizia o Raul: "nuncasevenceumaguerralutandosozinho"!

Aos colegasdelaboratório(àsvezesparceirosdefestastambém!),emespecial

Gisele,Fabio,Augusto(estedemaislongadata!),Mário eLi. Ainda a todosos

demaiscujaconvivêncianoLASB contribuiu paraminhaformaçãoprofissionale

pessoal.

À profa. Liria, semprededicadaeprestativa,o meurespeitoeagradecimento.

Ao amigoMarcio,por todoo incentivo epelaspalavrasdeconforto.Ao Rodrigo,

pelacooperaçãoecompanheirismoemtantosmomentos.

Finalmente,aoCNPqpelosuportefinanceirodisponibilizadoparaa realização

destetrabalho.

Page 4: Modelagem e Predição de Desempenho de Primitivas de

RESUMO

O desenvolvimentodeprogramasparalelose distribuídosencontranaprogra-

maçãobaseadaempassagemdemensagensumaabordagemeficazparaexplorar

adequadamenteascaracterísticasdasmáquinasde memóriadistribuída. Com o

usodeclustersedebibliotecasdesuporteàstrocasdemensagens,comoo padrão

MPI (MessagePassingInterface), aplicaçõeseficienteseeconomicamenteviáveis

podemserconstruídas.Em taissistemas,o tempodespendidonascomunicações

constituiumimportantefatordedesempenhoaserconsideradoerequerautiliza-

çãodeprocedimentosecuidadosparaasuacorretacaracterização.Nestetrabalho,

modelosanalíticosde primitivasde comunicaçãobloqueanteMPI sãodesenvol-

vidos segundoumametodologiade análisee prediçãoapropriada.Sãotratadas

algumasdasprincipaisoperaçõesponto-a-pontoe coletivase,utilizandotécnicas

de ajustede curvase temposexperimentais,o comportamentodasprimitivasde

comunicaçãoé representadoem equações,possibilitandoaindaa realizaçãode

análisese prediçõesdedesempenhoemfunçãodo tamanhodasmensagense do

númerode processosenvolvidos. Através de testesem um cluster de estações

de trabalho,a precisãodosmodeloselaboradosé comprovada. Sendoa maioria

doserrospercentuaisinferioresa8%,osresultadosobtidosconfirmamavalidade

do processode modelagem.Além disso,o trabalhoapresentaum conjuntode

funçõesconstruídascomo objetivo deoferecersuportea atividadesdeanálisee

predição,procurandofacilitar eautomatizarsuaexecução.

Page 5: Modelagem e Predição de Desempenho de Primitivas de

ABSTRACT

Thedevelopmentof parallelanddistributedprogramsfindsatmessage-passing

programminga powerful approachto explore properly the distributed memory

machinesissues.Using clustersandmessage-passinglibraries,asMPI standard

(MessagePassingInterface),efficientandcosteffectiveapplicationscanbecons-

tructed.In thesesystems,thetimespentwith communicationsmeansa important

performancefactorto beconsideredandits correctcharacterizationrequirespro-

ceduresandcautions.In thiswork,analyticmodelsfor MPI blockingcommunica-

tion primitivesaredevelopedaccordingoneappropriatemethodologyfor analysis

andprediction.Someof themainpeer-to-peerandcollectiveoperationsaretrea-

ted,andthroughcurve fitting techniquesandexperimentaltimesthebehavior of

the communicationprimitivesis representedin equations,allowing alsothe ac-

complishmentof performanceanalysisandpredictionin functionof themessage

lengthandthe numberof processes.Testsrealizedin a clusterof workstations

prove the accuracy of the elaboratedmodels. With most of errorswithin 8%,

the obtainedresultsshow the validity of the modelingprocess.Also, the work

presentsa setof functionsconstructedwith the purposeof supportanalysisand

predictionactivities, in orderto facilitateandautomatethem.

Page 6: Modelagem e Predição de Desempenho de Primitivas de

Sumário

1 INTRODUÇÃO 1

1.1 Objetivo do trabalho . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Motivação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Justificativas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.4 Metodologia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.5 Organizaçãodo trabalho . . . . . . . . . . . . . . . . . . . . . . 5

2 PROGRAMA ÇÃO COM TROCA DE MENSAGENS E MPI 6

2.1 Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2 Programaçãoparalelaatravésdepassagemdemensagens. . . . . 7

2.2.1 Principaiscaracterísticasdosclusters . . . . . . . . . . . 9

2.2.2 Implementaçãodomodelodepassagemdemensagens. . 11

2.2.3 Sincronizaçãoeendereçamento. . . . . . . . . . . . . . 11

2.2.4 Modosdecomunicação. . . . . . . . . . . . . . . . . . . 12

2.2.5 Bibliotecasdesuporteàstrocasdemensagens. . . . . . . 13

2.2.6 Desempenhodascomunicações. . . . . . . . . . . . . . 14

2.3 Característicasbásicasdo padrãoMPI . . . . . . . . . . . . . . . 16

2.3.1 Tiposdedados . . . . . . . . . . . . . . . . . . . . . . . 17

2.3.2 Communicators, contextos de comunicaçãoe gruposde

processos. . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 PrimitivasdecomunicaçãoMPI . . . . . . . . . . . . . . . . . . 19

2.4.1 Comunicaçãoponto-a-ponto. . . . . . . . . . . . . . . . 19

2.4.2 Comunicaçãocoletiva . . . . . . . . . . . . . . . . . . . 23

2.5 Consideraçõesfinais . . . . . . . . . . . . . . . . . . . . . . . . 27

i

Page 7: Modelagem e Predição de Desempenho de Primitivas de

SUMÁRIO ii

3 ANÁLISE E PREDIÇÃO DE DESEMPENHO 28

3.1 Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Fatoresaseremconsiderados. . . . . . . . . . . . . . . . . . . . 29

3.2.1 Erroscometidosnaavaliaçãoe prediçãodedesempenho. 29

3.2.2 Consideraçõessobrea construçãodemodelos. . . . . . . 31

3.2.3 Seleçãodemétricasecaracterizaçãodoworkload . . . . . 32

3.3 Medição,análiseeprediçãodedesempenho. . . . . . . . . . . . 33

3.4 Atividadeseabordagensempregadasnaanáliseeprediçãodede-

sempenho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3.4.1 Modelagemanalítica . . . . . . . . . . . . . . . . . . . . 36

3.4.2 Modelagemestrutural . . . . . . . . . . . . . . . . . . . 37

3.5 Trabalhosrelacionados. . . . . . . . . . . . . . . . . . . . . . . 38

3.5.1 Culleret al . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.5.2 Xu e Hwang . . . . . . . . . . . . . . . . . . . . . . . . 39

3.5.3 AbandaheDavidson . . . . . . . . . . . . . . . . . . . . 39

3.6 Metodologiapropostapor Li . . . . . . . . . . . . . . . . . . . . 40

3.6.1 Modelagematravésdeclassesdegrafos . . . . . . . . . . 41

3.6.1.1 Representaçãodebaixonível . . . . . . . . . . 41

3.6.1.2 Representaçãodealtonível . . . . . . . . . . . 42

3.6.2 Aplicaçãodametodologia . . . . . . . . . . . . . . . . . 43

3.6.3 Cálculodo tempodeexecuçãodeumprogramaparalelo . 45

3.6.4 Componentesdo tempodecomunicação. . . . . . . . . . 46

3.7 Consideraçõesfinais . . . . . . . . . . . . . . . . . . . . . . . . 47

4 MODELA GEM DE PRIMITIV AS PONTO-A-PONTO 48

4.1 Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

4.2 Procedimentose ferramentasadotadas. . . . . . . . . . . . . . . 49

4.2.1 Tratamentodeoutliers . . . . . . . . . . . . . . . . . . . 50

4.2.2 Mediçãodostemposdecomunicação . . . . . . . . . . . 51

4.2.3 Construçãodosmodelosanalíticos. . . . . . . . . . . . . 52

4.2.4 Scilab2.6 . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.3 Programaselaboradosparaasmedições . . . . . . . . . . . . . . 54

4.4 Ambientecomputacionalutilizadonostestes. . . . . . . . . . . . 55

Page 8: Modelagem e Predição de Desempenho de Primitivas de

SUMÁRIO iii

4.5 Primitivasdecomunicaçãoponto-a-ponto . . . . . . . . . . . . . 55

4.5.1 Consideraçõessobrea implementaçãodosmodosdesend 56

4.5.2 Modelagemanalíticadosmodosdesendbloqueantes. . . 56

4.5.3 Prediçãodedesempenho. . . . . . . . . . . . . . . . . . 58

4.5.4 Usodeintervalosnaconstruçãodemodelos. . . . . . . . 59

4.6 Consideraçõesfinais . . . . . . . . . . . . . . . . . . . . . . . . 61

5 PRIMITIV AS DE COMUNICA ÇÃO COLETIV A 64

5.1 Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.2 Broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.2.1 Consideraçõessobrea implementacãodo broadcast . . . 65

5.2.2 Testesexecutadoscomo broadcast . . . . . . . . . . . . 65

5.2.3 Análiseemfunçãodo tamanhodamensagem. . . . . . . 66

5.2.4 Análiseemfunçãodonúmerodeescravos . . . . . . . . . 67

5.2.5 Modeloanalíticodobroadcasteprediçãodedesempenho 69

5.3 Reduce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.3.1 Consideraçõessobrea implementaçãodo reduce . . . . . 72

5.3.2 Testesexecutadoscomo reduce . . . . . . . . . . . . . . 72

5.3.3 Análiseemfunçãodo tamanhodamensagem. . . . . . . 73

5.3.4 Análiseemfunçãodonúmerodeescravos . . . . . . . . . 74

5.3.5 Modeloanalíticodo reducee prediçãodedesempenho. . 75

5.4 Barrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.4.1 Consideraçõessobrea implementaçãodabarreira. . . . . 77

5.4.2 Testesexecutadoscombarreiras . . . . . . . . . . . . . . 78

5.4.3 Análiseemfunçãodonúmerodeprocessos. . . . . . . . 79

5.4.4 Modeloanalítico . . . . . . . . . . . . . . . . . . . . . . 79

5.5 All-to-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5.1 Consideraçõessobrea implementaçãodo all-to-all . . . . 82

5.5.2 Testesrealizadoscomo all-to-all . . . . . . . . . . . . . 82

5.5.3 Análiseemfunçãodo tamanhodamensagem. . . . . . . 84

5.5.4 Análiseemfunçãodonúmerodeprocessos. . . . . . . . 86

5.5.5 Influênciadeoutrosfatores. . . . . . . . . . . . . . . . . 87

5.6 Prediçõescomgrandesquantidadesdeprocessos . . . . . . . . . 87

Page 9: Modelagem e Predição de Desempenho de Primitivas de

SUMÁRIO iv

5.7 Consideraçõesfinais . . . . . . . . . . . . . . . . . . . . . . . . 88

6 CONCLUSÕES 90

6.1 Realizaçãodosobjetivos . . . . . . . . . . . . . . . . . . . . . . 91

6.2 Trabalhosfuturos . . . . . . . . . . . . . . . . . . . . . . . . . . 92

A FUNÇÕES IMPLEMENT ADAS COM O SCILAB 1

Page 10: Modelagem e Predição de Desempenho de Primitivas de

Lista deFiguras

2.1 Arquiteturadeumcluster. . . . . . . . . . . . . . . . . . . . . . 10

2.2 Parâmetrosdedesempenhodeumarededeinterconexão. . . . . . 15

2.3 Operaçõesdecomunicaçãocoletiva. . . . . . . . . . . . . . . . . 24

2.4 Operaçãocoletivaall-to-all. . . . . . . . . . . . . . . . . . . . . 26

3.1 EstruturasdaclassedegrafosDP*Graph. . . . . . . . . . . . . . 42

3.2 EstruturasdaclassedegrafosT-graph*. . . . . . . . . . . . . . . 43

3.3 Metodologiadeanáliseeprediçãodedesempenho[Li01]. . . . . 43

3.4 Exemplodecálculodo tempodeexecuçãodeumprograma. . . . 46

3.5 Representaçãodoscomponentesdo tempodecomunicação. . . . 47

4.1 Desempenhodo MPI_SendedoMPI_Bsend. . . . . . . . . . . . 62

4.2 Desempenhodo MPI_Rsende doMPI_Ssend.. . . . . . . . . . . 63

5.1 Análisedo MPI_Bcastemfunçãodo tamanhodamensagem.. . . 67

5.2 Análisedo MPI_Bcastemfunçãodonúmerodeescravos. . . . . . 68

5.3 Análisedo MPI_Reduceemfunçãodo tamanhodamensagem.. . 74

5.4 Análisedo MPI_Reduceemfunçãodo númerodeescravos.. . . . 75

5.5 Análisedo MPI_Barrieremfunçãodo númerodeprocessos.. . . 80

5.6 MPI_Alltoall emfunçãodo tamanhodamensagem.. . . . . . . . 85

5.7 MPI_Alltoall emfunçãodonúmerodeprocessos.. . . . . . . . . 86

5.8 Prediçõesemfunçãodep (broadcast, reduceebarreira). . . . . . 89

v

Page 11: Modelagem e Predição de Desempenho de Primitivas de

Lista deTabelas

2.1 TiposdedadosMPI eseuscorrespondentesnalinguagemC. . . . 17

2.2 Operaçõesdecomunicaçãoponto-a-pontoMPI. . . . . . . . . . . 20

2.3 PrincipaisoperaçõesdecomunicaçãocoletivaMPI. . . . . . . . . 23

4.1 Temposmedidosemsegundosparaosquatromodosdesend. . . . 57

4.2 Prediçõesrealizadasparaosquatromodosdesend*. . . . . . . . 59

4.3 Resultadosdostestescomamodelagempor intervalos*. . . . . . 61

5.1 ModelosdoMPI_Bcastemfunçãodonúmerodeescravos(p). . . 69

5.2 PrediçãodedesempenhoemsegundosdaprimitivaMPI _Bcast. . 70

5.3 TemposmedidosemsegundoscomaprimitivaMPI_Bcast.. . . . 71

5.4 TemposmedidosemsegundoscomaprimitivaMPI_Reduce.. . . 73

5.5 ModelosdoMPI_Reduceemfunçãodo númerodeescravos(p). . 76

5.6 PrediçãodedesempenhodaprimitivaMPI _Reduce*. . . . . . . 77

5.7 Temposmedidosnostestescoma primitivaMPI_Barrier*. . . . . 78

5.8 Acuráciado modeloanalíticodaprimitivaMPI_Barrier*. . . . . 81

5.9 Temposmedidos(segundos)edesviopadrãoSdo MPI_Alltoall. . 83

vi

Page 12: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 1

INTRODUÇÃO

O processamentoparaleloé geralmentedestinadoà resoluçãode problemasque

demandemgrandepodercomputacional.As máquinasde memóriadistribuída

têmsidobastanteutilizadasnestescasos,oferecendoalto desempenhoe altadis-

ponibilidademuitasvezesa um preçobastanteinferior aoscomputadoresparale-

los dememóriacompartilhada.

Um clusterpodeservistocomoumsistemadeprocessamentoparalelooudis-

tribuído trabalhandocomoum recursocomputacionalúnicoe integrado,embora

sejacompostopor um conjuntodecomputadoresdistintos[Moura99]. Devido a

característicascomoescalabilidade,alto desempenhoe custofinanceirorelativa-

mentebaixo,estessistemastêmsidoobjetodeestudoe merecidodestaquetanto

no meio acadêmicocomono empresarial.Podendoapresentardiversasconfigu-

raçõespossíveis,atravésdevariaçõesno númeroe nascaracterísticasdosnósde

processamento,por exemplo,osclusters sãoconstruídosbasicamentepelainter-

conexãodeumconjuntodemáquinasemumarededealtavelocidade.

As aplicaçõesprojetadasparaclusters costumamutilizar bibliotecasde su-

porteàsoperaçõesde comunicação,procurandodestaforma explorar melhora

arquiteturadememóriadistribuídacoma programaçãobaseadaempassagemde

mensagens.O PVM (Parallel Virtual Machine) e o MPI (Message PassingIn-

terface) oferecemasmaisconhecidasbibliotecascomtal finalidade.Sendouma

soluçãomaisrecente,o MPI constituium padrãoparao desenvolvimentodepro-

gramasparalelosbaseadosemtrocasdemensagens,disponibilizandoumconjunto

1

Page 13: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 1. INTRODUÇÃO 2

deprimitivascapazesdeoferecersuporteaváriasoperaçõesdecomunicaçãoede-

finindo semânticasesintaxesprópriasparaestasoperações.

Contudo,somentea utilizaçãodo padrãoMPI, ou mesmodo PVM, não é

suficienteparaa elaboraçãode aplicaçõeseficientesbaseadasem passagemde

mensagens.É necessáriaa distribuiçãoapropriadadetarefasentreosnósdepro-

cessamentoe o uso adequadodasprimitivasde comunicaçãodisponibilizadas.

Nestecontexto, as técnicasde medição,análisee prediçãode desempenhopo-

dem oferecermecanismosparaavaliaçãodestasaplicações,procurandoindicar

justificativasparadesempenhosruins ou auxiliar a obtençãode programascom

melhorestemposdeexecução.

No presentetrabalho,descrevemosa aplicaçãodealgumastécnicasnaelabo-

raçãodemodelosanalíticosparaanálisee prediçãodedesempenhodeoperações

de comunicaçãoMPI. SãocaracterizadasalgumasprimitivasMPI e, atravésdos

modelosgerados,prediçõesdetemposdeexecuçãopodemserrealizadasvariando

o númerodenósdeprocessamentoenvolvidose o tamanhodasmensagenstrans-

mitidas. Além disso,apresentamosum conjuntode funçõesdesenvolvidascom

o objetivo de oferecersuporteao processode mediçãoe modelagemutilizado,

facilitandoe automatizandoalgumastarefasenvolvidas.

1.1 Objetivo do trabalho

O objetivo principal destetrabalhoé a caracterizaçãode primitivasde comuni-

caçãoMPI atravésda elaboraçãode modelosanalíticos,com vistasa análisee

prediçãodedesempenhodestasprimitivas.Nesteintuito, osseguintespropósitos

foramconcretizados:

1. Desenvolvimentodeextensõesà metodologiadeanáliseeprediçãodedesem-

penhoapresentadaporLi [Li01], comacaracterizaçãodasseguintesopera-

çõesdecomunicaçãonãotratadas:

� MPI_Bsend(modobuffereddo sendpadrão);

� MPI_Ssend(modosíncronodo sendpadrão);

� MPI_Rsend(modoreadydo sendpadrão);

Page 14: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 1. INTRODUÇÃO 3

� MPI_Barrier(operaçãodebarreira);

2. Realizaçãode novasanálisese modelagensdasseguintesoperaçõesjá consi-

deradasno trabalhode Li, procurando,contudo,aprimoraro trabalhode-

senvolvido e apresentarmodelosmaisrobustos:

� MPI_Send(sendpadrão);

� MPI_Bcast(primitivadecomunicaçãocoletivabroadcast);

� MPI_Reduce(operaçãocoletivaderedução).

3. Identificaçãodetécnicaseferramentascapazesdeoferecersuporteaoprocesso

deanálisee prediçãoestabelecidopelametodologia,facilitandoa suaapli-

caçãoeprocurandoautomatizaresteprocesso.

1.2 Moti vação

A construçãodeaplicaçõesparalelase distribuídasparaseremexecutadassobre

clustersdeestaçõesdetrabalhotemsidoestimuladapelanecessidadedesistemas

computacionaisde alto desempenhoe menorescustosfinanceiros. Os clusters

podemrepresentarsoluçõesviáveis paraestasaplicaçõesdevido tambéma sua

escalabilidade,quefacilita a inserçãoe remoçãodenósdeprocessamento.

Porém,a exploraçãoadequadadaspotencialidadesdestasmáquinasde me-

móriadistribuídapor vezestrata-sedeumatarefa nadatrivial. A distribuiçãode

tarefasentreosnósdeprocessamentoe a escolhadaestratégiadeparalelizaçãoa

serutilizada,por exemplo,podemdeterminara eficiênciadeum certoprograma.

Nestecontexto, astécnicasdemodelagemanalíticaconstituemum poderosome-

canismoparaanálisededesempenhodeprogramasparalelos.Coma elaboração

demodeloscompostosporumconjuntodeequações,podemosanalisaro compor-

tamentodaaplicaçãoe,alémdisso,realizarprediçõesdetemposdeexecuçãopara

algoritmosaindanãoimplementadosou programasexecutandosobrecondições

variadas- alterandoo númerodenósdeprocessamentoenvolvidosnacomputação

ou o tamanhodoproblematratado.

Page 15: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 1. INTRODUÇÃO 4

1.3 Justificativas

Recentemente,diversospesquisadorestêmutilizadotécnicasdemodelagemanalí-

ticaemtrabalhosdeanáliseeprediçãodedesempenho[Abandah96,Li01, Xu96].

No trabalhodesenvolvido por Li, é propostaumametodologiadeanálisee predi-

çãoaplicável aprogramasparalelosqueutilizemprimitivasdecomunicaçãoMPI.

Ainda,sãoapresentadosmodelosanalíticosparaalgumasdestasprimitivase tes-

tesrealizadosemum clusterdeestaçõesdetrabalho.

EmboraLi tenhatratadodealgumasdasoperaçõesdecomunicaçãomaisuti-

lizadasemprogramasMPI, outrasnãoforamenvolvidasemsuapesquisa.Desta

forma, nestetrabalhorealizamosuma extensãoà metodologiapropostacom o

desenvolvimentodemodelosanalíticosparaoutrasprimitivase repetimosa mo-

delagemdealgumasjá tratadas,porém,buscandoaexecuçãodenovasanálises.

1.4 Metodologia

O desenvolvimentodo presentetrabalhoenvolveua execuçãodasseguintesativi-

dadesprincipais:

1. Pesquisabibliográficaincluindo a revisãode assuntose trabalhosrelacio-

nados;

2. EstudodocódigodaimplementaçãoLAM-MPI;

3. Testescombenchmarkse programasespecialmenteelaboradosparamedi-

çãodetemposdeexecuçãodeprimitivasMPI;

4. Elaboraçãodeum conjuntodefunçõesparaauxiliar e automatizarativida-

desenvolvidasnoprocessodeanáliseeprediçãodedesempenho;

5. Geraçãodemodelosanalíticos;

6. Realizaçãodetestescomprovandoavalidadedosmodelosgerados.

Page 16: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 1. INTRODUÇÃO 5

1.5 Organizaçãodo trabalho

Estetrabalhoestáorganizadoda seguintemaneira. O capítulo2 abordatemas

relacionadosà programaçãoparalelaatravésde passagemde mensagense o pa-

drãoMPI, discutindocaracterísticasimportantesdosclusters e questõesenvolvi-

dascoma comunicaçãonestessistemas,entreoutrostemas.Sãoaindacomenta-

dasalgumascaracterísticase primitivasMPI. As principaistécnicase atividades

envolvidasem um processode análisee prediçãode desempenhosãodescritas

no capítulo3, incluindo a metodologiapropostapor Li e, sucintamente,alguns

trabalhosrelacionados.

A análiseeamodelagemdasprimitivasdecomunicaçãoMPI podemsercon-

feridasnosdois capítulosseguintes. Iniciamoso capítulo4 comentando,entre

outrosassuntos,osprocedimentosadotadosnosprocessosdemediçãodedesem-

penhoeconstruçãodosmodelosanalíticos,apresentandoemseguidaosresultados

obtidoscomasprimitivasponto-a-ponto.As comunicaçõescoletivassãotratadas

nocapítulo5,queaborda,alémdasprimitivasprevistasnosobjetivos,umaanálise

daoperaçãocoletiva all-to-all. No último capítulodescrevemosasconclusõese

sugerimosalgunstemasaseremestudadosemtrabalhosfuturos.Porfim, o Apên-

dice A apresentaum conjuntode funçõesdesenvolvidas no intuito de oferecer

suporteà realizaçãodeatividadesdeanáliseepredição.

Page 17: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 2

PROGRAMA ÇÃO COM TROCA

DE MENSAGENSE MPI

2.1 Intr odução

A necessidadedeaplicaçõescapazesdeoferecermelhordesempenhotemimpul-

sionadoo desenvolvimentodetecnologiasnaáreadecomputaçãoparalela.Uma

forma de melhorarestedesempenhoconsistena elaboraçãode técnicase ferra-

mentasadequadasàsarquiteturasdasmáquinasparalelas,sejamelasdememória

compartilhadaou dememóriadistribuída.

Atravésdacorretaexploraçãodascaracterísticasdasmáquinasparalelase do

paralelismoimplícito nasaplicações,ospesquisadoresprocurampossibilitaraob-

tençãode menorestemposde execução.O aperfeiçoamentodasbibliotecasde

passagemdemensagem,porexemplo,podeajudarprojetistasdesistemasaexplo-

raremmelhorestemodelodeprogramaçãoeobteremprogramasmaiseficientes.

Além disso,devemosconsiderartambéma crescentenecessidadede siste-

mascomputacionaisquecombinemaltodesempenhocommenorcustofinanceiro.

Nestecaso,o emprego declusters poderepresentarumasoluçãoalternativa para

o desenvolvimentode aplicaçõescom requisitode alto desempenhoou alta dis-

ponibilidade. Tais máquinaspodemserconstruídasa partir de um conjuntode

estaçõesdetrabalhointerligadaspor umarededealtavelocidade.Sendocaracte-

rizadocomoumsistemadememóriadistribuída,umclusterpodeterseupotencial

6

Page 18: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 7

exploradoadequadamentecoma utilizaçãodetecnologiasbaseadasemtrocasde

mensagens.

O modelodeprogramaçãobaseadoempassagemdemensagensrequero uso

deumabibliotecadefunçõesoferecendosuporteà comunicaçãoentrediferentes

processosou nósdeprocessamento.Atualmente,o MPI (Message PassingInter-

face) [MPI Forum] temseconsolidadocomoum padrãoparao desenvolvimento

de aplicaçõesbaseadasemtrocasde mensagens.O padrãoMPI propõeumabi-

bliotecadefunçõesespecíficas,permitindoa realizaçãodediversasoperaçõesde

comunicação,epossuidiversasimplementaçõesdisponíveis.

Nestecapítulodiscutimosdiversosaspectosrelacionadosà programaçãopa-

ralelacom passagemde mensagens- incluindo asprincipaiscaracterísticasen-

contradasemclusters, ospossíveismodosdecomunicaçãoequestõesenvolvidas

como desempenhodosistemaduranteastrocasdemensagens.Sãotambémapre-

sentadasalgumascaracterísticaseprimitivasdecomunicaçãodopadrãoMPI.

2.2 Programaçãoparalela através de passagemde

mensagens

O projetoe a implementaçãodeumaaplicaçãoparalelacostumamserrealizados

segundoum modelodeprogramação,quepor suavezdeve refletir ascaracterís-

ticasdamáquinaa serutilizadaparaexecutara aplicação.Conforme[Culler99],

nós podemosdescrever os principaismodelosde programaçãoparalelada se-

guinteforma:

� Endereçoscompartilhados: ascomunicaçõessãoexecutadasatravés de

espaçosdeendereçamentocompartilhados,cujo usoé análogoà utilização

deum quadrodeavisosondeaspessoaspodemescrevere ler informações.

Estemodelode programaçãoé muitasvezestambémdenominadode me-

móriacompartilhada;

� Passagemde mensagens: na programaçãoatravésde passagemde men-

sagens,um conjuntode eventospossibilitaastrocasde informaçõesentre

Page 19: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 8

emissorese receptoresespecíficos,nãoexistindo umamemóriacomparti-

lhada.Taiseventosconstituema baseparaharmonizaratividadesindividu-

ais;

� Processamentoparalelo de dados: nestemodelo,maisconhecidocomo

processamentovetorial,váriosagentesexecutamumaaçãosimultâneaso-

breelementosdistintosdeumconjuntodedados.Apósaexecuçãodaação,

osdadospodemserreorganizadosatravésdeacessosa endereçoscompar-

tilhadosou trocasdemensagens.

Nestetrabalho,estamosinteressadosem análisee prediçãode desempenhode

programasparalelosMPI. Porissoconcentramosasdiscussõessobreo modelode

programaçãobaseadoem trocasde mensagens,procurandocaracterizarmelhor

estemodeloeesclareceraspectosmaisrelevantes.Um estudocommaiornível de

detalhamentodestee dosdemaismodelospodeserencontradoem[Culler99] ou

emoutrasbibliografiasrelacionadasàprogramaçãoparalela.

As operaçõesdecomunicaçãomaiscomunsemsistemasdepassagemdemen-

sagenssãoo sende o receive, incluindosuasdiversasvariantespossíveis. Como

sugeremos nomes,o aparecimentode um sendem um programaindica a reali-

zaçãodeumatrocademensagementredoisprocessos,soba condiçãodeexistir

umarespectivaoperaçãoreceiveparaa concretizaçãodacomunicação.A combi-

naçãodestasoperaçõesdeterminaum eventodesincronizaçãoentreosprocessos

participantesepermiteacópiadedadosdoespaçodeendereçamentodoprocesso

emissorparao espaçodeendereçamentodo receptor.

Existemdiversasvariantespossíveisparaasoperaçõessend/receive. Depen-

dendode quandoo sendé finalizadoem relaçãoà execuçãodo receive, ou do

momentoemqueo buffer do emissoré disponibilizadoparareusoou, ainda,de

quandoa requisiçãoé aceita,implementaçõesdistintasdestasoperaçõespodem

determinardiferenteseventosdesincronização[Culler99]. Assim,diferentesse-

mânticase requisitosdeimplementaçãosãonecessáriosdeacordocomaspossí-

veisvariantesdo send/receive.

Page 20: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 9

2.2.1 Principais característicasdosclusters

Nosúltimosanosossistemasclusters têmsidovistoscomosoluçõesviáveispara

a construçãode aplicaçõesparalelase distribuídas,tantona comunidadeacadê-

micacomono meioempresarial.O usodeclusters nasoluçãodeproblemasque

exigem característicascomograndepodercomputacionale alta disponibilidade

tem merecidodestaquee ganhoa atençãode diversosgruposde pesquisa.Isso

sedeve àsvantagensapresentadaspor estaarquitetura,dentreasquaispodemos

destacar:

� Hardware debaixocustoe fácil aquisição:clusters podemserconstruídos

apartirdeestaçõesdetrabalhooudecomputadorespessoaisligadosatravés

deumarededealtavelocidade;

� Componentesde software padronizados:asbibliotecasde suporteà pro-

gramaçãobaseadaemtrocasdemensagens,comoo MPI (MessagePassing

Interface) e o PVM (Parallel Virtual Machine), e o usodesistemasopera-

cionaisnãoproprietários,comoo Linux, facilitame barateiamo desenvol-

vimentodeaplicaçõesparaseremexecutadasemclusters;

� Escalabilidade:dependendodaaplicação,podemosfacilmenteinseriroure-

tirar máquinasdo sistemacomputacionale obtermossignificativosganhos

dedesempenho.A inserçãoe remoçãodenósdeprocessamentomuitasve-

zesnãoacarretaemgrandesalteraçõesnosprogramasou namaneiracomo

estessãodesenvolvidos.Além disso,comumcustorelativamentepequeno,

podemosobtersignificativasmelhoriasnodesempenhodeprogramaspara-

lelosadicionandonovosnósdeprocessamentoaocluster.

Segundo[Moura99], um clusteré caracterizadocomoum sistemade processa-

mentoparalelooudistribuído,compostoporumconjuntodecomputadoresdistin-

tostrabalhandocomoum recursocomputacionalúnicoe integrado.Dependendo

da configuraçãodasmáquinasconstituintesdo sistema,estesistemade proces-

samentopodeserdito homogêneoou heterogêneo,sendoa primeiraclassifica-

çãoatribuídaàquelessistemascompostospor máquinasidênticas,enquantoum

sistemaheterogêneoé formadopor máquinasde configuraçõesdistintas. Desta

Page 21: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 10

Aplic. seq.

Rede de alta velocidade / switch

PC /workstation

Softwarecomunic.

PC /workstation

Inter. rede(hardware)

Aplicações paralelas

Inter. rede(hardware)

Softwarecomunic.

Inter. rede(hardware)

PC /workstation

Softwarecomunic.

Ambientes de prog. paralela

Middleware do cluster

Figura2.1: Arquiteturadeumcluster.

forma, cadanó de processamentopodeserumamáquinamonoou multiproces-

sadacomsuaprópriamemórialocal,dispositivosdeentradaesaídaeumsistema

operacional.

A Figura2.1 [Moura99] ilustraasprincipaiscaracterísticasdaarquiteturade

um sistemacluster. Comopodemosobservar, um conjuntode máquinasconec-

tadasatravés de uma rede local de alta velocidadee um switch sãoutilizadas

paraexecutaraplicaçõesseqüenciaise paralelas.Cadaumadestasmáquinas,por

exemplo,umPCouumaestaçãodetrabalho,possuisuaprópriainterfacederede,

responsávelporreceberetransmitirpacotesdedadosatravésdarededeintercone-

xão. Garantira fidelidadedosdadostransmitidosé umadasfunçõesdo software

decomunicação,queestádiretamenteligadoaosprocessosdeempacotamentoe

desempacotamentodasmensagenstransmitidas.

A criaçãoda imagemde um sistemade processamentointegradoe único é

umacaracterísticacomumenteobservadaemclusters. Tal imagemé geradacom

o suportedeummiddleware, quenãoapenaspossibilitao processamentoparalelo

Page 22: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 11

e distribuído mastambémpermitea execuçãode aplicaçõesseqüenciais.Desta

forma, asmáquinaspodemtrabalharcomoum sistemacomputacionalúnico ou

comocomputadoresindividuais.

Parapossibilitara execuçãode programasparalelos,é necessárioaindaum

ambientedeprogramaçãoadequado.Estesambientespodemenvolver, porexem-

plo, bibliotecasdepassagensdemensagens.

2.2.2 Implementaçãodo modelode passagemdemensagens

Na implementaçãodastrocasde mensagens,os detalhesde movimentaçãode

dadoscostumamserescondidosdo programadoremumabibliotecadepassagem

demensagens.Umacamadadesoftware, inseridaentreascamadasdasprimitivas

de comunicaçãoe o hardware do sistema,possibilitaao programadorconstruir

aplicaçõesparalelassemprecisarpreocupar-secompequenosdetalhesenvolvidos

nastransferênciasdedados.

Em [Culler99], sãodiscutidosalgunsaspectosdebaixonível referentesà im-

plementaçãodasoperaçõesde trocasde mensagens,queapresentamosa seguir.

Emboraestasoperaçõespoderiamserimplementadasdiretamentepor hardware,

suascaracterísticas(como, por exemplo, bufferização)sãomelhor tratadaspor

implementaçãodesoftware. Assim,emtodasasmáquinasparalelas,o modelode

programaçãoatravésdepassagemdemensagensé realizadocomumacamadade

software construídasobreumaabstraçãodecomunicaçãomaissimples.Primiti-

vasmaisbásicasdetransferênciadedadospodemserutilizadasparaimplementar

tal abstração,em umasoluçãosuportadadiretamentepor hardware. Uma outra

formadeimplementaçãodestaabstraçãoseriaconsiderarmosa adoçãodeum es-

paçode endereçamentovirtual compartilhado,permitindoqueascomunicações

sejamrealizadasatravésdeoperaçõesdeescritae leituraembufferscompartilha-

doseenvolvameventosdesincronizaçãoapropriados[Culler99].

2.2.3 Sincronizaçãoeendereçamento

O modelodeprogramaçãoatravésdepassagemdemensagenstemsidobastante

utilizadono desenvolvimentodeaplicaçõesparalelas,principalmenteemmáqui-

nasde memóriadistribuída. Geralmente,todosos processosexecutamcópias

Page 23: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 12

idênticasdeum únicoprograma[Culler99] e astrocasdemensagensconstituem

um poderosomecanismodesincronizaçãoentreprocessoscooperantes.

Um exemplodesincronizaçãoimplementadacomautilizaçãodemecanismos

detrocasdemensagenstrata-sedasoperaçõessend/receive. Cadaparsend/receive

podeestabelecerum eventodesincronizaçãoemum determinadopontodo pro-

gramaenvolvendoos processosemissore receptor. Operaçõesde comunicação

coletivastambémpodempermitir a sincronizaçãode processos,dependendoda

implementaçãorealizada.

Conformeé discutidoem[Culler99],emumamáquinadepassagemdemen-

sagens,umprocessadorpodereferenciarapenasendereçosemsuamemórialocal

e cadaum dosdemaisprocessadores.Assim,é permitidoa um processousuário

acessarseusendereçosprivadose transferirdadosusandoprimitivasde comu-

nicação.Cadaprocessopossuiseuespaçode endereçamentoprivado,ondesão

realizadasasoperaçõeslocaissegundoa ordemdeexecuçãodoprograma.

2.2.4 Modosde comunicação

Conformediscuidoanteriormente,asoperaçõesmaisutilizadasemsistemasbase-

adosemtrocasdemensagenssãoosendeo receive. Devidoaofatodeenvolverem

apenasdoisprocessos,umenviandoeoutrorecebendodados,estasoperaçõessão

chamadasponto-a-ponto.

Em diversassituaçõessurgea necessidadedeum processoenviar ou receber

dadosdeváriosprocessos,comoporexemplonocasoemqueummestredistribui

informaçõesou receberesultadosdeseusescravos. Operaçõesdecomunicação

coletiva podemserutilizadascomesteintuito, permitindotransferênciasdedados

nossentidosumparavários,váriosparaumeváriosparavários.A seguir listamos

algunsexemplosdecomunicaçõescoletivas:� um-para-vários: broadcastescatter;

� vários-para-um: gattere reduce;

� vários-para-vários: all-to-all.

As respectivassemânticasdestesexemplossegundoo padrãoMPI serãodescritas

naseção2.4.

Page 24: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 13

Umacomunicaçãosend/receivepodeaindaserbloqueanteounão-bloqueante.

Considerandoumaoperaçãode envio, por exemplo,costumamoscaracterizá-la

como bloqueantese o processoemissorfor impedidode proceguir suaexecu-

ção até que o buffer de dadosutilizado paratransmitir a mensagempossaser

reutilizado. O uso de operaçõesbloqueantespode levar a ocorrênciade dea-

dlocks, sendoresponsabilidadedo programadorevitar tais situações,contudoas

não-bloqueantessãomenosseguraspois permitemo reusode buffers queainda

estãosendoutilizadosemumacomunicação.Umadiferenciaçãomaisclaradestes

modosdecomunicaçãoé apresentadaaseguir [MPI Forum]:

� bloqueante: o retornodaprimitivaindicaqueo usuáriopodereutilizarcom

segurançaosrecursosespecificadosnachamada(comobuffers);

� não bloqueante: a primitiva poderetornarantesquea operaçãodecomu-

nicaçãocompletee antesqueo usuáriopossareutilizarosrecursosespeci-

ficadosnachamada.

2.2.5 Bibliotecasdesuporteàstr ocasde mensagens

No modelodeprogramaçãoparalelaatravésdepassagemdemensagens,costuma-

seutilizar bibliotecasapropriadascomosuporteà comunicaçãoentreos proces-

sos. Bibliotecasou interfacesde passagemde mensagens,como muitasvezes

tambémsãodenominadas,possibilitama construçãodeprogramasparalelosefi-

cientesparasistemasdememóriadistribuída[Moura99].

Tais bibliotecasoferecemdiversasrotinasparasuportara inicializaçãoe fi-

nalizaçãodo ambientee o envio e recebimentode pacotesde dados.Além das

tradicionaiscomunicaçõessende receive, algumasvariaçõesdestasoperações

costumamser implementadas,disponibilizandoformasde comunicaçãoponto-

a-pontocomdiferenteseventosdesincronizaçãoe,emalgunscasos,introduzindo

o usode buffers paraa execuçãodastrocasdemensagens.As operaçõesdeco-

municaçãocoletiva e asbarreirasconstituemoutrosimportantesmecanismosde

trocasde informaçõesoferecidos.Em síntese,podemosdizerquegeralmenteas

bibliotecasde passagemde mensagemimplementamoperaçõesponto-a-pontoe

Page 25: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 14

coletivas, bloqueantese não-bloqueantes,conformeos modosde comunicação

descritosnaseção2.2.4.

As interfacesmaisutilizadosnaprogramaçãoatravésdetrocasdemensagens

sãoo PVM (Parallel Virtual Machine) [Maui, Oak] e o padrãoMPI (Message

PassingInterface) [MPI Forum, Tennessee],definido pelo Fórum MPI. Ambas

procuramofereceraoprogramadoro suportenecessárioparao desenvolvimento

de aplicaçõesparalelaseficientesbaseadasem trocasde mensagense possuem

implementaçõesparaaslinguagensC, C++ e Fortran,alémdeJava cujo suporte

têm sidodesenvolvido [Pramanick99b].Contudo,tarefasdeparalelizaçãocomo

comunicaçãoe sincronizaçãoentreprocessos,particionamentoe distribuiçãode

dadose mapeamentodosprocessosentreosprocessadoresdisponíveis,aindafi-

camencarregadasaoprogramador[Moura99].

A maior desvantagemdo PVM em relaçãoao MPI trata-sedo desempenho,

fato quepor vezesestimulaprojetistase pesquisadoresa escolherema segunda

interface. Paraconseguir maiorflexibilidade,o PVM acabasacrificandoseude-

sempenho[Pramanick99a].O melhordesempenhodo MPI tem impulsionadoo

crescimentodesuapopularidadeeatualmenteesteéo padrãoadotadopelamaio-

ria doscentrosdepesquisae fabricantes.Estandoo presentetrabalhointeressado

emanáliseeprediçãodedesempenhodeprogramasparalelosMPI, nasseções2.3

e 2.4nósdescreveremosmaisdetalhessobreo padrãoe asprimitivasdecomuni-

caçãopor eledefinidas.

2.2.6 Desempenhodascomunicações

Um dosfatoresque influenciamfortementeo desempenhodasaplicaçõespara-

lelas baseadasem trocasde mensagensrefere-seao tempodespendidocom as

comunicações.O desempenhodascomunicações,por suavez,dependedediver-

soselementosconstituintesdo sistemacomputacional(comoascaracterísticasda

redede interconexão e dasmáquinasenvolvidas). Nestaseçãoanalisamoseste

desempenho,procurandoidentificaros principaiscomponentesdo tempode co-

municação.

A Figura2.2 [Hennessy96] ilustraosparâmetrosdedesempenhodeumarede

de interconexão. O overheaddeenvio e o overheadderecepçãodeumamensa-

Page 26: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 15

Overhead de envio

Time of flight Tempo de transmissão

Tempo de transmissão

Overhead de recepção

Latência de transporte

Latência total

Sender

Receiver

Figura2.2: Parâmetrosdedesempenhodeumarededeinterconexão.

gemindicamasfraçõesdetempoemqueosprocessadoresenvolvidosnacomu-

nicação,emissore receptorrespectivamente,ficamdedicadosàstarefasdedispo-

nibilizar e retirar a mensagemda redede interconexão. Duranteestetempoos

processadoresnãorealizamoutrosprocessamentos.

O temponecessárioparaque o primeiro bit alcancea interfacede rededa

máquinadedestinoé indicadopelocomponentenafiguradenominadocomotime

of flight. A somadestetempocom o tempode transmissão,duranteo qual o

restantedamensagempassaatravésdarede,constituia latênciadetransporte.Na

Figura2.2 podemosobservar melhorestecomportamente,alémde visualizara

latênciatotal dacomunicação.

Tratando-sedo desempenhode redesde interconexão, um dos termosmais

utilizadoséa larguradebanda(bandwidth). Geralmentemedidaemmegabitspor

segundos(Mbits/s), a largurade bandarefere-seà taxamáximasegundoa qual

a redepodepropagarinformaçãoe estádiretamenterelacionadacomo tempode

transmissãode umamensagem.Assumindoquenãoexistamoutrasmensagens

concorrendopelo usoda rede,o tempode transmissãoequivale ao tamanhoda

mensagemdividido pelalarguradebanda.

Definidosestestermose componentes,podemosindicar a latênciatotal de

umamensagempelaseguinteexpressão[Hennessy96]:����������� ����������������� ������ ��� � �!�" � �$#&% (')� ��*+*,� (-.� ��#0/,1�231�465�798�1:23;<46=>1@?A;<2B 1AC>?�D�CE1F8�;HGI1�4J8�1 #��� �"���K� ���L� �M�����A�EN��6O���Um erropor vezesobservadoemprojetosdeavaliaçãodedesempenhotrata-

sedaadoçãoda larguradebandacomoa únicamedidadedesempenhodarede.

Page 27: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 16

Porém,conformeé comentadoem[Hennessy96],paramuitasaplicaçõese redes,

a maior influênciana latênciadecomunicaçãodeumamensagemé exercidaso-

bretudopelosoverheadsdeenvio e recepção.

2.3 Característicasbásicasdo padrão MPI

Até algunsanosatráso desenvolvimento de aplicaçõesparalelase distribuídas

baseadasem trocasde mensagensnãosemostrava umasoluçãoatraenteaosfa-

bricantesde software. Um dos motivos disto relaciona-seà diversidadede bi-

bliotecasdisponíveisqueimplementavamo modelodeprogramaçãobaseadoem

passagemdemensagens,semcontudoexistir ummesmopadrãoaceitoeutilizado

pelosprojetistas.

Nestecontexto, o PVM e o padrãoMPI propiciaramnovos impulsosà dis-

seminaçãodo usode passagemde mensagensna construçãode aplicaçõespara

máquinasdememóriadistribuída.O padrãoMPI, criadomaisrecentemente,pos-

sibilita adiferentesfabricantesdesoftwareutilizar ummesmoconjuntodeprimi-

tivasdecomunicaçãoque,emborapossamapresentardiferentesimplementações,

sãodefinidassegundoumamesmasintaxeesemântica.As implementaçõesdopa-

drãoobviamentepossuemcaracterísticasinternasdistintas,porémdisponibilizam

a mesmainterfacedepassagemdemensagens.

O MPICH [Gropp] e o LAM [Ohio] sãoasmaisconhecidasimplementações

do padrãoMPI. Em [Nupairoj94], sãoapresentadosos resultadosde algunstes-

tesrealizadosemum clusterdeestaçõesde trabalho,utilizandoum conjuntode

benchmarksdesenvolvido paraavaliar operaçõesde comunicaçãoponto-a-ponto

e coletivas. Foramanalisadasquatroimplementaçõesdistintas(CHIMP, LAM,

MPICH e Unify) e, dentreasconclusõesdiscutidas,podemosdestacara escolha

do LAM comoa melhorimplementaçãodisponível considerandoo ambientede

testesutilizado.

No entanto,variaçõessignificativasdedesempenhopodemou nãoserverifi-

cadasentreimplementaçõesdiferentes,dependendodefatorescomoasmétricas

adotadasou ascaracterísticasdo ambientede teste.As própriasversõesanalisa-

dasconstituemum outroimportantefatora serconsideradonacomparaçãoentre

implementaçõesdopadrãoMPI. Parao desenvolvimentodopresentetrabalhonós

Page 28: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 17

Tabela2.1: TiposdedadosMPI eseuscorrespondentesnalinguagemC.MPI C

MPI_CHAR signedcharMPI_SHORT signedshort

MPI_INT signedintMPI_LONG signedlong

MPI_UNSIGNED_CHAR unsignedcharMPI_UNSIGNED_SHORT unsignedshort

MPI_UNSIGNED unsignedintMPI_UNSIGNED_LONG unsignedlong

MPI_FLOAT floatMPI_DOUBLE double

MPI_BYTE -MPI_PACKED -

enfatizamosos estudosna implementaçãoLAM, procurandocom issoelaborar

modelosde prediçãode desempenhomaisprecisos.Destaforma, na seção2.4,

descrevemosalgumasprimitivasdecomunicaçãoMPI incluindodetalhesquepos-

sivelmenteapresentempeculariedadesdistintasem outrasimplementações,de-

vido a característicasinternasdiferentes.

2.3.1 Tiposde dados

A comunicaçãode umamensagemMPI envolve a transmissãode umadetermi-

nadaquantidadededadosdeumtipo pré-definido.Destafoma,emumaoperação

decomunicaçãoo usuárionecessitaindicaro númerodeelementostransmitidos

e nãoa respectiva quantidadede bytesdamensagem,o quetornaestatarefa in-

dependentedascaracteríticasda máquinautilizada,pois não é requeridoo co-

nhecimentodo tamanhoembytesdoselementosenvolvidosnacomunicação.A

Tabela2.1apresentaosprincipaistiposdedadosMPI e seuscorrespondentesna

linguagemC [MPI Forum].

OsdoisúltimostiposapresentadosnaTabela2.1nãopossuemcorresponden-

tesna linguagemC. Enquantocadaelementode dadoMPI_BYTE é composto

exatamentepor um 1 byte, o MPI_PACKED na realidadeconstitui um tipo de

Page 29: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 18

dadosderivadoe permiteaousuárioempacotarelementoshomogêneosnãocon-

tínuosem um único buffer queseráenviado. Parao empacotamentoe posterior

desempacotamentodosdados,realizadoapósa recepçãodamensagem,o padrão

MPI apresentaas respectivasoperaçõesMPI_pack()e MPI_unpack(). Maiores

informaçõessobreoutrostiposdedadosderivadospodemserencontradosnade-

finiçãodo padrãoMPI [MPI Forum].

2.3.2 Communicators, contextosde comunicaçãoe grupos de

processos

Segundoa definiçãodo padrãoMPI [MPI Forum], os seguintesrequisitossão

esperadosemumabibliotecaparalelarobusta:

� criaçãode um espaçode comunicaçãoseguro, garantindoa execuçãode

operaçõesde comunicaçãosemqueocorramconflitoscom comunicações

nãorelacionadasàbiblioteca;

� permitir o usodeescopodegrupoparafacilitar a realizaçãodecomunica-

çõescoletivas;

� identificaçãodosprocessosusuáriosatravésdenomesabstratos;

� permitiraousuárioouconstrutordabibliotecaestendernotaçõesdomodelo

depassagemdemensagens.

Com vistasà satisfaçãodestesrequisitos,o padrãoMPI inclui entresuasdefini-

çõesosconceitosdecommunicators, contextosdecomunicaçãoe gruposdepro-

cessos.EmumprogramaMPI, umaoperaçãodecomunicaçãoéexecutadadentro

deumdeterminadocontexto, queéespecificadoporumcertocommunicatore in-

dicaospossíveisprocessosreceptoresdamensagem.A seguir apresentamosuma

brevedescriçãodecadaumdestesconceitos[MPI Forum].

Grupos de processos

Um grupodeprocessosconstituiumacoleçãoordenadadeprocessos,ondecada

um destespossiuumaidentificaçãoúnica(um númerointeiro,denominadorank,

Page 30: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 19

iniciandoem0). Um processopodepertencera maisdeum grupoe, nestecaso,

possuirdiferentesranks.

Contextosde comunicação

O conceitode contexto permiteparticionaro espaçode comunicação,de forma

quea operaçãodeenvio deumamensagempossaserdirecionadaa um grupoes-

pecíficodeprocessos.Mensagensenviadasdentrodeumcontexto nãopodemser

recebidasemoutro. Além disso,convémressaltarquecontextosnãoconstituem

objetosMPI, masprecisamserindicadosemtodasasprimitivasdecomunicação

atravésdeum parâmetrodenominadocommunicator.

Communicators

Um communicatortrata-sedeumobjetoMPI queprovêo escopoapropriadopara

a execuçãodeumaoperaçãodecomunicaçãoMPI. Tal operaçãopodeserexecu-

tadadentrodeum únicogrupodeprocessos,utilizandoum intra-communicator,

ou podeconstituirumacomunicaçãoponto-a-pontoenvolvendodoisgruposdis-

tintos(indicadapelousodeum inter-communicator). Podemoscitar comoexem-

plosdeintra-communicatorspré-definidospelopadrãoo MPI_COMM_WORLD

e o MPI_COMM_SELF, sendoa abrangênciado primeirotodososprocessosen-

volvidosnaexecuçãodoprogramaMPI eadosegundoapenaso próprioprocesso.

2.4 Primiti vasdecomunicaçãoMPI

2.4.1 Comunicaçãoponto-a-ponto

O padrãoMPI disponibilizaum conjuntode primitivaspararealizaroperações

decomunicaçãoponto-a-pontobloqueantese não-bloqueantes(Tabela2.2). Tais

primitivasdiferenciam-seprincipalmentepor implementaremdiferentesmecanis-

mosde sincronismoentreos processosenvolvidos (o receptore o emissor),ou

pelousodebuffersnoprocessodetransmissãodamensagem.

Comopodemosobservar na Tabela2.2, os parâmetrosutilizadosnasprimi-

tivasbloqueantes(MPI_Send,MPI_Bsend,MPI_Rsende MPI_Ssend)sãoexa-

Page 31: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 20

Tabela2.2: Operaçõesdecomunicaçãoponto-a-pontoMPI.Operação PrimitivaMPI

Sendpadrão MPI_Send(&buf, count, dtype, dest, tag,comm);

Sendbuffered MPI_Bsend(&buf, count, dtype, dest, tag,comm);

Sendready MPI_Rsend(&buf, count, dtype, dest, tag,comm);

Sendsíncrono MPI_Ssend(&buf, count, dtype, dest, tag,comm);

Sendnãobloqueante MPI_Isend(&buf, count, dtype, dest, tag,comm,&req);

Receivebloqueante MPI_Recv(&buf, count, dtype, source, tag,comm,&status);

Receivenãobloqueante MPI_Irecv(&buf, count, dtype, source, tag,comm,&req);

tamenteos mesmos.Em umaoperaçãode comunicaçãoponto-a-pontoMPI, o

processoemissorenvia umcertonúmerodeelementos(count) deumdeterminado

tipo (dtype) parao processoreceptor(dest). Osdadosa seremenviadosdevemes-

tar no buffer deenvio buf ea variável destidentificao receptordentrodo grupode

processosindicadopelocommunicatorcomm. Existeaindaum outro importante

parâmetro,chamadotag, quepodeserusadocomoumaidentificaçãoda mensa-

gemtransmitida. A seguir podemosvisulizar melhorestesparâmetrosem uma

chamadadaprimitivaMPI_Send:

MPI_Send(void * buf, int count, MPI_Datatype dtype,

int dest, int tag, MPI_Comm comm)

Sendoo nossoenfoquenestetrabalhoasformasde comunicaçãobloqueante,a

seguir apresentamosumadescriçãodosquatromodosdesendbloqueantes(stan-

dard, buffered, synchronouse ready). InformaçõessobreasprimitivasMPI não-

bloqueantese suasrespectivassemânticaspodemserencontradasnasreferências

do padrãoMPI .

Page 32: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 21

Standard send

O sendpadrãotrata-sedo modode comunicaçãomaisutilizadoparao envio de

umamensagementredoisprocessosMPI. A operaçãoé dita bloqueantepois,ao

serexecutada,elaapenaspoderáretornarapósa mensagemter sidoarmazenada

comsegurança,sendoentãopermitidoaoprocessoemissorreutilizaro buffer de

envio [MPI Forum]. Ainda segundoasdefiniçõesdo FórumMPI, a mensagem

podesertransmitidadiretamenteparao buffer do receptorou simplesmenteser

copiadaemum buffer desistema,sendorealmentetransferidaaoseudestinoem

um segundomomento. É de responsabilidadedo MPI decidir quandoos dados

envolvidos em umacomunicaçãosãoou nãoarmazenadoslocalmente;por isso,

podemosdizerqueaprimitivadecomunicaçãopodeounãobloqueardependendo

desuaimplementação.

Conformecomentadoem[Al-Tawil01], o comportamentodosendpadrãonão

édefinidoprecisamentepeloMPI. Assim,sepretendemoscompreendero quere-

almenteocorredurantea transmissãodeumamensagemnestemododecomuni-

cação,precisamosanalizarasparticulariedadesdaimplementaçãoMPI utilizada.

Apósestudarmoso códigoda implementaçãoLAM, verificamosquea primitiva

MPI_Sendpodeou nãobloqueardependendo,dentreoutrosfatores,do tamanho

da mensagemtransmitidae do númerodemensagenspendentesa seremrecebi-

daspeloprocessodedestino.Assim,épossívelqueaoexecutarmosumaprimitiva

MPI_Sendemum programaLAM o emissorencerrea operaçãoantesdatransfe-

rênciadosdadospelarede.

Buffered send

A principal diferençado buffered sendem relaçãoaosdemaismodosde send

estáno usodeum buffer dedadosparaondea mensagemé copiadaantesdeser

transmitida.O usuáriodeve criar estebuffer explicitamente,atravésde funções

específicasdisponibilizadaspelo MPI, antesde chamara primitiva MPI_Bsend.

É responsabilidadedousuáriodefinirumbuffer suficientementegrandeparaalojar

amensagemtransmitidaecuidarparaqueestenãosejareutilizadoindevidamente,

evitandoaocorrênciadeerrosou asobreposiçãodedados.

O tempodespendidopelo processoemissorem umacomunicaçãono modo

Page 33: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 22

buffered tendea sermenoremrelaçãoaosdemaissendsbloqueantes.Issoacon-

tecepois, ao contráriodasoperaçõesMPI_Send,MPI_Ssende MPI_Rsend,a

ocorrênciade umaprimitiva MPI_Bsendem um programanãoexige a existên-

cia de umaoperaçãode recepção(MPI_Recv)paraa suacorretafinalização.A

mensagemésimplesmentecopiadaparao buffer, deondeserátransmitidaaores-

pectivo receptor, eo processoemissorpodecontinuarsuaexecuçãonormalmente.

Poroutrolado,anecessidadedaalocaçãodestebuffer geraumoverheadquepode

sersignificativo dependendodo tamanhoda mensagem.Assim,casoo objetivo

do usuárioao utilizar o MPI_Bsendsejaobtermelhordesempelho,talvez uma

alternativamelhorpossaseroferecidapelosendnão-bloqueante.

Synchronous send

A operaçãoMPI_Ssendpodeserinicializadacomousemaocorrênciado respec-

tivo MPI_Recv, massomentepoderáserfinalizadaquandoo receptorcomeçara

recebera mensagemenviada[Tennessee].Destaforma,o MPI garantequeaofi-

nal daexecuçãodaoperaçãodeenvio o processoreceptoratingiuum certoponto

desuaexecuçãoeo buffer doemissorpodeserreutilizado[MPI Forum].

Ready send

No modoreadydo sendbloqueanteaoperaçãodecomunicaçãosomenteteráiní-

cio quandohouverumreceptoresperandoamensagem.Quandoocorreumacha-

madadaprimitivaMPI_Rsend,o MPI verificaaexistênciadarespectivaoperação

MPI_Recve,casoa respostasejanegativa,acomunicaçãofica aguardando.Caso

contrário,a transmissãodamensagemé estabelecidae umavezencerradaa pri-

mitivaseráfinalizada.

Convémnotarmosa diferençaentreoseventosdesincronismoestabelecidos

pelosmodosíncronoe ready. Enquantono primeiro temosa transferênciados

dadose emseguidaa sincronizaçãodosprocessos,no readyosprocessosdevem

estarsincronizadosantesdo início datransmissãodamensagememsi.

Page 34: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 23

Tabela2.3: PrincipaisoperaçõesdecomunicaçãocoletivaMPI.Operação PrimitivaMPI

Broadcast MPI_Bcast(&buf, count,dtype,root,comm);Scatter MPI_Scatter(&sendbuf, sendcount,sendtype,&recv-

buf, recvcount,recvtype,root,comm);Gather MPI_Gather(&sendbuf, sendcount,sendtype,&recv-

buf, recvcount,recvtype,root,comm);Reduce MPI_Reduce(&sendbuf, &recvbuf, count,dtype,op,

root,comm);Barreira MPI_Barrier(comm);All-to-all MPI_Alltoall(&sendbuf, sendcount, sendtype,

&recvbuf, recvcount,recvtype,comm);

Receive bloqueante

Osquatromodosdecomunicaçãoponto-a-pontobloqueantediscutidosnestase-

çãorequeremamesmaprimitivaparaa recepçãodosdados,apresentadaabaixo:

MPI_Recv(void * buf, int count, MPI_Datatype dtype, int

source, int tag, MPI_Comm comm, MPI_Status * status)

Conformeé comentadona definiçãodo padrãoMPI [MPI Forum], a primitiva

MPI_Recvnãoexige a finalizaçãodo respectivo sendparacompletarsuaexecu-

ção. Porém,é claroqueelasomenteteráinício apósa inicializaçãodaoperação

send.

2.4.2 Comunicaçãocoletiva

As primitivasdescritasa seguir oferecemsuporteàscomunicaçõescoletivasem

um programaMPI. Sãoclassificadascomo operaçõescoletivas aquelasenvol-

vendoum grupo de processos[MPI Forum]. Na Tabela2.3 podemosconferir

algumasdestasoperaçõeseasprimitivasMPI correspondentes.

Enquantonasoperaçõesponto-a-pontoo emissore o receptorprecisamreali-

zarchamadasdeprimitivasdistintas(por exemploMPI_Ssende MPI_Recv, res-

pectivamente),nasoperaçõescoletivasosprocessosenvolvidosutilizamamesma

primitiva. A distinçãoentrequalé o processoemissor(ou emissores)e quaissão

Page 35: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 24

Scatter

Gather

Reduce

Broadcast

P PP PQQ RRSS

TTUU VW

rank 0rank 1rank 2rank 3

Figura2.3: Operaçõesdecomunicaçãocoletiva.

os receptores(ou receptor)é dadapelo parâmetroroot, segundoa semânticada

operação.O grupodeprocessosparao qualaoperaçãocoletivaédirecionada,por

suavez, é indicadoatravés do parâmetrocomm, especificandoo communicator

utilizado.

Conformeé discudona definiçãodo padrão[MPI Forum], a finalizaçãode

umaprimitivacoletivaindicaqueobuffer utilizadonacomunicaçãopodeseraces-

sadocomsegurança,emboranãonecessariamentetodososprocessosenvolvidos

tenhamcompletadoaoperação(ou atémesmoa iniciado).Estainformaçãonãoé

válidaparaa operaçãoMPI_Barrier, ondeocorreexplicitamentea sincronização

dosprocessos.Porém,paraosdemaiscasos,sugerequepodemoster ou nãoter

um eventodesincronismoassociadoàocorrênciadacomunicaçãocoletiva.

Nassubsessõesseguintesnósdescrevemosasprincipaisoperaçõescoletivas

MPI, listadasnaTabela2.3. As respectivassemânticasdo broadcast, do scatter,

do gatheredo reducepodemaindaserobservadasnaFigura2.3 [Ohio].

Broadcast

A operaçãobroadcast, cuja primitiva MPI é apresentadaabaixo,caracteriza-se

comoumacomunicaçãocoletivado tipo um-para-vários,ondeo processoroot en-

via umamesmamensagema todososprocessosdo grupo,inclusive elemesmo.

Assimcomoocorrecomasdemaisoperaçõescoletivas,é comumo usodeope-

raçõesponto-a-pontoemsuaimplementaçãoe a formadedistribuiçãodosdados

Page 36: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 25

podevariardependendodo algoritmoutilizado.

MPI_Bcast(void * buf, int count, MPI_Datatype dtype,

int root, MPI_Comm comm)

Scatter e gather

Nasoperaçõesscattere gatherasmensagenstransmitidassãodiferentes,aocon-

trário do queocorrecom o broadcast. As comunicaçõessãoclassificadas,res-

pectivamente,comoum-para-váriose vários-para-um.Quandoo MPI_Scatteré

executado,o root divideaquantidadededadossendcountpelonúmerodeprocessos

pertencentesaogrupoeentãoenvia mensagensdiferentesa todososparticipantes

dogrupo,inclusiveaelemesmo[Ohio]. Paraosdemaisprocessos,osparâmetros

do emissor(sendbuf, sendcounte sendtype) nãosãosignificantes.

A semânticadaoperaçãogatheré o opostodo scatter. Assim,cadaprocesso

envia sendcountelementosdo tipo sendtypeao root, querecebeosdadose osarma-

zenasegundoa ordemdos ranks. Convém ressaltarque tantono MPI_Scatter

comono MPI_Gatheros tiposdenotadospelosparâmetrossendtypee recvtypede-

vem ser compatíveis e o númerode elementosenviadosé sempreigual ao de

recebidos.

Ambasasprimitivasrequeremexatamenteos mesmosparâmetros.Abaixo

apresentamossuasrespectivasdefinições:

MPI_Scatter(void * sendbuf, int sendcount, MPI_Datatype

sendtype, void * recvbuf, int recvcount,

MPI_Datatype recvtype, int root, MPI_Comm comm)

MPI_Gather(void * sendbuf, int sendcount, MPI_Datatype

sendtype, void * recvbuf, int recvcount,

MPI_Datatype recvtype, int root, MPI_Comm comm)

Reduce

A primitiva MPI_Reduceestabeleceuma comunicaçãocoletiva do tipo vários-

para-um,ondeo processoroot recebedadosenviadospelosdemaisintegrantesdo

grupoe realizaumaoperaçãodereduçãosobreestesdados.Todososprocessos

devemespecificaramesmaoperaçãodereduçãoatravésdoparâmetroop. Alguns

Page 37: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 26

A2

A1

A3

A0

B2

B1

B0

B3

C2

C1

C0

C3

D2

D1

D0

D3

A0 A1 A2 A3

D0 D1 D2 D3

B0 B1 B2 B3

C0 C1 C2 C3

rank 0

rank 1

rank 3

rank 2

All−to−all

Figura2.4: Operaçãocoletivaall-to-all.

exemplossão:calculara somaou o produtodoselementos,encontraro mínimo

ou o máximoeasoperaçõeslógicasAND eOR.

MPI_Reduce(void * sendbuf, void * recvbuf, int count,

MPI_Datatype dtype, MPI_Op op, int root, MPI_Comm comm)

Barreira

UmabarreirapodesercriadaexplicitamenteemumprogramaMPI atravésdapri-

mitiva MPI_Barrier, permitindoa sincronizaçãodetodososprocessosdo grupo.

Ao executara primitiva,o processofica bloqueadoatéquetodososprocessosdo

grupo especificadopelo communicatorcomm tenhamrealizadouma chamadaa

estaprimitiva.

MPI_Barrier(MPI_Comm comm)

All-to-all

O all-to-all constituiumaoperaçãodecomunicaçãovários-para-váriose, emsua

execução,cadaprocessoenvia partesdistintasde um conjuntode dadosparaos

demaisintegrantesdo grupo(Figura2.4 [MPI Forum]). A quantidadedeelemen-

tosquecompõea mensagemé divididapelonúmerodeparticipantesdacomuni-

cação(X ) e,emseguida,cadaumadestaspartesédestinadaaobuffer deumcerto

receptor. Destaforma, todoprocessoenvia e recebeX�Y[Z diferentesmensagens

fazendousodaseguinteprimitiva:

MPI_Alltoall(void * sendbuf, int sendcount,

MPI_Datatype sendtype, void * recvbuf, int

recvcount, MPI_Datatype recvtype, MPI_Comm comm)

Page 38: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 2. PROGRAMAÇÃO COM TROCA DE MENSAGENSE MPI 27

2.5 Consideraçõesfinais

Nestecapítulo,discutimosalgunspontosimportantesdomodelodeprogramação

baseadoempassagemdemensagens.As caracteríticasdosclusters e detalhesda

implementaçãodo modeloforamdescritos,assimcomoquestõesrelacionadasao

desempenhodasoperaçõesdecomunicação.

Em umasegundapartedo texto, abordamoso padrãoMPI e seusmodosde

comunicação.Dentreasprimitivasdisponibilizadaspelo padrão,descrevemosa

sintaxeeasemânticadasprincipaisoperaçõesponto-a-pontoecoletivas.

Page 39: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 3

ANÁLISE E PREDIÇÃO DE

DESEMPENHO

3.1 Intr odução

A buscapormelhoresdesempenhosparaaplicaçõesparalelastemimpulsionadoo

desenvolvimentodetécnicasemetodologiasvisandoreduzirostemposdeexecu-

çãodestasaplicações.Tratando-seespecificamentedesistemasbaseadosempas-

sagemdemensagens,tantoo tempogastocomcomputaçõeslocaiscomotambém

a influênciadascomunicaçõesnodesempenhodaaplicaçãodevemserconsidera-

dos.

Paraobtermosprogramasparaleloseficientes,é importanteexplorarcorreta-

menteascaracterísticasdasarquiteturasparalelase o paralelismoimplícito nas

aplicações.Nesteintuito, aspesquisasnasáreasdeanálisee prediçãodedesem-

penhopodemauxiliar os projetistasa identificarpossíveis razõesde temposde

execuçãoruinsou fornecerparâmetrosparaaelaboraçãodecódigosmaiseficien-

tes.

Contudo,o desenvolvimentode atividadesrelacionadasà análisee predição

dedesempenhodeveatenderacertoscuidadoseutilizar técnicasapropriadas.As-

pectoscomo,por exemplo,a escolhadastécnicasa seremutilizadase a correta

aplicaçãodestasconstituempontosessenciaisparao sucessodo processodeaná-

lise epredição.

28

Page 40: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 29

Nestecontexto, o presentecapítuloabordadiversospontosimportantesem

estudosdeanáliseeprediçãodedesempenho.Discutimos,entreoutrostópicos,os

principaiserroscometidosnaavaliaçãodedesempenho,asatividadesenvolvidas

nestesestudosealgunsconceitosenvolvidos.Sãoaindadescritosalgunstrabalhos

relacionados.

3.2 Fatoresa seremconsiderados

Osprocessosdeanáliseeavaliaçãodedesempenhocostumamserrealizadoscom

objetivosdeobtençãodeexplicaçõesparadesempenhosruinsou a melhoriades-

tes. Contudo,por causade erroscometidosnesteprocessoou devido a nãouti-

lizaçãocorretade técnicasapropriadas,muitasvezesos resultadosalcançados

mostram-seincapazesdeatingir taisobjetivos.

Porissoéimportanteprocurarmosconhecerquaissãooserrosmaiscometidos

nestesprocessos,tentandoaprendercomoevitá-los. Comesteintuito, nassubse-

çõesa seguir comentamosalgunsdesteserrose discutimostécnicasquepodem

auxiliar a realizaçãodeatividadesenvolvidasnãosomentecomanálisee avalia-

ção,mastambémcomprediçãodedesempenho.

3.2.1 Err oscometidosna avaliaçãoeprediçãodedesempenho

Em[Jain91] sãoidentificadosdiversoserrosfreqüentementeobservadosemproje-

tosdeavaliaçãodedesempenho.Dentretaiserros,podemosdestacarosseguintes:

Falta de objetivos

É fundamentalparaum bomprojetoidentificarcorretamenteseusobjetivos. Ati-

vidadescomodefiniçãodemétricas,caracterizaçãodoworkloadeescolhadame-

todologiadependemdestesobjetivos,o quesalientaa importânciadesedefini-los

nasfasesiniciaisdoprojeto.Além disso,osobjetivostraçadosdevemserclarose

nãotendenciosos,evitando-senortearasatividadesdaavaliaçãodedesempenho

como intuito de sealcançarconclusõespré-determinadas(por exemplo,o obje-

tivo de seprovar queum sistemaé melhorqueoutro podeinduzir a adoçãode

certasmétricasemdetrimentodeoutras,conduzindoaconclusõeserrôneas).

Page 41: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 30

Falhasna definiçãode parâmetros,métricase workloads

As métricas,os parâmetrose o workloadconstituemimportanteselementosem

um projeto de avaliaçãode desempenho.Muitas vezesos analistasfalhamna

adoçãodecritériosadequadosparaa identificaçãodesteselementos,definido-os

arbitrariamente.

As métricasadotadas(tempode resposta,por exemplo) indicam o critério

usadoparacaracterizaro desempenhodosistema,enquantoosparâmetrospodem

servistoscomocaracterísticasdo sistemae do workloadqueafetamo desempe-

nho(porexemplo,o númerodeusuários)[Jain91].Um errocomumnaseleçãode

métricase parâmetrosé escolheraquelesmaisfáceisdeseremmedidos,embora

nãosejamosmaisrelevantes.

Segundo[Oed81],o workloadde um sistemaconstituiastarefas,transações

e dadosa seremprocessadosemum determinadoperíododetempo,ou simples-

menteademandadetrabalhorequeridapelosusuários.Destaforma,podemosdi-

zerqueelerepresentao volumedetrabalhoaoqualo sistemaésubmetido,como,

porexemplo,o fluxo depacotesenviadosourecebidosatravésdeumarede.Con-

siderandoesteexemplo,o workload usadona comparaçãoentreredesdistintas

deve consistirde pacotesde tamanhossemelhantesaostrocadoshabitualmente

emaplicaçõesreais.

Escolhaequivocadada técnicadeavaliação

A escolhada técnicaa serutilizadaparaanalisaro desempenhodo sistemapre-

cisaconsiderar, entreoutrosaspectos,o estágiode desenvolvimentoem quese

encontrao sistema,o tempodisponível pararealizaçãodasatividadesdeanálise,

a precisãodesejadae o custoenvolvido [Jain91]. Contudo,é comumum analista

preferir umadeterminadatécnicapor desconhecerou saberpoucosobreoutras

técnicaspossíveis,ignorandoestesaspectos.Algumasdasprincipaistécnicasuti-

lizadasparaavaliaçãoeprediçãodedesempenhosãodiscutidasnaseção3.4.

Um outrofatorimportanteaserconsideradonaadoçãodeumatécnicarefere-

sea suacomplexidade. Quandoduasanálisesdistintasapresentamos mesmos

resultados,é maisconvenienteoptarpor aquelamaissimples[Jain91].A simpli-

cidadede um modelotendea facilitar suaimplementaçãoe, em outro extremo,

Page 42: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 31

objetivos difíceis de seremalcançadosou muito ambiciosospodeminviabilizar

projetosdemediçãoedesimulação.

Falhasna análisedosresultados

Nãobastacoletargrandesquantidadesdedadosdedesempenho,é precisosaber

interpretarestasinformaçõesparaqueo processodeavaliaçãoproduzaresultados

concretos.Além disso,nãodevemosignorarainfluênciadeparâmetrosdosistema

edoworkloademquestão,evitando-sedestaformaconclusõesprecipitadassobre

a validadedaaplicaçãodosresultadosobtidosemambientescomcaracterísticas

diferentes.

3.2.2 Consideraçõessobrea construçãode modelos

Modelospodemserdefinidoscomocoleçõesde atributose regrasqueregemas

interaçõessobreestesatributos [Mullender93]. A criaçãode modelospermite

abstrairas característicasfundamentaisde um certo sistema,representandotal

sistemadeformaorganizadaefacilitandoestudosdeanáliseeprediçãodedesem-

penho.

Conformeé discutidoem [Meira95], modelosprovêemumamaneiraestru-

turadaparacompreenderproblemasde desempenho,alémdepossuirhabilidade

depredição,permitindoestimarosefeitossobreo desempenhocausadospor di-

ferentesparalelizaçõesou variaçõesno ambientede execução.Aumentandoou

reduzindoo númerodeatributose regrastratadasé possível construirdiferentes

modelosparaumamesmaaplicaçãoe, destaforma, variar o nível de abstração

adotado.O nível deabstração,queindicao graudedetalhamentodarepresenta-

ção,emmuitoscasosé aindaum fatordeterminanteparaa complexidadedo mo-

delo. Geralmente,um númeromaiordeparâmetrostratadosindicaa elaboração

deummodelomaisprecisoedemaisbaixonível, aopassoquerepresentaçõesde

maisalto nível deabstraçãocostumamapresentar-semaissimplesporémmenos

precisas.

Contudo,construirum modelocapazde representaradequadamenteum sis-

temacomplexo nãoé umatarefa trivial. Abstraçõesdesistemasparalelosdevem

ser simpleso suficienteparaseremtratáveis e suficientementedetalhadaspara

Page 43: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 32

seremprecisas[Meira95]. A elaboraçãodo modeloexige compreensãodo sis-

temaanalisadoe podepriorizaralgumascaracterísticasemdetrimentodeoutras,

dependendodosobjetivosqueo processodemodelagemsepropõeaalcançar.

Segundo[Hu97], doisprincípiosprecisamsersatisfeitosporumbommodelo:

ele deve descrever corretamenteo comportamentodo sistema,incluindo todos

os detalhesnecessáriosque definemestecomportamento,e deve aindaser tão

simplesquantopossível. Assim,naconstruçãodeummodeloprecisamosprocurar

minimizar o númerode parâmetrosenvolvidos, facilitandoa suaaplicaçãosem

comprometera suarepresentatividade. A inclusãode novosparâmetrostendea

melhorara acuráciado modelo,porém,um númeroelevadodelespodetornaro

modelointratável.

3.2.3 Seleçãode métricasecaracterizaçãodo workload

A seleçãodemétricaseacaracterizaçãodoworkloadsãoduasetapasimportantes

emtrabalhosdeanálisee prediçãodedesempenho.Comofoi mencionadoante-

riormente,aexecuçãodestasetapasdependedapréviaidentificaçãodosobjetivos

do projeto. Falhasna definiçãodosobjetivos,comoaquelasdiscutidasanterior-

mente,podemprejudicaraseleçãodemétricasmaisconvenientesoucomprometer

a corretacaracterizaçãodoworkload.

Em estudosdedesempenhodevemosprimeiramenteselecionarasmétricasa

seremadotadas,considerandoa situaçãoou problemaem particulara serresol-

vido [Hu97]. Exemplosde métricasgeralmenteutilizadasincluemo tempode

resposta,o númerode requisiçõesde serviçosexecutadaspor unidadede tempo

(throughput) ea utilizaçãodeumrecurso(fraçãodetempoemqueo recursoestá

ocupadotratandoasrequisições)[Jain91].

A definiçãodo workload tambémé umatarefa bastantedependentedaspar-

ticulariedadesdo sistemaanalisado.Diferentessistemascostumamexigir wor-

kloadsvariados,como,por exemplo,um determinadonúmerode instruçõesde

adiçãoaseremexecutadasouumcertoconjuntodefunçõesrepresentandoopera-

çõescaracterísticasdeumaaplicaçãoparticular(usodebenchmarks) [Jain91].

Em muitoscasoso workloadrealdo sistemaé bastantecomplexo e difícil de

sercaracterizado,criandoa necessidadedeseutilizar modelosdeworkload. Tais

Page 44: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 33

modelosdevemsatisfazerosseguintesrequisitos[Hu97]:

� o modelodeve executaras mesmasfunçõesdo workload real, de forma

proporcionaleutilizandoosmesmosrecursosdosistema;

� eledevesuportarmodificaçõesereproduções,facilitandosuautilizaçãoem

diferentesestudos;

� paraqueo workloadpossaserportável a outrossistemas,o modeloprecisa

aindasercompacto.

3.3 Medição,análisee prediçãodedesempenho

Nãoé comumencontrarmosnaliteraturamuitostrabalhospreocupadosemesta-

belecerdistinçõesclarasentremedição,análisee prediçãode desempenho.Por

vezesos pesquisadoresdesenvolvem trabalhosagregandoatividadesdestastrês

áreas(como,por exemplo,é comuma utilizaçãodemediçõescomoapoioà aná-

lise eprediçãodedesempenho).

Em[Crovella94] éapresentadaaseguinteclassificaçãoparaostrabalhosrela-

cionadosa estasáreas:

� Ferramentasdemediçãodedesempenhoe técnicasparaprogramasparale-

los;

� Técnicasdeanálisededesempenhoparaprogramasparalelos;

� Técnicasdeprediçãodedesempenhoparaprogramasparalelos;

Enquantoostrabalhosclassificadosnasduasprimeirasáreasgeralmentenãoofe-

recemsubsídiossuficientesparapredizero desempenhodosprogramas,astécni-

casdeprediçãoprocuramprever temposdeexecuçãoconsiderandoprogramase

máquinasespecíficas.Segundo[Crovella94], umatécnicadeprediçãodedesem-

penhodeve incluir um componentedeanáliseestática,queconsideraa estrutura

do programa,e um componentedeanálisedinâmica,capazdeobteroscustosde

Page 45: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 34

execuçãodesteprogramaparaum determinadoambientee umamáquinaespecí-

fica. Paraobterestesvalores,a modelagemdinâmicapodefazerusodetécnicas

demedição.

As ferramentasde mediçãoprovêm informaçõesreferentesao desempenho

da aplicação,comotemposde execução,procurandoassimindicar aspossíveis

razõesdedesempenhosruins. Poroutro lado,a análisededesempenhocostuma

apresentarestudosassintóticos,avaliandoasvariaçõesdo desempenhofrentea

alteraçõesno tamanhodo problemae no númerodeprocessadoresenvolvidosna

execuçãodeumaaplicação.

3.4 Ati vidadeseabordagensempregadasna análise

e prediçãodedesempenho

As atividadesenvolvidasnaanáliseeprediçãodedesempenhodesistemasparale-

lospodemvariardependendodosobjetivostraçadosinicialmente.Taisatividades

costumamutilizar técnicasparaconstruçãode modelos,simulaçõese medições.

Conformediscutimosnestaseção,a escolhadeumaou outratécnicapodeainda

dependerdo estágiodedesenvolvimentoemqueseencontraaaplicação.

Mediçõessãoobtidasa partir deexecuçõesdaaplicaçãoe, portanto,suauti-

lizaçãoexige queo sistemaestejaaomenosparcialmenteimplementado.Instru-

mentandoo códigofontedeumaaplicação,porexemplo,podemosextrair tempos

deexecuçãoerealizaravaliaçõesdedesempenhoapartirdosvaloresmedidos.Os

cuidadosa seremobservadosematividadesdemediçãodedesempenhoincluem

acorretaseleçãodosparâmetrosdeentradaesaídaea formacomoosparâmetros

desaídadeveriamsermedidos[Kant92].

Porvezesé comumo usode técnicasdesimulaçãoparaa análisededesem-

penhodesistemasaindanãoimplementados.Nestescasos,a simulaçãopodeser

utilizadaparaavaliar a viabilidadecomputacionalde umaaplicaçãoou compa-

rar possíveis implementações.Tambémé comumo usodesimulaçõesquandoé

necessárioestudarparâmetrosde desempenhodifíceis de seremobtidosatravés

de instrumentação,por exemplo,devido a limitaçõesde cache [Meira95]. Con-

tudo,umadasdesvantagensquerestringeo usodetaistécnicasrefere-seaocusto

Page 46: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 35

dasimulação.Simulaçõesdesistemasparaleloscomplexoscostumamdemandar

muito tempoemmáquinasseqüenciais[Hu97].

Paraasimulaçãodeumsistema,costuma-seconstruirummodeloparao com-

portamentodosistemaedirecioná-locomumaabstraçãoapropriadadoworkload

[Kant92]. Ainda segundo[Kant92], os seguintesfatoresdevem ser considera-

dos: (i) o quesimulare o nível dedetalhe(issoteráforte influênciano custoda

simulação);(ii) podesernecessárioutilizar técnicasestatísticasparaanalisaras

grandesquantidadesdedadosgerados;e (iii) um projetoexperimentalcuidadoso

é essencialparamantero custodasimulaçãobaixo.

A construçãode modelosmuitasvezestambémé realizadaantesda imple-

mentaçãodaaplicação.Contudo,astécnicasdemodelagemsãobastanteúteisna

avaliaçãode desempenhode programastotal ou parcialmenteimplementadose

têmsidoobjetodeestudodediversospesquisadores.A metodologiautilizadaem

nossotrabalhopararealizarprediçõesdedesempenhodeprogramas,porexemplo,

é baseadano usodetécnicasdemediçãoparaobtençãodetemposdeexecuçãoe

naconstruçãodemodelosanalíticosapartir dostemposmedidos.

Tantoa análisecomoa prediçãode desempenhocostumamutilizar técnicas

demodelagemcomosuporteaoseudesenvolvimento. De formageral,podemos

identificarduasabordagensprincipaisparaa modelagemdeaplicaçõesparalelas

[Meira95]:

� Bottom-up: a modelagemdo sistemaé realizadaatravésdeum conjuntode

parâmetrosoufunçõesrepresentandoo software, o hardwareeasinterações

envolvidas(algunsimportantesexemplosdestaabordagemsãoastécnicas

demodelagemanalítica);

� Top-down: tambémdenominadamodelagemestrutural,estaabordagemcon-

sideracomoponto inicial a própria aplicaçãoa sermodeladae obtémas

informaçõesnecessáriasatravés de descriçõesde usuáriosou análisesde

compilação(um bomexemplotrata-sedamodelagemporanáliseestática).

As seçõesseguintesdescrevemum poucomaisdetalhadamenteduasdasprinci-

paistécnicasutilizadasnamodelagemdesistemasparalelos:modelagemanalítica

e estrutural.

Page 47: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 36

3.4.1 Modelagemanalítica

As característicasdeum sistemaparalelosãoabstraídasnamodelagemanalítica

comoum conjuntode parâmetrosou funçõesparametrizadas[Meira95]. O sis-

temaé descritoemtermosdefunçõese equações,ou inequações,quepodemser

utilizadastantoparaaanálisecomoparaaprediçãodedesempenho.

O conjuntodeequaçõese fórmulasqueconstituemum modeloanalíticodes-

crevemo funcionamentodamáquinae daaplicaçãodeum modoabstrato[Li01].

O nível de abstraçãoé determinadopelosparâmetrosutilizadosna modelagem,

sendoqueo usodemaisparâmetrosintensificao detalhamentodomodeloe,con-

seqüentemente,reduzseunível deabstração.

Os parâmetrosadotadostambémdeterminama precisãoda modelagemdo

sistema. Simplificaçõespodemser realizadasno modeloeliminando-sealguns

parâmetros,o quetendeafacilitarasuaaplicaçãoemborapossareduzirasuaacu-

rácia.Em outroextremo,um modelocorreo riscodesetornarintratável quando

um grandenúmerodeparâmetrosestáemuso. Além disso,muitasvezesalguns

destesparâmetrossãodifíceis de seremobtidos,aumentandosubstancialmente

o custoda modelagem.Segundo[Meira95], a modelagemanalíticapodeainda

apresentarasseguintesvariações,considerandoa possibilidadede sesubstituir

parâmetrosescalarespor funçõesou ferramentasestatísticas:

� Modelagemcomparâmetrosescalares:osparâmetrossãovaloresescalares

capazesdeexpressaro comportamentodo sistemasobcertascondições;

� Modelagemcom funções:a substituiçãode valoresescalarespor funções

matemáticasmelhoraaflexibilidadeeexpressividadedomodelo,maspode

aumentarsuacomplexidadedevido principalmenteà necessidadedesede-

terminara formaeoscoeficientesdasfunções;

� Modelosestatísticos:nestecaso,ferramentasestatísticas(comocadeiasde

Markov ou redesdePetri)sãoutilizadase amodelagemcaracterizao com-

portamentoassintóticodo sistema.

Apesarde oferecerflexibilidade, as ferramentasestatísticasapresentammaior

custodeutilizaçãoe exigemconhecimentosespecíficos,dosquaisa maioriados

programadoresnãodispõem.

Page 48: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 37

A simplicidaderequeridaemmodelosanalíticosnãoconstituinecessariamente

um obstáculo,maspodeoferecervantagens.Conformeé discutidoem[Kant92],

modelosmaissimplestendema sermaisrobustosqueaquelesmaiscomplexos,

sãomaisfáceisdeseentender, ajustare modificare emmuitassituaçõesosparâ-

metrosdeentadaou osresultadosdesejadosnãosãobemdefinidos,dificultando

o tratamentodeparâmetrosmaisdetalhados.

3.4.2 Modelagemestrutural

Comomencionamosanteriormente,na modelagemestruturalo pontode partida

é a aplicaçãoem si. O modelogeradoé capazde abstrairo desempenhode um

sistemacomoum conjuntodecomponentese um modelotop-level, quedescreve

as relaçõesentreestasrepresentações[Schopf98]. Podemosentãodizer que a

modelagemestruturalpermitedecomporumaaplicaçãoemcomponentes,repre-

sentandoestescomponentesemmodelosdistintose asrelaçõesentreelesemum

modelodealtonível.

Paraa construçãodo modelo,as informaçõespodemserobtidasatravésde

descriçõesdeusuáriosou análisesdecompilação.Assim,em[Meira95] a mode-

lagemestruturalédivididaem:

� Modelagemestruturalbaseadaemdescrição:o modeloé baseadoemuma

descriçãodo programae consistede um grafo de tarefas,ou equivalente,

descrevendoo paralelismoda aplicaçãoe algunsparâmetrosexpressando

ascaracterísticasdo hardware;

� Modelagemestruturalatravésde análiseestática:requerapenaso código

fontedoprograma,podendoutilizar ferramentasdeanáliseestáticaquege-

ralmentesãopartesde ambientesde compilação.Contudo,o desenvolvi-

mentodestasferramentasé custosoe a acuráciado modeloé restritapor

elas.

As técnicasdemodelagemanalíticae estruturalnãosãomutuamenteexclusivas,

pelo contrário,elaspodemsercombinadasbuscando-semelhoresresultados.A

estruturada aplicaçãoe a análiseestáticapodemprover informaçõesdifíceis de

Page 49: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 38

seobtere quesãorequeridasdo usuárionosmodelosanalíticos[Meira95]. Essa

combinaçãopermitea obtençãoderepresentaçõesmelhorelaboradase maispre-

cisas.

3.5 Trabalhos relacionados

3.5.1 Culler et al

O modeloLogP[Culler93] foi propostono intuito decaracterizaradequadamente

os principaisfatoresde desempenhoem máquinasparalelasde memóriadistri-

buída. Estimuladopelatendênciadecrescimentono usodestasmáquinas,o tra-

balhodesenvolvido por Culler et al podeserutilizadonamodelageme no estudo

deaplicaçõesbaseadasemtrocasdemensagens.Paraisso,o modeloenfatizaos

aspectosdedesempenhorelacionadosà rededeinterconexãoe procurasintetizá-

los nosseguintesparâmetros:

� L: latênciaenvolvidanatransmissãodamensagematravésdarede;

� o: overheadrelacionadoàstarefasdeenvio e recepçãodamensagem(du-

ranteesteintervalo de tempoo processadorencontra-sededicado,nãopo-

dendoexecutaroutrasoperações);

� g: denominadodegap, esteparâmetrotrata-sedo tempomínimoquedeve

serrespeitadoentretransmissõesou recepçõesconsecutivas;

� P: númerodenósdeprocessamento.

Atravésdosparâmetroscitados,o modeloLogPprocuraauxiliar a construçãode

algoritmosparaleloseficientese portáveis. O trabalhoaindadescreve algumas

experiênciasno desenvolvimentodealgoritmoscompatíveiscomo modelo,além

de suasrespectivasimplementaçõesem umamáquinabaseadaem passagemde

mensagens(ThinkingMachinesCM-5).

Assimcomodiscutimosnasubseção2.2,dentreos fatoresqueinfluenciamo

desempenhodarededeinterconexãosurgema latência(antesdenominadalatên-

cia de transporte)e os overheadsde envio e recepção.Contudo,o trabalhode

Page 50: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 39

Cullerdestingueumnovo parâmetro,o gap, quenaanáliseapresentadanasubse-

ção2.2estariapossivelmenteinclusonosoverheads.

3.5.2 Xu eHwang

Xu e Hwang[Xu96] desenvolveramum modeloanalíticoparaestimaro desem-

penhodeprimitivasdecomunicaçãoexecutadassobreumamáquinaIBM SP2.O

modeloapresentado,quepodemosvisualizarabaixo,consideraa latênciadarede\A]_^>`ba, a larguradebandac.d ^>`ba e o tamanhodamensageme comoparâmetros

parao cálculodo tempode comunicação.A latênciae a largurade bandasão

estimadasemtermosdonúmerodenósenvolvidosnaoperação(`

).

\gfh\A]_^�`3a3i ec.d ^>`baDestaforma,sãoobtidasequaçõeslinearesparacaracterizarprimitivasponto-

a-pontoe modeloslogarítmicosparacomunicaçõescoletivas. A modelagemde

primitivasérealizadacomo apoiodediversasmediçõesdedesempenhoexecutas

no IBM SP2,variandoo tamanhodasmensagense o númerodenósenvolvidos.

Atravésdeum ajustedecurvassobreostemposmedidos,equaçõesmatemáticas

sãoentãoconstruídase adequadasaomodeloapresentadoacima.

Osresultadosdescritosno artigodemonstrama acuráciadosmodelosanalíti-

cos,geradoscomaaplicaçãodetécnicasdemediçãoeajustesdecurva. O trabalho

utilizou nostesteso MPICH,doArgonneNationalLaboratory, eabibliotecaMPL

daIBM.

3.5.3 Abandah eDavidson

Um outro trabalhoanalisandoo desempenhodascomunicaçõesno IBM SP2foi

desenvolvido por Abandahe Davidson [Abandah96]. Os seguintesfatoresde

influênciano tempodespendidoem comunicaçõessãoconsiderados:overhead

de escalonamento(tempoparaalocaçãoe liberaçãode processos),passagemde

mensagem(tempogastocomastransferênciasdedadosatravésdarededeinter-

conexão)e overheaddesincronização(tempoenvolvido coma sincronizaçãode

processos).

Page 51: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 40

Dentreestesfatores,os autoresressaltamquea maior influênciaé exercida

pelo tempogastocom astransferênciasde dadosvia rede. A modelagemdeste

tempoérealizadacomaelaboraçãodeequaçõesparaasprimitivasponto-a-ponto,

emfunçãodo tamanhodamensagem,e paraascoletivasemtermosdo tamanho

damensagemedonúmerodeprocessadores.Assimcomonotrabalhocomentado

nasubseçãoanterior, AbandaheDavidsonutilizammediçõese técnicasdeajuste

decurvasnoprocessodeconfecçãodosmodelosanalíticos.

Contudo,estetrabalhoapresentaumimportantediferencialnosmodeloscons-

truídos. O domíniodostamanhosde mensagenstransmitidasé dividido em re-

giõese sãoobtidasequaçõesquevariamconformea região. Paramensagensde

umadeterminadafaixadebytesexistemrespectivasequaçõesparaestimarostem-

posdasprimitivasdecomunicação.Variandoa quantidadedebytestransmitidos

poderemosincidir emum outro intervalo e, nestecaso,os temposdasprimitivas

podemsercalculadoscomo usodeoutrasequações.O trabalhoapresentaainda

umalgoritmoemaltonível deabstraçãopropondoqueasregiõessejamdelimita-

dassegundoum métodopuramenteexperimental:iniciadaumaregiãocomdois

pontos,novospontossãoadicionadosincrementalmentee a acuráciado modelo

é testada.Uma nova região serádefinidaquandoa margem de erro observada

ultrapassarumnível pré-determinado.

3.6 Metodologiapropostapor Li

O trabalhodesenvolvido por Li [Li01] apresentaumametodologiaparaanálisee

prediçãodedesempenhodeprogramasMPI. O objetivo principaldametodologia

estána prediçãode temposde execução,atravésdo desenvolvimentode grafos

e modelosanalíticoscapazesde representarascomunicaçõese ascomputações

locais.Sãopropostosalgunselementosgráficosparaexpressaradequadamenteo

comportamentodeprogramasbaseadosempassagemdemensagens,a partir das

quaisépossível aelaboraçãodeequaçõesdeprediçãodedesempenho.

Assim,sãomescladastécnicasdasmodelagensanalíticae estrutural.O res-

tantedestaseçãodescreveascaracterísticasprincipaisdametodologia,bemcomo

osprocedimentosenvolvidosnoprocessoestabelecidopelasuaaplicação.

Page 52: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 41

3.6.1 Modelagematravésde classesde grafos

A metolologiapropostapor Li apresentaextensõessobreos grafosde tempos

definindoduasnovasclassesde grafos,denominadasDP*Graphe T-graph*. A

partirdocódigofontedeumprogramaparalelosãoconstruidosgrafoscapazesde

representarsuaestrutura,facilitandoa realizaçãodeanálisesestruturaiseestudos

comobjetivosdeavaliaçãoeprediçãodedesempenho.

O processodemodelagematravésdestasclassesdegrafospermitecaracterizar

umprogramaemdoisníveisdeabstração.EnquantoacriaçãodegrafosT-graph*

possibilitaum estudodaaplicaçãoemalto nível, a representaçãodamesmaapli-

caçãoem DP*Graphpermiteumaanálisemaisdetalhadaem quecadapassoda

seqüênciadeexecuçãopodeseridentificado.

Como intuito deisolarosefeitosnão-determinísticosdacontençãonarede,as

comunicaçõessãoanalisadasisoladamente.Ospontosdentrodo códigodo pro-

gramaondeocorremsincronizaçõesoucomunicaçõesexplícitassãoidentificados,

destacadose osseustemposdeexecuçãosãocomputadosemseparadodascom-

putaçõeslocais.Estasexecuçõeslocais,realizadasentredoispontossucessivosde

comunicação,sãoabstraídascomoum conjuntodesegmentosdecódigoe, desta

forma, os temposde cadaum destesconjuntostambémpodemsercomputados

separadamente.

A criaçãodasclassesde grafosT-graph* e DP*Graph,bemcomoa adoção

dapropostadeseefetuarprediçãodedesempenhoutilizandoaconcepçãodedois

níveis,procurampermitir queprogramasparalelosimplementadoscomo padrão

MPI possamserrepresentadosde forma completae precisa.As duaspróximas

seçõesdescrevem sucintamenteasclassesde grafosT-graph* e DP*Graph,in-

cluindoassimbologiasutilizadase algunsdetalhessobrea confecçãodosmode-

los.

3.6.1.1 Representaçãode baixo nível

Conformeapresentadonaseção2.4,o padrãoMPI defineum conjuntodeprimi-

tivasdecomunicaçãopararealizarastrocasdemensagensemsistemasparalelos

e distribuídos. Com o emprego do conjuntode estruturasda classede grafos

DP*Graph,apresentadona Figura3.1, podemosrepresentarascomunicaçõese

Page 53: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 42

(4) aresta

(3) operação de recebimento do nó nn

(6) operação Todos−a−Todos

(1) segmento de código sequencial

(2) operação de envio ao nó nn

(5) nó

Figura3.1: EstruturasdaclassedegrafosDP*Graph.

execuçõeslocaisdeumprogramaMPI edetalharasuaseqüênciadeexecução.

O emprego destasestruturaspossibilitarepresentarum programaparaleloba-

seadoem trocasde mensagens,incluindo assuascomunicaçõesexplícitas. Os

trechosseqüenciaissãorepresentadospelocomponente(1), aopassoqueoscom-

ponentes(4) e (5) sãofundamentaisparaexpressarpossíveisfluxosdeexecução

do programae indicar determinadospontosentreexecuçõesdistintas. As estru-

turas(2) e (3) indicam,respectivamente,o envio de dadosparao nó de proces-

samenton e a recepçãodedadosprovinientesdeum certonó n (por exemploas

operaçõessendereceive). As operaçõesdecomunicaçãoenvolvendotodososnós

deprocessamentodo sistemasãoexpressadaspelocomponente(6).

3.6.1.2 Representaçãode alto nível

A representaçãodeum programaMPI embaixonível tornaa elaboraçãodeseu

modeloT-graph*quaseimediada,vistoqueasocorrênciasimportantes(comoco-

municaçõese trechosdecódigoseqüenciais)já foramidentificadase a seqüência

de execuçãodo programaencontra-seesclarecidae explicitada. O conjuntode

estruturasdaclassedegrafosT-graph*éapresentadoaseguir naFigura3.2.

As estruturas(1), (3) e (4) sãoanálogasàquelasapresentadasna Figura3.1.

Assim,asimbologiaT-graph*apresentaapenasumnovo componenteemrelação

à classedegrafosDP*Graph;o símbolo(2) indicaum subgrafo,podendoseruti-

lizadopararepresentarumconjuntoqualquerdeinstruções,epermiteaabstração

Page 54: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 43

(2) subgrafo

(3) aresta

(1) segmento de código sequencial

(4) nó

Figura3.2: EstruturasdaclassedegrafosT-graph*.

Predição dedesempenho

programa em umsistema NOW

execução doInstrumentação e

Resultadosexperimentais

MPIPrograma Representação

do programacom DP*Graph

Representaçãodo programa

com T−graph*

Figura3.3: Metodologiadeanálisee prediçãodedesempenho[Li01].

dedetalhesdeumdeterminadotrechodecódigoemummodelodemaisaltonível.

3.6.2 Aplicaçãoda metodologia

A metodologiadeanáliseeprediçãodedesempenho,descritanestasseções,deve

seraplicadasegundoalgunspassosestabelecidose utilizar um conjuntodenota-

çõesoferecidas.As estruturasapresentadaspelasclassesdegrafosDP*Graphe

T-graph*,anteriormentedescritas,constituemtaisnotações.O esquemaapresen-

tadonaFigura3.3 ilustraaaplicaçãodametodologia.

A partir do códigofontedeumprogramaparalelobaseadoemtrocasdemen-

sagenséconstruídaumarepresentaçãoDP*Graph.Tal representaçãopossibilitaa

obtençãodo modeloemalto nível T-graph*e facilita a instrumentaçãodo código

fontecomprimitivasparamedirostemposdeexecuçãodosdiversostrechosque

compõemo programaestudado.O processode mediçãode desempenhopros-

segue executando-sea nova versãodo programa,agorainstrumentado,em um

sistemaNOW. Os resultadosexperimentaisobtidos,bemcomoa versãodo có-

Page 55: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 44

digo instrumentado,sãofundamentaisparaa geraçãode modelosanalíticosque

serãoutilizadosnarealizaçãodeanáliseseprediçõesdedesempenho.

Ospassosa seguir detalhammelhoro processoenvolvido pelametodologia,

conformeédescritoem[Li01]:

1. Apósumaanáliseinicial doprogramaparalelo,éconstruídaasuarepresen-

taçãoembaixonível utilizandoasestruturasdaclassedegrafosDP*Graph.

2. Observando-sea suarepresentaçãoem baixonível, o programaparaleloé

instrumentado,permitindoa realizaçãodemediçõesdostemposgastosnas

comunicaçõesenasexecuçõeslocais.Temposdeexecuçãopodementãoser

obtidos,executando-seaversãoinstrumentadadoprogramanoambientede

estaçõesde trabalhocomvariaçõesno númerodenósdeprocessamentoe

no tamanhodo problema.Destaforma,sãocomputadostemposdeexecu-

çãoparacadaum dostrechosdo programacom execuçõeslocaisou com

comunicação,emdiversasconfiguraçõespossíveis.

3. Com os temposexperimentaisobtidosna passoanterior, sãoconstruídas

equaçõesquecaracterizamostemposdeexecuçãodecadaum dostrechos

doprogramainstrumentado.Ostemposgastosemcomunicaçõespodemser

caracterizadosporequaçõesmatemáticasemtermosdotamanhodamensa-

gemedo númerodeprocessosenvolvidos,atravésdaaplicaçãodetécnicas

deajustedecurvas.Paraostrechosdelimitadospor comunicaçõessucessi-

vas,tambémsãogeradasequaçõescapazesdecaracterizaradequadamente

seusrespectivos temposde execução.O tempototal do programaé então

dadoporummodeloanalítico,compostopelasomatóriadostemposdecada

trecho.

4. O modeloanalíticoconstruídono passoanteriorpermitea realizaçãode

prediçõesdetemposdeexecução,considerandoo programainteiroou ape-

nasalgunsde seustrechos. Para isso, deve-sefixar o númerode nós de

processamentoe variar o tamanhodo problemaou, analisandoumaoutra

possibilidade,mantero tamanhodo problemafixo e alteraro númerode

nós.

Page 56: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 45

5. Umaoutrarepresentaçãodo programaparalelo,utilizandoa classedegra-

fos T-graph*,podeserelaboradapartindo-sedarepresentaçãodebaixoní-

vel geradaanteriormente.Estemodeloemalto nível possibilitavisualizar

o possível fluxo de execuçãodo programa,porémsemexplicitar maiores

detalhescomoascomunicaçõesrealizadas.

3.6.3 Cálculo do tempo deexecuçãodeum programa paralelo

Conformediscutidonasubseçãoanterior, o tempototal deum programaé forne-

cido por um modeloanalíticoresultantedasomatóriadasequaçõesquerepresen-

tamostemposdecadatrechodo programa.É necessário,portanto,analisarcada

umdestetrechosousegmentoseconstruirequaçõescapazesdeexpressaradequa-

damenteseuscomportamentos.Paraisso,os temposde execuçãodo programa,

obtidosatravésde testesexperimentaisno ambientedeestaçõesde trabalho,são

utilizadoscomoparâmetrose comunicaçõese computaçõeslocaisdevemseres-

tudadasisoladamente.

Os temposdespendidosem computaçõeslocais podemser calculadosatra-

vésdeanálisesde complexidadedosalgoritmosutilizados. Sendoo enfoqueda

nossapesquisajustamenteo tempogastocomcomunicações,nãonosdeteremos

emmaioresdetalhessobrea construçãodeequaçõesparaostrechosseqüenciais;

porém,convémressaltarqueo cálculodo tempodeum determinadotrechodeve

considerartodasasoperaçõesnelerealizadas.

Um mesmosegmentopodeserexecutadoparalelamentepor diversosproces-

sosouosprocessosdeumprogramapodemestarrealizandodiferentesoperações

emparalelo.Nestescasos,precisamosanalisaro fluxo deexecuçãodecadapro-

cessoenvolvido, calculandoseusrespectivos temposdeexecuçãocomoa soma-

tória deseustemposparciais,e o tempototal do programaserádeterminadopela

maiordassomatóriaencontradas.Considerandoo programacujasrepresentações

T-graph* e DP*GraphsãoilustradaspelaFigura3.4, o tempototal de execução

equivaleaomáximoentreostemposdosnós0 e1:

jlk ] knmpo f e[qrHsut ewv ^ sbx i suy i suz.{}|9x i |�y i |~z a

Page 57: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 46

(2)DP*Graph(1)T−graph*

S1

S2 S3

S4

S1

S2 S3

S4

X1 Y1

X3

X2 Y2

Y3

nó 0 nó 1

Figura3.4: Exemplodecálculodo tempodeexecuçãodeumprograma.

3.6.4 Componentesdo tempo decomunicação

O tempogastocomcomunicaçõesconstituiumimportantefatoraserconsiderado

noestudoenaanálisedeaplicaçõesparalelasprojetadasparaclustersdeestações

de trabalho. Conformediscutimosna subseção2.2.6,estetempoé influenciado

por diversosfatorescomoa larguradebandadarededeinterconexão,o tamanho

damensagemtransmitidae, principalmente,osoverheadsenvolvidosno envio e

no recebimentodamensagem.Em [Li01] sãodefinidostrêscomponentesparao

tempodecomunicaçãodeumamensagemden elementos:

� \A��^�`3a : tempoparatransportarn dadosdamemórialocalparaa interfacede

rede(tempodeenvio);

� \ k ^>`ba : tempoparatransferirn dadosatravésdarededeinterconexãoentre

doisnósdeprocessamento(tempodetransferência);

� \��_^�`3a : tempoparatransportarn dadosdainterfacederedeparaa memória

local (tempoderecebimento).

Page 58: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 3. ANÁLISE E PREDIÇÃO DE DESEMPENHO 47

deRede

interconexão

Buffer localde envio

Memória local Memória local

de recebimentoBuffer local

(1)

(2)

(3)

Nó BNó A

Figura3.5: Representaçãodoscomponentesdo tempodecomunicação.

A Figura3.5 ilustra o processoenvolvido na transmissãode umamensagem

entredois nós de processamento,indicandoas respectivas fasesreferentesaos

temposdeenvio (1), transferência(2) e recebimento(3). Destaforma,o tempode

comunicaçãodeumamensagemdetamanhon édadopelaexpressão:

\A�6^>`3a}f�\A��^>`ba3i�\ k ^�`3a3i�\��.^>`ba

3.7 Consideraçõesfinais

As duasprincipaisabordagensutilizadasna modelagemde sistemasparalelos

(analíticae estrutural)foram comentadasnestecapítulo. Alguns fatoresperti-

nentesà corretarealizaçãodasatividadesde análisee prediçãode desempenho

tambémforam disticudos,incluindo erroscometidose outrosdetalhesa serem

destacados.

Além disso,apresentamosde forma sucintaalgunstrabalhosrelacionados,

procurandodestacarcontribuiçõeseobservaçõesmaisrelevantesaonossoestudo.

Dentreos trabalhosrelacionados,o maiordestaquefoi dadoa umametodologia

de análisee prediçãode desempenhopropostapor Li [Li01]. Tal metodologia,

baseadanousodemediçõesdetemposexperimentaisemodelagemanalíticacom

fins deanáliseepredição,foi utilizadaparaaobtençãodosmodelosapresentados

noscapítulos4 e5.

Page 59: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 4

MODELA GEM DE PRIMITIV AS

PONTO-A-PONTO

4.1 Intr odução

A análiseeprediçãodedesempenhodeprimitivasdecomunicaçãorequeraelabo-

raçãodemodeloscapazesdecaracterizardiversosfatoresenvolvidosnatransmis-

sãodamensagem,muitasvezesretratandoa influênciaexercidapelosalgoritmos

utilizadosna implementaçãodasprimitivas. Assim,faz-senecessárioum estudo

da implementaçãoMPI, procurandoidentificardetalhesrelacionadosà maneira

comoasoperaçõesdecomunicaçãosãoconcretizadas.

AtravésdacaracterizaçãodasprimitivasMPI consideradasnestetrabalho,pro-

curamosobtermodelosdeanálisee prediçãoprecisose simples,possibilitandoa

corretadescriçãodo comportamentodestasprimitivase a realizaçãodepredições

detemposdeexecuçãocomrazoável acurácia.Paraisso,sãoutilizadasalgumas

técnicasdeajustedecurvassobretemposexperimentaiscoletadose,destaforma,

elaboramosmodelosanalíticosconsistindodeum conjuntodeequaçõesemfun-

çãodo tamanhodamensagemcomunicadae,noscasosdecomunicaçãocoletiva,

tambémdo númerodeprocessosenvolvidos.

O processodeanálisee prediçãoestabelecidopelametodologiapropostapor

Li [Li01], comentadanocapítuloanterior, combinatécnicasdemodelagemanalí-

ticaemediçõesdetemposdeexecução.Como usodeanálisesestruturaisdoscó-

48

Page 60: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 49

digosdosprogramasestudados,torna-sepossível acorretainstrumentaçãodestes

programasutilizandomedidoresdetempoe,apósisso,mediçõesdedesempenho

sãorealizadasemum cluster. Em nossotrabalho,executamosum procedimento

semelhanteeobtivemosasequaçõesaplicandoaindaummétododeajustedecur-

vassobreostemposcoletados.

Além daaplicaçãodestastécnicas,foi necessárioo desenvolvimentodepro-

gramasespecíficoscomo objetivo derealizarmediçõesdostemposdespendidos

nascomunicações.A elaboraçãodestesprogramase a posteriorcoletagemde

tempospararealizarosajustesdecurvasforamrealizadasno LaboratóriodeAr-

quiteturae SoftwareBásico,fazendousodosrecursoscomputacionaisdescritos

naseção4.4.Nestecapítulo,iniciamoscomumadescriçãodoscuidadoseproce-

dimentosadotadosem nossotrabalho,visandoo cumprimentocorretodasativi-

dadesdemedição,análisee prediçãoe, conseqüentemente,a elaboraçãodemo-

delosrobustos.Em seguidaapresentamosa caracterizaçãodasprimitivasponto-

a-ponto,incluindoasanálisesrealizadas,os modeloselaboradose os resultados

obtidos.

4.2 Procedimentose ferramentasadotadas

Em um trabalhode mediçãode desempenho,esperamosobter dadosque refli-

tamcorretamenteo comportamentodo sistema,podendoserutilizadosposterior-

mente,por exemplo,emum processodeavaliaçãoou modelagem.Paraalcançar

esteobjetivo, é aconselhável a adoçãodecertoscuidadosdurantea obtençãoe o

tratamentodosdados,procurandoeliminar anormalidadese selecionarasinfor-

maçõesrealmentesignificativas.

Algumasanormalidadescostumamocorrerdurantea execuçãodeprogramas

baseadosem passagemde mensagensdevido a fatoresprovenientesda redede

interconexão ou, com menosfreqüência,influênciasestranhasà aplicaçãoob-

servadasnascomputaçõeslocais. Considerandoo primeiro caso,anomaliasno

desempenhodascomunicaçõespodemser provocadas,por exemplo, quandoa

execuçãodeoutrosprogramaslevaaocongestionamentodarede.Parao segundo

caso,o tempodeumacomputaçãolocalmedidoemummomentodeinstabilidade

do sistemaoperacional,por exemplo,podeapresentarum valor incoerentecomo

Page 61: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 50

comportamentonormaldo programa.Contudo,devemossalientarqueé preciso

estudarascausasdestasanormalidadesantesde descartarmosdadosobtidosno

processode medição,garantindocom issoa corretacaracterizaçãoda aplicação

estudada.Se um dosobjetivos da mediçãoé justamentecaracterizaro desem-

penhodascomunicaçõesquandoo tráfego na redeé intenso,devemossimular

situaçõescomumcomportamentosemelhanteaodesejado.

Nassubseçõesseguintesdiscutimososprocedimentosadotadosemnossotra-

balhoparaa realizaçãodasmediçõesdedesempenho.Além disso,apresentamos

naseção4.2.4umaferramentautilizadacomosuporteaoprocessodetratamento

dosdadoseconstruçãodosmodelosanalíticos.

4.2.1 Tratamento de outliers

Muitasvezes,emumprocessodemediçãodedesempenho,obtemosumconjunto

variadodedadossendonecessárioidentificaraquelesquenãotraduzemo compor-

tamentonormaldo sistemae descartá-los.Porexemplo,aorealizarmosdiversas

execuçõesde umamesmaprimitiva de comunicaçãopodemosnosdepararcom

temposdistintos,algunsdelesrefletindoa influênciade fatoresestranhos(como

asanormalidadescomentadasanteriormente).Segundo[Jain91], asobservações

incompatíveiscoma maioriadosresultadosobtidospodemserconsideradasou-

tliers.

Ao encontrarmosoutliers duranteasmedições,antesdedecidirmosdescartar

ou considerartais observaçõesprecisamosprocurarcompreenderos fatoresque

possivelmentecausaramvariaçõesnosresultados.Sepor um ladoa inclusãode

umdeterminadooutlier podeacarretaremalteraçõessignificativasnasconclusões

de um processode análise,suaexclusãotalvez conduzaà obtençãode conclu-

sõesequivocadascasoos valoresdescartadosrepresentemobservaçõescorretas

[Jain91].

Como as medidasde desempenhocoletadasem nossostestestratam-sede

temposdespendidosem operaçõesde comunicação,os outliers sãoocasionados

principalmenteporoscilaçõesnodesempenhodarededeinterconexão.Tendoem

vistaa corretarepresentaçãodasprimitivasMPI, duranteo processodemedição

procuramosutilizar técnicascapazesde selecionaradequadamenteos tempose

Page 62: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 51

minimizarasvariaçõesobservadas,conformediscutimosaseguir.

4.2.2 Mediçãodostemposdecomunicação

Quandouma mesmamensagemé transmitidapor diversasvezesconsecutivas,

possivelmenteo sistemaoperacionalmantémos dadosconstituintesda mensa-

gemnamemóriacachee osreutilizenastransmissõesconseguintes.Esteproce-

dimento,emborasejacomumentepraticadopelosistemacomvistasàmelhoriade

desempenho,podemascararo overheadenvolvido na comunicaçãopois tendea

eliminaro temponormalmentegastoparaacessarosdadosnamemóriaprincipal

e copiá-losparaacache. Porisso,deformasemelhanteaotrabalhodesenvolvido

porLuecke,Raffin eCoyle sobredesempenhodeprimitivasdecomunicaçãocole-

tivaMPI [Luecke99],procuramosevitar esteprocedimentoforçandoaatualização

dacachesemprequeumamensagemfosseretransmitida.Coma intercalaçãode

execuçõesde outrosprogramasentreas retransmissões,esperamosmelhorara

caracterizaçãodo tempodespendidonafaseinicial deumacomunicação.

Outroscuidadosaindaforamtomadosparaevitar oupelomenosminimizaras

influênciasdeoutrasaplicaçõesedosistemaoperacional,comoasanormalidades

discutidasanteriormente,quepodemfavorecero surgimentodeoutliers. Tantoa

rededeinterconexãocomoasmáquinasenvolvidasnasexecuçõesforamutiliza-

dascomexclusividadedurantearealizaçãodasmedições.Paracadaconfiguração

testada(por exemplo,umaoperaçãobroadcastde500mil inteirosenvolvendo8

processos),umaquantidadeconsiderável deexecuçõesfoi realizada,variandoen-

tre 30 e, na maioriadoscasos,50 testes.Cadanó de processamentoenvolvido

alojava apenasum processo,sendo,portantoo númerodemáquinasequivalente

aodeprocessos.

Dentreos temposmedidosem cadaconjuntode testes,os valoresmaiores

eramdescartadose a médiados temposera calculadaconsiderandoapenasos

menoresvalores.Conforme[Xu96], osmenorestemposgeralmentesãoosmais

precisospoissofrerammenorinfluênciado sistemaoperacionale deoutrasapli-

cações.Assim,dependendodadistribuiçãoobservadaentreosvaloresmedidos,

selecionamosaquelesqueestivessemabaixode um determinadolimite (equiva-

lentea1,8vezeso menortempo),calculandoemseguidaamédiasobreaseleção

Page 63: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 52

realizada.

Umaoutrapolíticadeseleçãopossível seriaconsiderarmosostempossituados

no intervalo de\�� Y�� a

\���i � , sendo\��

e � o valor médioe o desviopadrão

respectivamente.Contudo,o nossomaior objetivo no processode mediçãoera

simplesmentea obtençãode valorescapazesde representarapropriadamenteo

desempenhodasprimitivasMPI, descartandoostemposmuito elevados,por isso

nãonosdetivemosdemasiadamentenaescolhadamelhorpolítica,apenasseleci-

onamososvaloresabaixode1,8vezeso menortempo.

O processode mediçãoexecutadoseguiu estescuidados,utilizandoaindao

ambientecomputacionaldescritona seção4.4 e algunsprogramasinstrumenta-

doscommedidoresdetempo,queserãocomentadosnaseção4.3. Destaforma,

esperamosobtertemposmédioscapazesde refletir adequadamenteo comporta-

mentodascomunicações,propiciandoaconstruçãodemodelosmaisprecisos.

4.2.3 Construçãodosmodelosanalíticos

A construçãodosmodelosanalíticosfoi possibilitadacom o usode técnicasde

ajustedecurvas[Press92]. Maisespecificamente,o métodoadotadoparao ajuste

decurvasgerapolinômiosdegrau � epodesersintetizadonosseguintespassos:

1. Dadoo vetordasabcissas� x"�,� , encontraramatriz � ���~� onde � f � i Ze r,�(� � f s ���Fx� ;

2. Calcularamatrix ����_�,� comoapseudo-inversade � ;

3. Sendo� ���9x o vetordasordenadas,encontraro vetordecoeficientes� �.�9xtal que � f � ��� � ;

4. O polinômioédadopor | f[� x i�� y � s i�� z � s y i���� � s z i�� �¡�Ki�� � � sF¢ .Comaaplicaçãodo métododescrito,conseguimoselaborarequaçõesparamode-

lar o comportamentodasprimitivasdecomunicaçãoMPI estudadas.Narealidade,

o métodoprocuraencontraroscoeficientesrH£ , r¤x , rHy , ..., r ¢ :

e t ` t ewv�¥ m¦ � m�§ �©¨©¨©¨ mpª"« ^ �¬Y�� � � a yf®­ ��n¯lx�° |±t Y ^ rH£ i r¤x � sF� i rHy � s y� i�� �¡�Ki r ¢ � s ¢� aA² y

Page 64: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 53

4.2.4 Scilab2.6

Emtrabalhosdemediçãoeanálisededesempenhoécomumnosdepararmoscom

grandesquantidadesdedadosa seremtratados.Os temposcoletadosemnossos

testes,por exemplo,acumulammuitosvaloresprovenientesdasdiversasconfigu-

raçõesexecutadas,variandoosnúmerosdeprocessosenvolvidoseostamanhosde

mensagenstransmitidas.Porisso,éconvenienteo usodeferramentasdesoftware

adequadasparafacilitar e automatizartarefasrelacionadasaoprocessodeanálise

e predição(seleçãodedados,cálculosdemédias,construçãodegráficos,etc).

O Scilab[INRIA ] é um software livre desenvolvido peloINRIA (Institut Na-

tional de Recherche en Informatiqueet en Automatiqueu, France) destinadoà

construçãode aplicaçõesparaprocessamentode sinaise controlede sistemas.

Atravésde suavastabibliotecade funções,oferecesuporteà realizaçãode ope-

raçõesenvolvendomatrizes,geraçãode modelosmatemáticose gráficosmulti-

dimensionais,entremuitasoutrasfuncionalidades.Além disso,o Scilabdisponi-

biliza aousuáriofacilidadesparaescritae leituradedadosemarquivos,possibi-

litandoa elaboraçãodeprogramascapazesdeautomatizartarefasrelacionadasa

atividadesdeanáliseeprediçãodedesempenho.

Destaforma,emnossotrabalhoutilizamoso Scilab2.6comoumaferramenta

desuportenotratamentodosdadosenaobtençãodosmodelosanalíticos.Através

do conjuntode funçõesdescritono ApêndiceA, desenvolvidas fazendousodo

software, possibilitamosaautomatizaçãodealgumastarefascomo:

� seleçãodostemposcoletadosecálculodostemposmédios;

� construçãode gráficosparaanálisedo comportamentodasprimitivasde

comunicação;

� geraçãodeequaçõesdeprediçãodedesempenho;

� elaboraçãodedadoscomparativoscomtemposmedidos,valorespreditose

errospercentuais.

Page 65: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 54

4.3 Programaselaboradospara asmedições

Considerandoosproblemasencontradosemumprocessodemediçãodedesempe-

nhoeoscuidadosaseremrespeitados,conformecomentadoanteriormente,elabo-

ramosalgunsprogramasespecíficosparacoletagemdostemposdecomunicação.

Basicamente,utilizamosmedidoresparacontaro tempodespendidodurantea

ocorrênciadeumacomunicaçãoe,aofinal daexecução,osvaloresmedidoseram

gravadosemum arquivo. As execuçõeseramrepetidasum númerodeterminado

devezese,como objetivo deforçaraatualizaçãodamemóriacache, intercaladas

comumoutroprogramaquerealizavaumamultiplicaçãodematrizes.

O trechode códigoa seguir pertenceao programaconstruídoparamedir o

tempodo sendpadrãoe ilustrao usodosmedidoresdetempo:

if (0 == rank) {

TIMER_CLEAR;

TIMER_START;

MPI_Send(buf,BUFSIZE,MPI_INT,1,11,MPI_COMM_WORLD);

TIMER_STOP;

printf("%g",TIMER_ELAPSED); //tempo do sender

}

else {

TIMER_CLEAR;

TIMER_START;

MPI_Recv(buf,BUFSIZE,MPI_INT,0,11,MPI_COMM_WORLD,&status);

TIMER_STOP;

printf(" %g\n",TIMER_ELAPSED); //tempo do receiver

}

As contagemdo tempoé inicializadafazendousodasfunçõesTIMER_CLEAR e

TIMER_START e finalizadacom o TIMER_STOP. Os programasusadosnasmedi-

çõesdosdemaismodosde sende dasprimitivascoletivasapresentamo mesmo

procedimento,commedidoresanteseapósacomunicação.Destaforma,emnos-

sostestesa coletagemde temposerarealizadaestandoos processosenvolvidos

previamentesincronizados.Convém ressaltarqueem aplicaçãopodemocorrer

eventuaisatrasosnaexecuçãodeumaprimitiva,seosprocessosnãoestiveremem

sincronismo.Contudo,comonossoenfoqueéjustamenteo tempodespendidonas

Page 66: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 55

comunicações,nãotratamososcasosdedependênciasentreasoperaçõesexecu-

tadas.

4.4 Ambiente computacionalutilizado nostestes

Os testesrealizadosparaa construçãoe avaliaçãodos modelosde prediçãode

desempenhoutilizaramum ambientecomputacionaldo LASB - Laboratóriode

Arquiteturae SoftwareBásico,do DepartamentodeEngenhariadeComputação

e SistemasDigitais daEscolaPolitécnicadaUSP. Trata-sedeum clustercomas

característicasapresentadasabaixo:

³ nósde processamento:16 máquinascontendocadaumaum processador

INTEL Celeronde433MHz, 128MbytesdeSDRAM (66MHz), 32Kbytes

de cacheL1, 128 Kbytesde cacheL2 e umaplacade redeINTEL Ether-

ExpressPro; umamáquinamulti-processadacom4 processadoresINTEL

Pentium2 Xeonde400MHz, 256MbytesdeSDRAM, 32Kbytesdecache

L1, 512KbytesdecacheL2 eamesmaplacaderededasdemaismáquinas;

³ rededeinterconexão:Fast-Ethernet;

³ switch: 3COM SuperStackII 3300de24portas;

³ sistemaoperacional:Linux Red Hat versão6.2 (nos nós homogêneos)e

versão7.0(namáquinamulti-processada);

³ implementaçõesdopadrãoMPI disponíveis:LAM-MPI versões6.4e6.5.6.

4.5 Primiti vasdecomunicaçãoponto-a-ponto

Dentreasprimitivasdecomunicaçãoponto-a-pontobloqueante,analisamosemo-

delamososquatromodosdesenddescritosnasubseção2.4.1: padrão,buffered,

síncronoe ready. A modelagemdestasprimitivasfoi realizadasegundoa meto-

dologiadeanálisee prediçãodedesempenhopropostapor Li [Li01], descritana

seção3.6,considerandooscomponentesdo tempodecomunicaçãoidentificados

emseutrabalho( ´Aµ6¶>·b¸L¹h´Aº�¶�·3¸3»�´�¼¶�·3¸3»�´�½_¶>·b¸ ).

Page 67: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 56

Contudo,aúnicacomunicaçãoponto-a-pontoqueLi modelouemseutrabalho

trata-sedo par send/receiveno modopadrão.Assim, apresentamosnestaseção

uma extensãoà suamodelagem,incluindo os demaismodosde send, além de

descrevermosalgunstestesrealizados.

4.5.1 Consideraçõessobrea implementaçãodosmodosdesend

Apósestudarmoso códigofontedaimplementaçãoLAM-MPI, identificamosal-

gumassemelhançase diferençasentreosquatromodosdesend, conformediscu-

timosaseguir:

³ asprimitivasMPI_Rsende MPI_Ssendsãobastantesemelhantesao send

padrão,distinguindo-sepelousodediferentesmecanismosdesincronismo,

segundoassuasrespectivassemânticas.Conformeveremosa seguir, o de-

sempenhodestasprimitivasébastanteparecido;

³ a implementaçãodo MPI_Bsendé semelhanteao MPI_Isend(sendnão-

bloqueante),sendoa maior diferençao overheadgeradopeloalocaçãodo

buffer. Assim,no modobuffered o tempodespendidoparatransmitiruma

mensagemtendeaserbemmenoremrelaçãoaosdemaismodosbloquean-

tes.

4.5.2 Modelagemanalítica dosmodosde send bloqueantes

Ostestesdescritosnestaseçãoforamrealizadosnoambientecomputacionalapre-

sentadonaseção4.4,utilizandoosnósdeprocessamentohomogêneoseo LAM-

MPI 6.4.As análisesemodelosdescritospodemtambémserverificadosnoartigo

intitulado"PerformanceandPredictionof someMPI CommunicationPrimitives"

[Oliveira02].

Foramrealizadostestescommensagensde100000,250000,400000,550000,

700000,850000e1000000elementosdo tipo inteiro (MPI_INT). Ostemposme-

didossãoapresentadosnaTabela4.1. Tantoostemposmédiosdo processoemis-

sorcomodo receptorsãodadosemsegundos.Podemosverificaratravésdeuma

Page 68: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 57

Tabela4.1: Temposmedidosemsegundosparaosquatromodosdesend.Modode Tamanhodamensagem( ¾.¿~À inteiros)

send 100 250 400 550 700 850 1000

Padrão Emissor 0,0385 0,0990 0,1611 0,2223 0,2839 0,3463 0,4076

Receptor 0,0484 0,1178 0,1881 0,2588 0,3294 0,4007 0,4723

Buffered Emissor 0,0067 0,0168 0,0266 0,0375 0,0485 0,0578 0,0690

Receptor 0.0484 0,1178 0,1876 0,2592 0,3308 0,3988 0,4707

Ready Emissor 0,0401 0,1025 0,1660 0,2288 0,2918 0,3551 0,4174

Receptor 0,0499 0,1213 0,1926 0,2639 0,3351 0,4062 0,4777

Síncrono Emissor 0,0397 0,1017 0,1649 0,2272 0,2898 0,3529 0,4148

Receptor 0,0503 0,1234 0,1964 0,2689 0,3415 0,4148 0,4890

análisedosvaloresqueemtodososcasososprocessosdemonstraramum cresci-

mentoquaselinearemseustemposdecomunicação- tal comportamentopoderá

sermelhorvisualizadonasFiguras4.1e4.2.

Considerandoparticularmenteo modobuffered, é fácil verificarqueo tempo

do emissorfoi muito menoremcomparaçãocomosdemaissends. Estecompor-

tamentoeraprevisível,comocomentamosanteriormente,poisosvaloresobserva-

dosparao emissornomodobufferedcorrespondem,basicamente,aumtempode

leituradeum conjuntodedadosnamemóriae suatransferênciaparao buffer da

interfacede rede. Portanto,percebemosqueo tempodespendidopelaprimitiva

MPI_Bsendpodeserresumidoaoprimeirocomponentedo tempodecomunica-

ção( ´Aº�¶>·b¸ ).Modelosanalíticosdosmodosde send

A partir dostemposcoletadose resumidosnaTabela4.1 e aplicando-setécnicas

deajustedecurvas,obtivemososmodelosanalíticosaseguir:

³ Sendpadrão:

Á@ ºÄÃ�Å.Æ(ÇlÈMÉ0ÊLË,ÌAË.Ë_Í,Î�Ï_Ð�Ñ.Ò�Ó�Æ(ÔHÌ�Î�Ë_Õ�Ë�Ô×Ö�Î�Ë~رÙ�È�ÖÚÇ (4.1)

Á ½@ºEµ�ºÄÛÝÜpº Æ(ÇlÈMÉÞË,ÌAË.Ë.Ë_Ò�ÔKÒ.Ò.Í.ÑßÓ�Æ(ÔHÌÐ~Î.Î.Î}Ö$Î�Ë Ø±Ù È�ÖàÇ (4.2)

Page 69: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 58

³ Bufferedsend:Á� ºÄÃ�Å_Æ(ÇlÈ3É0Ê}Ë,ÌAË.Ë.Ë_Ï,Î�Ò.Ñ.Ò,ÎLÓ�Æ<Õ~Ìpá.Ò.Ò.á.Í�ÖLÎ�Ë~Ø9âJÈ�ÖÚÇ (4.3)

Á ½@ºEµ�ºÄÛÝÜpº Æ(ÇlÈMÉÞË,ÌAË.Ë.Ë_Ñ�Ë_Ò.Ñ,Î}Ó�Æ(ÔHÌpÕ.á.Ï.Í.á�Ö$Î�Ë~رÙ�È�ÖàÇ (4.4)

³ Readysend:Á� º>Ã�Å.Æ(ÇlÈMÉ0Ê}Ë,ÌAË.Ë_Ò�Ë_Ï�ÔKÕ.áãÓ�Æ(ÔHÌ�Î�á_Ð�ÑßÖ$Î�Ë Ø±Ù ÈlÖMÇ (4.5)

Á ½@ºEµ�ºÄÛÝÜpº Æ(ÇlÈMÉÞË,ÌAË.Ë_Ò�ÔKá.Ï�Ë_ÏãÓ�Æ(ÔHÌÐ�Ï,Î�Õ_ÐßÖ$Î�Ë Ø±Ù È�ÖàÇ (4.6)

³ Sendsíncrono:Á@ ºÄÃ�Å.Æ(ÇlÈMÉ0ÊLË,ÌAË.Ë_Ò.Ò.Ò�Ë_Ñ.Ò�Ó�Æ(ÔHÌ�Î6Ð�Ò.Ñ.áßÖ�Î�Ë~رÙ�È�ÖÚÇ (4.7)

Á ½@ºEµ�ºÄÛÝÜpº Æ(ÇlÈMÉÞË,ÌAË.ËHÎ�Ï.Ò.á_Ð~Î}Ó�Æ(ÔHÌpÑ.Õ.Õ�ÔKÍ�Ö$Î�Ë~رÙ�È�ÖàÇ (4.8)

As Figuras4.1e 4.2,exibidasaofinal destaseção,ilustrama semelhançanos

comportamentosdascurvas representandoos temposmedidose os calculados

com auxílio dasequações.Nos gráficos,ascurvasrotuladaspor sender_predicte

receiver_predictindicam,respectivamente,os valoresobtidoscom a aplicaçãodos

modelosparao processoemissor( ´  º>Ã�ÅK¶>·b¸ ) e parao receptor( ´�½�ºÄµ>º>ÛÝÜpº�¶�·3¸ ). Os

temposmedidossãorepresentadospelascurvassender_measuree receiver_measure.

4.5.3 Prediçãode desempenho

As equaçõesobtidasnospermitemrealizarprediçõesdetemposdecomunicação,

variandoo tamanhodamensagemtransmitida.Na Tabela4.2,expomosum qua-

dro comparativo entretempospreditose medidosparaosquatromodosde send

commensagensde40000,60000,1600000e1700000inteiros.

Os resultadosmostram-sesatisfatórios,envolvendoerrosna maioriadosca-

sosabaixode6% e comprovandoa validadedosmodelos.Osmaioreserrosfo-

ramverificadoscomo modobuffered e, principalmente,envolvendoasmenores

mensagens.Buscandocompreendere justificarestefato,devemosconsideraros

seguintesaspectos:

Page 70: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 59

Tabela4.2: Prediçõesrealizadasparaosquatromodosdesend*.Send Receive

40 60 1600 1700 40 60 1600 1700

medição 0,0124 0,0224 0,6521 0,6927 0,0208 0,0301 0,7526 0,7995

P predição 0,0133 0,0215 0,6538 0,6949 0,0191 0,0285 0,7540 0,8011

erro(%) 6,8460 4,0179 0,2684 0,3129 8,1300 5,3156 0,1840 0,1979

medição 0,0027 0,0042 0,1090 0,1162 0,0207 0,0300 0,7521 0,7985

B predição 0,0023 0,0036 0,1103 0,1172 0,0196 0,0290 0,7521 0,7990

erro(%) 16,009 14,286 1,1494 0,8741 5,2743 3,3333 0,0002 0,0680

medição 0,0130 0,0224 0,6659 0,7074 0,0216 0,0301 0,7779 0,8267

S predição 0,0145 0,0215 0,6654 0,7072 0,0210 0,0285 0,7802 0,8288

erro(%) 11,704 4,0179 0,0631 0,0341 2,6412 5,3156 0,2872 0,2599

medição 0,0131 0,0235 0,6693 0,7110 0,0214 0,0312 0,7662 0,8135

R predição 0,0147 0,0231 0,6696 0,7116 0,0215 0,0310 0,7628 0,8103

erro(%) 12,135 1,7021 0,0496 0,0831 0,4006 0,6410 0,4427 0,3950

* P = padrão,B = buffered,S = síncrono,R = ready, tempoemsegundos

³ pequenasoscilaçõesno comportamentodo sistema,devido a influênciasde

outrosfatoresrelacionadosàrededeinterconexãoouàmáquina,costumam

acarretaralteraçõesdedesempenhomaissignificativasemmensagemme-

nores.Sendoo tempodetransmissãodestasmensagenspequeno,qualquer

oscilaçãono sistemacomputacionalpoderepresentaralteraçõesproporcio-

nalmentesignificativas;

³ considerandoqueo MPI_Bsendtendea apresentarmenorestemposdeco-

municação,conformediscutidoanteriormente,a primitivaestámaissujeita

àsoscilaçõescomentadasnoprimeiroitem;

³ o métododeajustedecurvasutilizado,devido àssuascaracteríticas,mini-

mizaoserrosdosvaloresmaioresecomissoacabaaumentandooserrosde

valoresmenores.

4.5.4 Usode intervalosna construçãodemodelos

Uma alternativa paramelhorarmosa precisãodosmodelosanalíticosdasprimi-

tivasde comunicaçãotrata-sedo usode intervalosno processode modelagem.

Page 71: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 60

O tempodespendidopor um send, por exempo,podevariar conformeos tama-

nhosdemensagens(n) enviadase apresentarcurvasdedesempenhoque,embora

demonstremcomportamentoslineares,possuaminclinaçõesdiferentes. Assim,

elaborandoequaçõesparaintervalosespecíficosden podemosreduziroserrosda

modelagem.

No trabalhode Abandahe Davidson[Abandah96],descritosucintamentena

seção3.5, sãogeradasmaisde umaequaçãoparamodelaro comportamentode

umamesmaoperaçãodecomunicação.Deformasemelhante,noartigointitulado

"AnáliseePrediçãodeDesempenhodeProgramasMPI emRedesdeEstaçõesde

Trabalho" [Laine02], caracterizamoso desempenhodasprimitivasMPI_Sende

MPI_Recvdividindoo domínioden emduasregiões.Atravésdeumconjuntode

testesrealizadoscomo benchmarkMPBench[Mucci98], coletamosváriostem-

posde comunicaçãocom mensagensde 6.824a 5.592.404bytes. Em seguida,

aplicandotécnicasdeajustedecurvas,obtivemososseguintesmodelosanalíticos

emfunçãodo númerodebytes(n) paraprediçãodetemposem äMå 1:

æ¤çéèHê�ëíì · ìhæHî±çïî~ð,æÞñò ó ´ Â º>Ã�ÅK¶�·3¸}¹õô èHê±ö ¿ î,ê~ð »�¿ ö ¿ èH÷~ø ¾ èHêßù ·´�½�ºÄµ>º>ÛÝÜpº�¶�·3¸g¹ ø±ö�÷ ¿ æ »�¿ ö ¿ èHî~ê�ù · (4.9)

æHî±çïî~ð,æûú · ì�î±çïî~øHê9çéë ¿ ë ñò ó ´ Â ºÄÃ�ÅK¶>·b¸g¹ ê±ç ¿ æHî±ö�ë,ø »�¿ ö ¿ è~ëHø,ø~ð ¾ ù ·´�½�ºEµ�ºÄÛïܺJ¶�·3¸}¹ ê±ç ¾ ëHæ¤ö ¾ ø »�¿ ö ¿ è~ëHø~ø,æ,è�ù · (4.10)

Osresultadosapresentadosnoartigodemonstramavalidadedousodeinterva-

los no desenvolvimentodemodelosanalíticos.Comparandoos temposmedidos

e os valorescalculadoscom asequaçõesacima,o maior erro encontradofoi de

apenas4,142%,observadonosendcomn equivalentea6.824.A Tabela4.3mos-

tra umacomparaçãoentrea mediçõese a predições,do emissore do receptor,

ilustrandoa acuráciada modelagemrealizada.Osmodelostambémmostraram-

seprecisosao seremutilizadosna prediçãode desempenhode um programade

1Note que os modelosdos quatromodosde send, apresentadosanteriormente,consideramo tamanhoda mensage(n) em inteiros e o tempoem segundos. Por isso, existe uma grandedisparidadeentreasconstantesdasequações4.9e 4.10edosmodelosanteriores.

Page 72: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 61

Tabela4.3: Resultadosdostestescomamodelagempor intervalos*.

n ü  ºÄÃ�Å ü�½�ºEµ�ºÄÛïܺ(bytes) Medição Predição erro(%) Medição Predição erro(%)

6.824 540,280 517,901 -4,1420 589,330 591,111 0,3022

13.652 1.130,440 1.118,207 -1,0821 1.173,100 1.172,856 -0,0208

21.844 1.830,230 1.838,433 0,4482 1.873,660 1.870,815 -0,1519

43.688 3.686,130 3.758,918 1,9746 3.733,970 3.731,924 -0,0548

65.536 5.726,130 5.679,755 -0,8099 5.593,890 5.593,373 -0,0092

131.072 13.198,730 13.205,706 0,0528 13.246,380 13.286,891 0,3058

218.452 20.629,029 20.632,403 0,0164 20.704,529 20.713,911 0,0453

349.524 31.766,000 31.772,618 0,0208 31.851,359 31.854,612 0,0102

524.288 46.636,770 46.626,352 -0,0223 46.744,352 46.708,992 -0,0756

1.048.576 91.211,102 91.187,215 -0,0262 91.303,109 91.271,795 -0,0343

1.747.624 150.591,703 150.601,471 0,0065 150.686,453 150.688,638 0,0014

3.495.252 299.122,563 299.137,793 0,0051 299.219,250 299.231,425 0,0041

5.592.404 477.389,344 477.381,242 -0,0017 477.482,906 477.482,634 -0,0001

* temposem ý9þmultiplicaçãodematrizes,queenvolvia entreoutroscálculosoperaçõesdecomu-

nicação. Outrasinformaçõessobreesteestudopodemserconferidasno artigo

publicado[Laine02].

4.6 Consideraçõesfinais

Osprocedimentosdescritosnestecapítuloeutilizadosemnossotrabalhorefletem

cuidadosimportantesa seremobservadosem um processode mediçãoe mode-

lagemenvolvendooperaçõesde comunicação.Tais cuidadospodemauxiliar na

obtençãodemodelosmaisprecisosenarealizaçãodeanálisesconsistentes.

O capítuloaindaapresentoucomentáriossobreosprogramasconstruídospara

as mediçõese uma ferramentautilizada em nossoestudo,através da qual um

conjuntodefunçõesfoi desenvolvido paraautomatizaralgumastarefasinerentes

àexecuçãodasanáliseseelaboraçãodosmodelos.Porfim, asanálisesepredições

envolvendoasprimitivasponto-a-pontoforamdescritas.

Page 73: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 62

receiver_predictsender_predictreceiver_measuresender_measure

Ο

×

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

250 400 550 700 850 10000.0000

0.0472

0.0945

0.1417

0.1889

0.2361

0.2834

0.3306

0.3778

0.4251

0.4723

100

MPI_Send()

Tem

po (s

egun

dos)

Tamanho da mensagem (milhares de inteiros)

100 250 400 550 700 850 10000.0000

0.0471

0.0941

0.1412

0.1883

0.2354

0.2824

0.3295

0.3766

0.4236

××

××

××

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

××

××

××

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

MPI_Bsend()

0.4707

receiver_predict

receiver_measuresender_predict

sender_measureΟ

×

Tem

po (s

egun

dos)

Tamanho da mensagem (milhares de inteiros)

Figura4.1: DesempenhodoMPI_Sende doMPI_Bsend.

Page 74: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 4. MODELAGEM DE PRIMITIVAS PONTO-A-PONTO 63

100 250 400 550 700 850 10000.000

0.048

0.096

0.143

0.191

0.239

0.287

0.334

0.382

0.430

0.478

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

MPI_Rsend()

sender_measurereceiver_measuresender_predictreceiver_predict

Tem

po (s

egun

dos)

Tamanho da mensagem (milhares de inteiros)

Ο

×

100 250 400 550 700 850 10000.0000

0.0489

0.0978

0.1467

0.1956

0.2445

0.2934

0.3423

0.3912

0.4401

0.4890

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

MPI_Ssend()

sender_measurereceiver_measuresender_predictreceiver_predict

Ο

×

Tem

po (s

egun

dos)

Tamanho da mensagem (milhares de inteiros)

Figura4.2: Desempenhodo MPI_Rsendedo MPI_Ssend.

Page 75: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 5

PRIMITIV AS DE

COMUNICA ÇÃO COLETIV A

5.1 Intr odução

A modelagemde primitivasponto-a-pontodescritano capítuloanteriorfoi con-

cretizadacom o usode equaçõeslineares. Na maioriadoscasos,os temposde

comunicaçãoexpressospelosmodelosrefletiam,basicamente,o tempodespen-

dido na transmissãoemsi da mensagem( ´Aµ6¶>·b¸ÿ¹ ´Aº�¶>·3¸�»�´�¼¶�·3¸ »0´�½_¶�·3¸ ), sendo

influenciadospor fatorescomoa quantidadedeelementose ascaracterísticasda

rededeinterconexão.Porém,emcomunicaçõescoletivasoutrosfatoresprecisam

serconsiderados.

Duranteaexecuçãodeumaprimitivadecomunicaçãocoletiva,váriosproces-

sosenviam ou recebemmensagenssimultaneamente.Dependendodasemântica

daoperação,podemosutilizar diferentesimplementaçõespararealizaradistribui-

çãodosdados.Assim,o algoritmoadotadoconstituium importanteaspectoaser

estudadono processodeanáliseemodelagem.

Por vezes,nosdeparamoscom o usode primitivasponto-a-pontona imple-

mentaçãodeoperaçõescoletivas.Devido aofatodascomunicaçõesponto-a-ponto

apresentaremcrescimentolinear no tamanhoda mensagem,conformedescreve-

mosnestecapítulotal comportamentopodesertambémobservadono desempe-

nhodeoperaçõescoletivas.

64

Page 76: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 65

Sendoo númerodeprocessosenvolvidosnacomunicaçãovariável, é interes-

santea inclusãodestenovo parâmetronasequaçõeselaboradas.Destaforma,

procuramoscaracterizarasprimitivascoletivasMPI estudadascomo desenvolvi-

mentodemodelosanalíticosemfunçãodeduasvariáveis: o tamanhodamensa-

gemeo númerodeprocessos.

As seçõesseguintesdestecapítuloapresentamanálisese modelosde predi-

çãodedesempenhodasoperaçõesbroadcast, reducee barreira.Além destaspri-

mitivas, previstasnos objetivos do nossotrabalho,descrevemosum estudodo

MPI_Alltoall, expondoanálisese testesrealizados.

5.2 Broadcast

5.2.1 Consideraçõessobrea implementacãodo broadcast

Umaformapossível deimplementaçãodaprimitivabroadcastéatravésdousode

algoritmosbaseadosemárvoresouhipercubos.Paraimplementaro MPI_Bcast,o

LAM-MPI utiliza um algoritmolinearparaoperaçõescomaté3 escravose outro

decomplexidade� ¶���������¸ para4 oumaisescravos,criandoumhipercubocomos

processosenvolvidosnacomunicação.Tal constataçãopôdeserfeita aoanalisar-

moso códigofontedoLAM-MPI ea implementaçãodafunçãoMPI_Bcast.

Assim, quandoo númerode escravos for igual ou superiora 4 o algoritmo

prosseguedaseguintemaneira.Emumprimeiromomentoamensageméenviada

pelo processomestreao primeiro escravo. Após isso,o mestrefaz a transmis-

sãoparaoutro escravo e, simultaneamente,aqueleescravo quehavia recebidoa

mensagema retransmiteparaum terceiroescravo. Assim, os dadosvão sendo

enviadosparalelamenteatéquetodososprocessostenhamrecebidoamensagem.

A dimensãodo hipercuboformadodependedo númerodeprocessosenvolvidos

naoperaçãodecomunicação.

5.2.2 Testesexecutadoscom o broadcast

Assimcomono estudodasprimitivasponto-a-pontobloqueantes,ostestescomo

broadcasttambémforam realizadosno ambientecomputacionalapresentadona

Page 77: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 66

seção4.4.ForamutilizadasambasasversõesLAM-MPI disponíveis(6.4e6.5.6).

Os testesenvolveramdiversasconfigurações,variandoo númerode nós de

processamentoenvolvidose o tamanhodasmensagens,sendocadaexecuçãore-

petida30 ou, na maioriadoscasos,50 vezes. As mensagensutilizaramasse-

guintesquantidadesde elementosdo tipo MPI_INT: 100000,200000,300000,

400000,500000,600000,700000,800000,900000e 1000000,ao passoqueo

númerode processosreceptoresvariou em 1, 2, 3, 4, 6, 7, 8, 12, 14, 15 e 16.

Conformemencionadona subseção4.2.2,os processoseramalocadosa máqui-

nasdistintas. Podemosconferir os resultadosobtidosna Tabela5.3, expostaao

final destaseção.

5.2.3 Análise emfunçãodo tamanho da mensagem

Ostemposmedidoscomaoperaçãobroadcast(Tabela5.3)nospermitemanalisar

e modelaro desempenhodaprimitiva. Podemosnotarum comportamentolinear

do MPI_Bcastem funçãodo tamanhoda mensagem(n) paratodasasquantida-

desdeescravosenvolvidos. Estecomportamentopodesermelhorvisualizadona

Figura5.1,queexibeo desempenhodaprimitivavariandon.

Aplicandoo métododeajustedecurvasdescritonasubseção4.2.3,elabora-

mososseguintesmodelosanalíticos,emfunçãodo tamanhodamensagem,para

o processoemissordaoperaçãobroadcast:

³ 1 escravo: ´<µ��  ¼¶>·b¸g¹ ô�¿ ö ¿,¿ ê ¿±¾ ø,ø »[¶ ð¤ö�ð~ø,è×ù ¾�¿ ر٠¸ ù ·³ 2 escravos: ´<µ��  ¼p¶�·3¸}¹ ô׿ ö ¿,¿ ð ¿ î~æ,ø »[¶ æ¤ö�÷~ø,ø×ù ¾.¿ ر٠¸ ù ·³ 3 escravos: ´<µ��  ¼p¶�·3¸}¹ ô׿ ö ¿,¿ ë,øH÷�ë�÷ »[¶p¾.¿ ù ¾.¿ ر٠¸ ù ·³ 4 escravos: ´<µ��  ¼p¶�·3¸}¹ ô׿ ö ¿,¿ î ¾ ø~ë ¾}»[¶p¾.¿ ù ¾.¿ ر٠¸ ù ·³ 8 escravos: ´<µ��  ¼p¶�·3¸}¹®¿ ö ¿~¿ ê~èHî,÷~÷ »®¶A¾ ë�ù ¾�¿ ر٠¸ ù ·³ 12 escravos: ´<µ��  ¼¶�·3¸}¹õô׿ ö ¿,¿~¿ ðHî~æ,ø »[¶p¾ ë)ù ¾.¿ ر٠¸ ù ·³ 14 escravos: ´<µ��  ¼¶�·3¸}¹õô׿ ö ¿,¿ ð,æHê~æ,è »[¶p¾ ë)ù ¾.¿ ر٠¸ ù ·³ 15 escravos: ´<µ��  ¼¶�·3¸}¹[¿ ö ¿,¿,¿ ê ¿ î~è »®¶A¾ ë)ù ¾�¿ ر٠¸ ù ·

Page 78: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 67

1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05 8e+05 9e+05 1e+06

0.032

0.115

0.199

0.282

0.365

0.448

0.532

0.615

0.698

0.782

0.865

0.948

1.031

1.115

1.198

1.281

1.365

1.448

1.531

1.614

1.698

++

++

++

++

++

×

××

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05 8e+05 9e+05 1e+06

0.032

0.115

0.199

0.282

0.365

0.448

0.532

0.615

0.698

0.782

0.865

0.948

1.031

1.115

1.198

1.281

1.365

1.448

1.531

1.614

1.698

++

++

++

++

++

×

××

×

×

×

×

×

×

×

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

Ο

MPI_Bcast() em função do tamanho da mensagem − Processo emissor

+ 1_slaves_measure× 2_slaves_measure⊕ 3_slaves_measure♦ 4_slaves_measure◊ 8_slaves_measure∆ 12_slaves_measure∇ 14_slaves_measure♣ 15_slaves_measureΟ 16_slaves_measure

1_slaves_predict2_slaves_predict3_slaves_predict4_slaves_predict8_slaves_predict12_slaves_predict14_slaves_predict15_slaves_predict16_slaves_predict

Tem

po (s

egun

dos)

Tamanho da mensagem

Figura5.1: AnálisedoMPI_Bcastemfunçãodo tamanhodamensagem.

16 escravos: ����������������������! "�#�#$%�!&�'%(*)+�,&.-�/0&��21435�6/7�O comportamentodestesmodelostambémé representadono gráfico da Figura

5.1. Em uma análisedo gráfico exposto,podemosperceberque as curvas re-

ferentesa 8, 12, 14 e 15 escravos sãosobrepostas,assimcomoascurvasde 3

e 4 escravos. O segundocasoé provavelmenteocasionadopelo fato de ambos

os algoritmosutilizados(89�;: e 8<�;( ) estabelecerem3 etapasna comunica-

ção,ocorrendoumatransmissãoda mensagemem cadaumadelas. Contudo,o

primeirocasoéexplicadopelousodo algoritmobaseadoemhipercubo.A proxi-

midadedostemposéclaramenteexpressasecompararmososrespectivosvalores

naTabela5.3.

5.2.4 Análise emfunçãodo número deescravos

Conformemencionamosno início destaseção,o algoritmoutilizadopeloLAM-

MPI naimplementaçãodaoperaçãobroadcastcommaisde3 escravosapresenta

Page 79: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 68

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.000

0.086

0.173

0.259

0.346

0.432

0.519

0.605

0.692

0.778

0.865

0.951

1.038

1.124

1.211

1.297

1.383

1.470

1.556

1.643

1.729

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.000

0.086

0.173

0.259

0.346

0.432

0.519

0.605

0.692

0.778

0.865

0.951

1.038

1.124

1.211

1.297

1.383

1.470

1.556

1.643

1.729

100000integers300000integers500000integers800000integers1000000integers

Tem

po (s

egun

dos)

MPI_Bcast() em função do número de escravos − Processo emissor

Número de escravos

Figura5.2: Análisedo MPI_Bcastemfunçãodonúmerodeescravos.

complexidade =?>�@�A�BDCFE . A Figura5.2 exibe o gráfico da primitiva MPI_Bcast

emfunçãodo númerodeescravosenvolvidosnacomunicação,paracadaum dos

tamanhosdemensagemutilizadosemnossostestes.

Podemosobservar doissaltos,ou degraus,nascurvasdedesempenho:o pri-

meiroentre7 e 8 escravose o segundoentre15 e 16. Osvaloresdestesdegraus

quasenãoapresentamvariaçãoe correspondem,aproximadamente,aostempos

de transmissãoda mensagementredois processos.Considerandoascurvasdas

mensagensde400000,800000e 1000000inteiros,por exemplo,osvaloresapro-

ximadosdeseusdegrausequivalema 0,136,0,27e 0,34. Taisvalorespodemser

calculadoscomauxíliodaTabela5.3e,observandoamesmatabela,podemosve-

rificar queelesseassemelhambastanteaostemposdespendidospelomestrepara

efetuaro broadcastquandoapenasum escravo eraenvolvido.

Page 80: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 69

5.2.5 Modelo analítico do broadcast eprediçãodedesempenho

Como observamosanteriormente,o MPI _Bcastapresentaum comportamento

linearno tamanhodamensagem(n) e logarítmicono númerodeescravosenvol-

vidos(p). Considerandotaiscomportamentose a partir dostemposmedidos,foi

possível aelaboraçãodeummodeloanalíticoemfunçãoden ep parao tempodo

processoemissorquando4 oumaisescravosparticipamdacomunicação.

Emumprimeiromomento,aplicamosastécnicasdeajustedecurvassobreos

temposmedidoscom4, 8 e16escravoseobtivemoso conjuntodeequaçõespara

o tempodo mestreapresentadonaTabela5.1.

Tabela5.1: ModelosdoMPI_Bcastemfunçãodo númerodeescravos(p).Númerodeinteiros GH�I�J5K�L�>MCFE�NPORQTSUOWV�XZY�@�A�B%[\C!]

100000 ^!_`^#a#^#b#bdcfe�SU^4_"^#ahgdchg#i%a*XjY�@�A.Bd[kCf]200000 ^!_`^#l#^#^hi2e�amSU^4_"^hn%^!eoc#cpgqXjY�@�A.Bd[kCf]300000 ^!rs^%b#b#b%cfeWbqSU^!_WeW^!e�l!e.g%gqXZY�@�A�Bd[kCf]400000 ^!_oe�ahg%bhn%gdcqSU^4_We�a#l#^%ahn4etXjY�@�A.Bd[kCf]500000 ^!_oe�l#l#l#l%^#lmSU^4_We�l#b#b%b!e�u*XjY�@�A.Bd[kCf]600000 ^4_vg%^hg4e�g#g%lmSw^!_vg%^#a#ndcfetXjY�@�A.Bd[\Cf]700000 ^!_"g%a#l#l%c%c#cqSU^4_vg%ahn#i%i%lhnqXjY�@�A.Bd[kCf]800000 ^!_"g%l#b%chb#n%umSU^4_vg#n4e�u#g%b#u*XjY�@�A.Bd[kCf]900000 ^!_`a#^%chb#l#i%umSU^4_"a#^hi#gda!e.nqXjY�@�A.Bd[kCf]1000000 ^!_`a#a#lhndc!e#e�SU^4_"a#a#b#b%uhg#gqXjY�@�A.Bd[kCf]

Paracadatamanhode mensagem,modelamoso tempodo broadcastatravés

daequaçãoGH�I�J5K�L,>MCxEyNzOvQ{S<OWV6X?Y�@�A�B%[\Cf] , sendoa funçãopisoutilizadaparaajus-

tar os temposconformea quantidadede escravos considerada.Os valoresdas

constantesOvQ e O�V sãobastantesemelhantesaostemposdespendidospelaprimi-

tiva nasconfiguraçõescom apenasum escravo (Tabela5.3). Estasemalhança

deve-seà influênciadoalgoritmobaseadoemhipercubousadonaimplementação

do MPI_Bcast,pois tais constantescorrespondem,aproximadamente,ao tempo

necessárioparaqueo mestretransmitaa mensagema um outro processo.De-

pendendodo númerodeescravos envolvidose, conseqüentemente,dadimensão

do hipercuboformado,paralevar osdadosaosdemaisescravoso sistemadeverá

gastaro tempoequivalentea Y�@�A.Bd[kCf] novastransmissões.

Page 81: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 70

ApósaconstruçãodosmodelosexpostosnaTabela5.1,aplicamosnovamente

a técnicadeajustedecurvase modelamosasconstantesOvQ e O�V emfunçãoden.

Assim,expressõeslinearesforamelaboradaspararepresentarestasconstanteseo

seguintemodeloanalíticodobroadcastemn ep podeserobtido:

| H�I�J5K�L,}�~���������}�� Q6� � V�� ~�� � }�� [6� �%� � ~�� ���������W[ �4�| H�I�J�K�L}�~����f����}\���#����W�����W�.� ��� ��� �#���t� �%�4  � ~�� �}��#��������.¡.¢W¡ �£� � ��¤ � �t� �%�4  � ~�� ���������W[ �4� (5.1)

Prediçãodedesempenho

Atravésdomodelo5.1emfunçãoden ep, podemosrealizarprediçõesdetempos

de comunicaçãoda primitiva MPI_Bcastparao processomestre. A Tabela5.2

ilustra a acuráciado modeloexibindo umacomparaçãoentretempospreditose

medidoscom7 e12 escravos:

Tabela5.2: PrediçãodedesempenhoemsegundosdaprimitivaMPI _Bcast.eW^ � 7 escravos 12 escravos

inteiros Predição Medição erro(%) Predição Medição erro(%)

100 0,0977854 0,0977026 0,0847481 0,1318332 0,1297542 1,6022612

400 0,4044754 0,4046213 -0,0360580 0,5404032 0,5407695 -0,0677387

700 0,7111654 0,7114338 -0,0377294 0,9489732 0,9487701 0,0214074

1000 1,0178554 1,0178646 -0,0009012 1,3575432 1,3575507 -0,0005541

Comopodemosconferir, oserrospercentuaisforampequenosemtodososta-

manhosde mensagensutilizados. Infelizmente,devido ao númerode máquinas

donossocluster, o númerodeescravosenvolvidosnacomunicaçãotevedeserli-

mitadoem16,poisnostestesexecutadosapenasum processoeraalocadopor nó

deprocessamento.Assim,comosnóshomegêneoseamáquinaparaleladisponí-

veisnoambientedeteste(conformedescritonaseção4.4)limitamosaquantidade

total deprocessosem17.

Page 82: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 71

Tabela5.3: Temposmedidosemsegundoscoma primitivaMPI_Bcast.

Númerode Tamanhodamensagem( e�^ � inteiros)escravos 100 200 300 400 500

1 0,0321932 0,0657033 0,0997402 0,1341129 0,1680622

2 0,0662090 0,1337528 0,1973767 0,2684709 0,3376312

3 0,0982296 0,1979974 0,3025457 0,4045943 0,5056477

4 0,0951482 0,1998954 0,3029085 0,4048234 0,5064152

6 0,0967899 0,2005406 0,3021767 0,4046339 0,5065627

7 0,0977026 0,2001609 0,3027913 0,4046213 0,5068202

8 0,1296627 0,2713725 0,4052939 0,5415298 0,6770941

12 0,1297542 0,2812076 0,4049071 0,5407695 0,6774760

14 0,1304026 0,2705197 0,4051909 0,5405236 0,6775840

15 0,1311611 0,2807639 0,4054793 0,5404646 0,6773785

16 0,1599987 0,3401838 0,5061329 0,6768975 0,8463988

Númerode Tamanhodamensagem( e�^ � inteiros)escravos 600 700 800 900 1000

1 0,2015452 0,2358408 0,2701916 0,3039462 0,3376195

2 0,4053886 0,4733735 0,5416239 0,6093149 0,6757295

3 0,6091327 0,7110549 0,8128486 0,9159813 1,0178558

4 0,6096469 0,7118614 0,8136966 0,9157627 1,0172122

6 0,6094756 0,7108951 0,8134946 0,9159775 1,0180799

7 0,6093632 0,7114338 0,8126001 0,9159853 1,0178646

8 0,8132610 0,9491074 1,0839087 1,2199937 1,355674

12 0,8123119 0,9487701 1,0856632 1,220401 1,3575507

14 0,8137130 0,9496697 1,0848826 1,2219815 1,3572618

15 0,8135913 0,9484307 1,0843244 1,2218329 1,3571228

16 1,0171289 1,1869748 1,3573562 1,526226 1,6971765

Page 83: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 72

5.3 Reduce

5.3.1 Consideraçõessobrea implementaçãodo reduce

A implementaçãoda primitiva MPI_Reduce,considerandoo LAM-MPI, é pa-

recidacom o casodo broadcast. Novamente,atravésde análisesdo códigoda

operação,observamoso usodeum algoritmodecomplexidadelinearquandosão

envolvidos até3 escravos na comunicaçãoe um algoritmo =Z>¥@�A.B*CFE nosdemais

casos.O envio e o recebimentodosdadossãobaseadosnasoperaçõesponto-a-

pontosende receivee a dimensãodo hipercubo,formadoquandoexistem4 ou

maisescravos participandoda comunicação,dependejustamentedo númerode

escravosenvolvidos.

Quandoé adotadoo algoritmo linear, o mestreentraem um laço no qual a

cadaiteraçãodadossãorecebidose a operaçãode reduçãoé executada.Com

o algoritmode complexidade =?>�@�A.B�CFE , paralelamentealgunsprocessosenviam

dadosa outrosquerecebeme realizama reduçãodestesdados.A comunicação

e a subseqüentereduçãosãorepetidasatéa conclusãodaprimitivaMPI_Reduce,

quandoo resultadofinal podeserencontradonobuffer domestre.

Porém,o processamentoenvolvido na reduçãodosdadosadicionaum custo

computacionalextra à primitiva. A operaçãodereduçãoexecutadapodeseruma

daspré-definidaspelopadrãoMPI ouumaoutradefinidapelousuário.Nostestes

realizados,utilizamosaoperaçãopré-definidadesoma,MPI_SUM,queapresenta

complexidadelinearno tamanhodamensageme possuium custocomputacional

relativamentepequeno,poisconstituiapenasumasomadevetores.Destaforma,

emnossostesteso tempodespendidonaexecuçãodaprimitiva MPI_Reducefoi

determinadoprincipalmentepelotempodecomunicaçãoemsi.

5.3.2 Testesexecutadoscom o reduce

Os testescom a primitiva MPI_Reduce,realizadosno sistemacomputacional

apresentadona seção4.4 com o LAM 6.5.6, utilizaram as seguintesquantida-

desdeescravos: 2, 3, 4, 6, 8, 12 e 16. Foramexecutadostestescommensagens

de100000,200000,300000,400000,500000,600000,700000,800000,900000

e 1000000inteiros. O númeroderepetiçõescomcadaconfiguraçãovariouentre

Page 84: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 73

Tabela5.4: TemposmedidosemsegundoscomaprimitivaMPI_Reduce.

eW^ � Númerodeescravosinteiros 2 3 4 6 8 12 16

100 0,110004 0,158755 0,170498 0,173004 0,228302 0,230216 0,282141

200 0,212065 0,308099 0,330471 0,334748 0,442248 0,446571 0,548434

300 0,313124 0,456439 0,493591 0,500616 0,66121 0,66453 0,818264

400 0,415041 0,606389 0,652259 0,660781 0,876636 0,881875 1,078851

500 0,517274 0,760023 0,821215 0,831634 1,103612 1,108921 1,355867

600 0,620051 0,909924 0,975855 1,02075 1,308685 1,317672 1,610075

700 0,72161 1,058296 1,138025 1,145589 1,521236 1,531353 1,872243

800 0,827991 1,20759 1,300196 1,311219 1,737046 1,748567 2,137439

900 0,923458 1,34575 1,464809 1,477634 1,955013 1,967034 2,40843

1000 0,997512 1,491655 1,63699 1,66741 2,19278 2,210384 2,703436

30 e50 eosresultadospodemserconferidosnaTabela5.4.

5.3.3 Análise emfunçãodo tamanho da mensagem

A Figura5.3 refleteo comportamentodo MPI_Reduceemdecorrênciadealtera-

çõesno tamanhodamensagem,paradiferentesquantidadesdeescravosenvolvi-

dos. Podemosconstataro crescimentolinear no tempode comunicaçãoatravés

do gráficoou analisandoosvaloresapresentadosnaTabela5.4.

Além dosvaloresmedidoscomo reduce, a Figura5.3 ilustracurvasconstruí-

dascomo auxílio dasequaçõeslineareslistadasaseguir:

¦ 2 escravos: G�§�¨¥©�ª�I�¨�>�«¬E�N+^!_"^4e�a#lhn#idamS­>e�^0X�e�^ �4  E6X7«¦ 3 escravos: G�§�¨¥©�ª�I�¨�>�«¬E�N+^!_"^4e.g%bhgdc#umS­>e.i�X�e�^ �4  E6X7«¦ 4 escravos: G�§�¨¥©�ª�I�¨�>�«¬E�N+^!_"^%^hi#i%b#b4e�S­>e�l0X�e�^ �4  E6X7«¦ 6 escravos: G�§�¨¥©�ª�I�¨�>�«¬E�N+^!_"^%^hndcpi#ndbmS­>e�l0X�e�^ �4  E6X7«¦ 8 escravos: G�§�¨¥©�ª�I�¨�>�«¬E�N+^!_"^%^#bhndchb#i7S­>¥g#g�X�e�^ �4  E6X7«¦ 12 escravos: G�§\¨k©�ªRI�¨o>�«¬E�N+^!_"^%^#b#a#^#u%lmS­>¥g#g�X�e�^ �4  E6X7«

Page 85: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 74

1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05 8e+05 9e+05 1e+06

0.110

0.240

0.369

0.499

0.629

0.758

0.888

1.018

1.147

1.277

1.407

1.536

1.666

1.796

1.925

2.055

2.185

2.314

2.444

2.574

2.703

+

+

+

+

+

+

+

++

+

×

×

×

×

×

×

×

×

×

×

1e+05 2e+05 3e+05 4e+05 5e+05 6e+05 7e+05 8e+05 9e+05 1e+06

0.110

0.240

0.369

0.499

0.629

0.758

0.888

1.018

1.147

1.277

1.407

1.536

1.666

1.796

1.925

2.055

2.185

2.314

2.444

2.574

2.703

+

+

+

+

+

+

+

++

+

×

×

×

×

×

×

×

×

×

×

+ 2_slaves_measure× 3_slaves_measure⊕ 4_slaves_measure♦ 6_slaves_measure◊ 8_slaves_measure∆ 12_slaves_measure∇ 16_slaves_measure

2_slaves_predict3_slaves_predict4_slaves_predict6_slaves_predict8_slaves_predict12_slaves_predict16_slaves_predict

MPI_Reduce() em função do tamanho da mensagem − Processo emissor

Tem

po (s

egun

dos)

Tamanho da mensagem (inteiros)

Figura5.3: AnálisedoMPI_Reduceemfunçãodo tamanhodamensagem.

5.3.4 Análise emfunçãodo número deescravos

Ao fixarmoso tamanhodamensagemtransmitida,variandoapenaso númerode

escravosenvolvidos,observamosainfluênciadeterminantedoalgoritmonotempo

decomunicaçãodo reduce. Comodiscutimosnoinício daseção,o algoritmoado-

tadopelaimplementaçãoLAM daprimitivaMPI_Reduceapresentacomplexidade

linearaté3 escravose logarítmicaacimadestenúmero.

O gráficoilustradonaFigura5.4 deixaevidenteestecomportamento.Anali-

sandosomenteasbarrasverticaisrelativasa 4, 8 e 16 escravos podemosperce-

berum crescimentologarítmicoparatodosostamanhosdemensagem.Contudo,

noscasosde 6 e 12 escravos os valoresapresentadosforam bastantesemelhan-

tes aosde 4 e 8, respectivamente,indicandoum comportamentoconstantedo

MPI_Reducede4 a 7 e de8 a 15 escravos. Tal constânciapodeseratribuídaao

algoritmoadotadoemsuaimplementação,baseadoemum hipercubo,segundoo

qualo mestrerecebemensagensdesomente®�¯�°�±d²k³f´ escravose realizaa redução

sobreestesdados.

Page 86: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 75

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.000

0.141

0.281

0.422

0.563

0.703

0.844

0.985

1.125

1.266

1.407

1.547

1.688

1.829

1.969

2.110

2.251

2.391

2.532

2.673

2.813

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.000

0.141

0.281

0.422

0.563

0.703

0.844

0.985

1.125

1.266

1.407

1.547

1.688

1.829

1.969

2.110

2.251

2.391

2.532

2.673

2.813

MPI_Reduce() em função do número de escravos − Processo emissor

100000integers300000integers500000integers800000integers1000000integers

Tem

po (s

egun

dos)

Número de escravos

Figura5.4: AnálisedoMPI_Reduceemfunçãodonúmerodeescravos.

5.3.5 Modelo analítico do reduce eprediçãode desempenho

O MPI_Reducee o MPI_Bcastapresentamcomportamentosparecidosdevido às

semelhançasem seusalgoritmos. De forma análogaà modelagemda primitiva

broadcast, o reducepodesercaracterizadocomumaequaçãolinearno tamanho

da mensageme logarítmicano númerode escravos. Assim,na obtençãode seu

modeloexecutamoso mesmoprocedimentoadotadonamodelagemdobroadcast,

primeiramenteconstruindoequaçõeslogarítmicasempe,apartirdestasequações,

gerandoo modeloemfunçãoden ep.

A Tabela5.5 exibe asequaçõeslogarítmicasem p, geradascom os tempos

medidosnostestesutilizando4, 8 e16 escravos.

O gráficodoMPI_Reduceexibido naFigura5.4,bemcomoaanáliseemfun-

çãodo númerodeescravosapresentadaanteriormente,indicamcomportamentos

constantesdo reduceemdeterminadosintervalosdep. Porexemplo,de4 a7 ede

8 a 15 escravosa variaçãono tempodereducefoi bastantepequena,podendoser

atribuídaaoscilaçõesno desempenhodarededeinterconexãooudosnósdepro-

Page 87: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 76

Tabela5.5: ModelosdoMPI_Reduceemfunçãodonúmerodeescravos(p).Númerodeinteiros G�§�¨¥©ªRI�¨�>MCFE�NPORQTSUOWVµXjY�@�A�B%[kC!]

100000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_"^#i%bhi4e�l%lmSU^!_`^hi#i%uhg2eWc�XjY�@�A.Bd[\Cf]200000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_We%e�a%cha#b#i7SU^!_oe�^#u#b#u4e�l*XjY�@�A.Bd[\Cf]300000 G�§�¨k©�ªRI�¨o>¶CFE�N+^!_oe.n%^#lhndbqSU^!_WeWlhg%a#a#l%l*XZY�@�A�Bd[kCf]400000 G�§�¨k©�ªRI�¨o>¶CFE�N+^!_"g#g%b#a#l%^#lmSU^4_vg4e�ahgdb#l�XZY�@�A�Bd[kCf]500000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_vgdb!e.i%uhndumSU^!_"g%lhn%ahg%i%l*XjY�@�A.Bd[\Cf]600000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_"adchl#uhn#idumSU^!_`a!e.n4e�^%bhnqXjY�@�A.Bd[\Cf]700000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_`c#^#b!e.n%a%umSU^!_`a#lhn4e�^%b!etXjY�@�A.Bd[\Cf]800000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_`c#l#b#^hg%b%umSU^!_5cfe�u#lhg2eWc�XjY�@�A.Bd[\Cf]900000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_vi%g#n%a!e�l#n7SU^!_5cpn4e�u!e%e�l*XjY�@�A.Bd[\Cf]1000000 G�§\¨k©�ªRI�¨�>¶CFE�N­^!_vi%n%u#^hn%a#i7SU^!_"i%a#ahg#g%g%b*XjY�@�A.Bd[\Cf]

cessamento.Devido à existênciadestesintervalos,os modelosdo MPI_Reduce

apresentadosnaTabela5.5utilizam a funçãopisoparaajustarostempospreditos

conformeo númerodeescravosenvolvidosnacomunicação.

Comopodemosobservar analisandoa Tabela5.5,asconstantesOvQ e OWV apre-

sentamcrescimentolinearnotamanhodamensagem.Assim,utilizandoequações

linearesemn paraestimarosvaloresaproximadosdestasconstantes,obtivemoso

seguintemodeloanalíticoparao tempodoprocessomestre:

| §�¨k©�ªRI�¨R}�~���������}�� Q6� � V¬� ~�� � }�� [6� �%� � ~�� ���������W[ �4�| §\¨k©�ªRI�¨R}�~����f����}\���#����.� � ¡���· � ·%�,¡o� ¤m��� �%�4  � ~�� �}��#���� ��¤ �.¢ ¤q� ·%�,� �m��� �%�4  � ~�� ���������W[ �4� (5.2)

Prediçãodedesempenho

Com a aplicaçãodo modeloanalíticodo MPI_Reduceé possível predizermos

temposdeexecuçãodaprimitivaparaoutrostamanhosdemensagensounúmeros

deescravos. Confirmandoa validadedamodelagemrealizada,a Tabela5.6apre-

sentatemposmedidosepreditos,bemcomoosrespectivoserrospercentuais,para

testesvariandon e p.

Em todosostestesrealizadosobjetivandoa obtençãodemodelosparaaspri-

Page 88: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 77

Tabela5.6: PrediçãodedesempenhodaprimitivaMPI _Reduce*.eW^ � 18 escravos 19 escravos

inteiros Predição Medição erro(%) Predição Medição erro(%)

50 0,1473741 0,1468832 0,3342064 0,1473741 0,1479854 -0,4130820

70 0,2009121 0,2012079 -0,1470167 0,2009121 0,2015464 -0,3147186

1700 4,564259 4,5628476 0,0309326 4,564259 4,55656 0,1689648

2000 5,367329 5,3658528 0,0275105 5,367329 5,3570719 0,1914690

* temposemsegundos.

mitivasdecomunicaçãoMPI, conformemensionadonaseção4.2,apenasumpro-

cessoeraalojadopor máquina.Contudo,asprediçõesdedesempenhodo reduce

exibidasna Tabela5.6 incluematé19 escravos, excedendoo númerode nósde

processamentodisponíveisemnossocluster. Paraisso,foi necessárioalojarmos

maisdeum escravo namáquinaparalela(osdemaisnósreceberamsomenteum

processo)1.

Emboraissopossa,teoricamente,aumentarosoverheadsdeenvio e recepção

nasoperaçõesdecomunicaçãoenvolvendoa máquinaparalela,os resultadosfo-

rambastantesatisfatórios.Somenteprocessosescravoseramdirecionadosa esta

máquinae oserrosentreosvalorespreditose ostemposmedidosficaramabaixo

de1%, inclusivenasprediçõescommensagensmenores.

5.4 Barrier

5.4.1 Consideraçõessobrea implementaçãoda barr eira

Naexecuçãodeumabarreira,asincronizaçãopodeserrealizadaatravésdetrocas

depequenasmensagensentreosprocessosparticipantesdacomunicação.Anali-

sandoo códigodo LAM-MPI, observamosqueestasmensagensconstituemape-

nassinaisde reconhecimento,transmitindo0 elementosdo tipo MPI_BYTE, e

sãotrocadasfazendousodasprimitivasMPI_SendeMPI_Recv(modopadrãodo

sendbloqueante).Ao executara primitivaMPI_Barrier, o processomestre(rank

1Nas execuçõescom 19 escravos, por exemplo, o mestree os 15 primeirosescravos eramalojadosnosnósmonoprocessadose os4 restantesnamáquinaparalela.

Page 89: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 78

igual a0) primeiramenterecebeedepoisenvia umsinalaosdemais.

O LAM-MPI utiliza um algoritmode complexidadelinear e outro =?>�@�A�B0CxEna implentaçãodo MPI_Barrier. Quandoa comunicaçãoenvolve um númerode

até4 processos,o mestreexecutadoislaços:noprimeiroelerecebeeno segundo

envia sinaisde reconhecimentoaosdemaisprocessos.Seo númerofor superior

a 4, um hipercuboigual ao criadono casodo broadcasté utilizado e o mestre

recebee envia sinaisa Y�@�A�B%[\C!] outrosprocessos,queficam encarregadosde se

comunicaremcomosdemaisparticipantesdaoperaçãodebarreira.

5.4.2 Testesexecutadoscom barr eiras

A Tabela5.7apresentaosresultadosobtidosnostestescomo MPI_Barrier, vari-

andoo númerodeprocessosentre2 e17:

Tabela5.7: TemposmedidosnostestescomaprimitivaMPI_Barrier*.p Tempo p Tempo

2 0,0001609 10 0,00046843 0,000229 11 0,0004624 0,0002432 12 0,0004865 0,00031 13 0,00049126 0,0003350 14 0,00049867 0,0003453 15 0,00051708 0,0004602 16 0,00062189 0,0004674 17 0,0006244

* p = númerodeprocessos,tempoemsegundos.

Comoasmensagenstrocadasdurantea execuçãodo MPI_Barrierconstituem

apenassinaisde reconhecimento,os temposde comunicaçãotendema serbas-

tantepequenos. Conseqüentemente,as oscilaçõesapresentadascostumamser

maioresquenostestesexecutadoscomo broadcaste o reduce, por exemplo,nos

quaisasmensagenseostempossãomuitomaiores.

Procurandominimizar tais oscilações,nostestescom a operaçãode barreira

adotamosum númeromaiorde repetições(100 execuções)e forçamosumasin-

cronizaçãoexplícita dosprocessosantesdemedirmoso tempodaoperação.No

Page 90: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 79

programaelaboradoparaa mediçãoda barreira,a primitiva MPI_Barrieré cha-

madaduasvezes,sendoaprimeirautilizadaapenasparagarantirqueosprocessos

realmenteestejamsincronizadosantesdamedição.Destaforma,podemosevitar

ainfluênciadeeventuaisatrasosprovenientesdacriaçãodosprocessos.Nostestes

comasdemaisprimitivasdecomunicaçãonãofoi necessárioexecutara sincroni-

zaçãopréviapois,considerandoqueostemposerammuito maiores,estesatrasos

nãosãocapazesdeprovocargrandesalteraçõespercentuaisnostemposmedidos.

5.4.3 Análise emfunçãodo número deprocessos

O gráficodaFigura5.5 ilustrao desempenhodo MPI_Barrieremfunçãodo nú-

merodeprocessos(p). Podemosnotarumcomportamentosemelhanteaoapresen-

tadopelasprimitivasbroadcaste reduce, principalmentea partir de5 processos,

quandovisualizamostrêsdegrausdistintos( i¹¸ºC»¸Pn , u¹¸ºC¼¸½e.i e C¿¾½e�l ).Emvirtudedosvaloresserempequenos,observamosnacurvadoMPI_Barrier

algunspontosnosquaiso comportamentodaprimitivanãosemostrouuniforme.

Porexemplo,devido aosalgoritmosutilizadosnaimplementaçãodaoperaçãode

barreira,espera-seumdesempenholinearentre2 e4 processoseconstantenosin-

tervalosde5 a7 ede8 a15,contudo,acurvaexibeoscilaçõesnotempodaprimi-

tiva. Emborataisvariaçõestenhamocorridono comportamentodo MPI_Barrier,

seudesempenhopodeser modeladoatravés de uma equaçãologarítmicapara

CÀ¾Ái , comoé possível notaranalisandoos pontosreferentesa 5, 8 e 16 pro-

cessos.

5.4.4 Modelo analítico

O gráficodo MPI_Barrier, elaboradoa partir dostemposmedidos(Figura5.5),

exibe um comportamentologarítmicoemfunçãodo númerodeprocessos.Desta

forma, atravésde umaequaçãologarítmicapodemosmodelaradequadamenteo

desempenhoda primitiva e demonstrara influênciado algoritmousadoem sua

implementação.

Conformediscutimosnasubseção5.4.1,quandomaisde4 processossãoen-

volvidos na comunicaçãoo mestreprimeiramenterecebee depoisenvia mensa-

gensa Y�@�A�B%[\Cf] escravos.Nestecasoostemposdesende receivesãoconsiderados

Page 91: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 80

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.00e+00

7.49e−05

1.50e−04

2.25e−04

3.00e−04

3.75e−04

4.50e−04

5.24e−04

5.99e−04

6.74e−04

7.49e−04

∆∆

∆∆ ∆

∆ ∆ ∆ ∆∆ ∆ ∆

∆ ∆

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.00e+00

7.49e−05

1.50e−04

2.25e−04

3.00e−04

3.75e−04

4.50e−04

5.24e−04

5.99e−04

6.74e−04

7.49e−04

∆∆

∆∆ ∆

∆ ∆ ∆ ∆∆ ∆ ∆

∆ ∆

MPI_Barrier() − Processo mestre

Tem

po (

segu

ndos

)

Número de processos

Figura5.5: AnálisedoMPI_Barrieremfunçãodo númerodeprocessos.

constantes,poistodasasmensagenstransmitem0 elementos,eo desempenhodo

MPI_Barrierpodesercaracterizadoatravésdaequação:

ÂkÃ�Ä,Å\ÅkƶǥÅWÈÊÉ�Ë�ÌÎÍ�Ï�ÐRÑ�Ò\É2Ó{Ե Å�ÇkÕ�Ç�Æ×Ö,Ç È�ØpËxÙÚÍ�Ï�Ð�ÑWÒkÉ2Ó{ÔµÂ\Û¥Ç�ÜWÝ.È�ØpËxÙ£ÞÌÎÍ�Ï�Ð�Ñ�Ò\É2Ó{ÔyÈ� Å�Ç¥Õ�Ç¥Æ×Ö,Ç È�ØpËxÙßÂ\Û¥Ç�ÜWÝ.È�ØpË�ËxÙßà%á�̺à%á6Ù�Í�Ï�ÐRÑ�Ò\É2Ó{ÔTàpâ

(5.3)

A constanteindicadaporÞ

representaalgumoverheadocasionadopelaexe-

cuçãodaprimitiva,podendoserdecorrente,por exemplo,depequenasoperações

executadas.Considerandoestaequaçãoe a partir dostemposcoletadosnostes-

tescomo MPI_Barrier, elaboramoso seguintemodeloanalíticoparao tempodo

processomestre:

ÂkÃ�Ä,Å\ÅkƶǥÅWÈÊÉ�Ë�̺ã#äã�ã�ã�ãWå�æ�çmÙßã#äã�ã�ãhè`å�åpètÔ�Í�Ï�Ð�ÑWÒkÉ2Ó(5.4)

Page 92: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 81

Tabela5.8: Acuráciado modeloanalíticodaprimitivaMPI_Barrier*.Processos Predição Medição erro(%)

5 0,0003345 0,00031 7,9036 0,0003345 0,0003350 -0,1497 0,0003345 0,0003453 -3,1288 0,0004786 0,0004602 3,9989 0,0004786 0,0004674 2,39610 0,0004786 0,0004684 2,17811 0,0004786 0,000462 3,59312 0,0004786 0,000486 -1,52313 0,0004786 0,0004912 -2,56514 0,0004786 0,0004986 -4,01115 0,0004786 0,0005170 -7,42716 0,0006227 0,0006218 0,14517 0,0006227 0,0006244 -0,272

* temposemsegundos

Na construçãodo modelo,calculamosasmédiasdostemposparacadainter-

valo ( i<¸ê齸ën , u9¸ìéθíe.i e éξîe�l ) e aplicamoso métodode ajustede

curvasdescritonaseção4.2.3sobreestasmédias,obtendoumaequaçãologarít-

mica. Assimcomonoscasosdo broadcaste do reduce, utilizamosa funçãopiso

no intuito deajustaraprediçãoconformeo númerodeprocessosenvolvidos.Em-

borao comportamentodaprimitiva duranteos testestenhaapresentadoalgumas

oscilações,o modeloelaboradomostrouuma precisãorazoável. A Tabela5.8

exibe os tempospreditos,osmedidose osrespectivoserrospercentuais,queem

todososcasosforaminferioresa8%.

5.5 All-to-all

A modelagemdasprimitivascoletivas,descritanasseçõesanteriores,possibili-

tou a conclusãodo estudodasoperaçõesprevistasem nossosobjetivos iniciais.

Em vista dosbonsresultadosalcançados,decidimosincluir em nossapesquisa

uma outra primitiva com um padrãode comunicaçãodiferente,podendoapre-

sentarnovascomplicaçõesao processode modelagem.Destaforma, nestase-

Page 93: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 82

çãoefetuamosumaextensãoao nossotrabalhodetalhandoalgumasanálisesdo

MPI_Alltoall. Tratando-sede uma comunicaçãodo tipo vários-para-vários,a

quantidadede mensagenstrocadasentreos processosé relativamentealta e ou-

trosfatoresrelacionadosaodesempenhodarededeinterconexão,comoo número

de colisõesno switch, tendema exercermaior influênciano tempode execução

daprimitiva.

5.5.1 Consideraçõessobrea implementaçãodo all-to-all

Naoperaçãodecomunicaçãoall-to-all, cadaprocessoenvia erecebeumamensa-

gemdecadaumdosdemaisintegrantesdogrupo.O fatodasmensagenstrocadas

seremtodasdistintasdificulta o usoemsuaimplementaçãodealgoritmosbasea-

dosemárvoresouhipercubos,quesãomaiseficienteseapresentamcomplexidade

logarítmica.No casodestesalgoritmos,um melhordesempenhoé obtidoatravés

daparalelizaçãodastrocasdemensagens:considerandoo MPI_Bcast,por exem-

plo, o mestrepodeenviar osdadosa algunsescravose encarregá-losderepassar

aosdemaissimultaneamente.

Porém,comoosdadostransmitidose recebidosdurantea execuçãodo all-to-

all sãodiferentesparacadaprocesso,asoluçãomaisdiretaérealizaracomunica-

çãoutilizandoprimitivasponto-a-ponto.OLAM-MPI implementaoMPI_Alltoall

destamaneira,fazendousoaindadeestruturasderepetiçãoparaenviar e receber

as mensagens.Assim, ignorandoa influênciade outrosfatoresdecorrentesdo

grandetráfego dedadoscriadonarededeinterconexãoe no switch, podemosdi-

zer queo desempenhoesperadodo MPI_Alltoall é linear tantono tamanhoda

mensagemcomononúmerodeprocessosenvolvidos.

5.5.2 Testesrealizadoscom o all-to-all

Os testesrealizadoscom o MPI_Alltoall utilizaramtamanhosde mensagens(n)

de120000,360000,600000e1080000inteiroseasseguintesquantidadesdepro-

cessos(p): 2, 4, 5, 8, 10, 12 e 16. A Tabela5.9 expõeasmédiasdos tempos,

calculadascom os valoresinferioresa 1,8 vezeso menortempo(conformedes-

crito nasubseção4.2.2),eo respectivo desviopadrãoSdecadaconfiguração.

Page 94: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 83

Tabela5.9: Temposmedidos(segundos)edesviopadrãoS doMPI_Alltoall.Tamanhodamensagem(inteiros)

120000 360000 600000 840000 1080000

2 tempo 0,0362835 0,1029136 0,1738478 0,2440657 0,3162579

processos S 0,0000973 0,0058279 0,0180261 0,0215186 0,0203007

4 tempo 0,0495185 0,1417801 0,234671 0,3292119 0,4225442

processos S 0,0016014 0,0024166 0,0013210 0,0029709 0,0311542

5 tempo 0,0540149 0,1569911 0,2567173 0,3635781 0,4676668

processos S 0,0035756 0,0293664 0,0811419 0,0455725 0,1175860

8 tempo 0,0542019 0,1756027 0,2910413 0,4662323 0,5457241

processos S 0,0035309 0,0910173 0,0387500 0,0627439 0,0950959

10 tempo 0,0564610 0,2722008 0,4064324 0,4663500 0,5909906

processos S 0,0008809 0,0609094 0,0439259 0,0274218 0,0661314

12 tempo 0,0561209 0,2367363 0,4199213 0,4738201 0,5742007

processos S 0,0004053 0,1050488 0,0504195 0,0728449 0,0408647

16 tempo 0,0574607 0,3251201 0,4093525 0,4910278 0,5895586

processos S 0,1087531 0,0717731 0,0985304 0,064100 0,0433598

AnalisandoosvaloresdeS, podemosconstatarqueemalgunscasosostempos

medidosapresentaramumavariaçãomuito grande.Por exemplo,nasexecuções

com mensagensde tamanho360000,verificamosum desviosuperiora 40% da

médiadosvaloresparao casode 12 processose de 50%parao casode 8. Nos

testescomp=16en=120000encontramosamaiorvariaçãoentrevaloresmedidos,

por issoa Tabela5.9 indica um desviopadrãode 0,1087531paraum tempode

apenas0,0574607segundos.

Em váriasoutrasconfiguraçõespodemosobservar aindadesviossuperioresa

10%deseustemposmédios.Provavelmente,estesnúmerosrefleteminfluências

do grandetráfego dedadosnarededeinterconexãoe,principalmente,no switch.

EnquantoosvaloresdeSobservadosparap=2 ep=4 foram,emsuamaioria,infe-

rioresa 10%deseustemposmédios,nostestesenvolvendoquantidadesmaiores

deprocessostal percentagemmostrou-seemgeralelevada.Assim,osresultados

indicamqueo valorpercentualdodesviopadrãofoi maiorquandomaisprocessos

estavamenvolvidosnacomunicação.

Obviamente,quantomaioresos tamanhosdemensagense o númerodepro-

Page 95: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 84

cessos,o congestionamentoda redee do switch tendema aumentar. Emborao

switch possa,teoricamente,prover a largura de bandaintegral da redemesmo

quandováriasmensagenssãotransmitidassimultaneamente,épossívelqueocorra

congestionamentoemumadesuasportase, conseqüentemente,algumoverhead

extra semuitasmensagensforemendereçadasaela.

5.5.3 Análise emfunçãodo tamanho da mensagem

OsgráficosexpostosnaFigura5.6ilustramo comportamentodoMPI_Alltoall em

funçãodo tamanhoda mensagem.Além do desempenhoobservadonostempos

medidos,sãoexibidasalgumascurvasgeradascomauxílio dasequaçõeslineares

listadasabaixo:

¦ 2 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�NÀô�^!_"^#^%^#l#^!e.iyS­òkg2_"bhg4eyX0e�^ �4  ó6Xy«¦ 4 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�N­^!_`^#^hg4e.n�chamS­ò�a!_"u#b�X0e�^ �4  ó6X7«¦ 5 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�N­^!_`^#^!e�ahgd^#bmS­ò�cf_"a#^%u*X�eW^ �4  ó6Xy«¦ 8 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�NÀô�^!_"^!e%e�uhi%umS+òki4_`a#^hn*X0e�^ �4  ó6Xy«¦ 10 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�N+^4_"^%cpg%l%u%chbmS+òki4_vgdl#a�X�eW^ �4  ó6Xy«¦ 12 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�N+^4_"^#a#a#udchbqS­ò¥i4_"a#^hi*X�e�^ �4  ó6X7«¦ 16 processos:GJ�ïðïðLMñkJ�ïðï\ò�«�ó�N+^4_"^#l#l#b#n%u!e�S+òki4_We�g#i*X�eW^ �4  ó6Xy«Considerandoascurvasde2, 4 e 5 processos,a Figura5.6 mostracomporta-

mentosdeacordocomo esperado(linearemn, conformemencionamosno início

daseção).Porém,nosdemaisvaloresdep observamosdesempenhosvariadose

nãocompatíveiscomascurvasobtidasa partir dasequaçõeslineares.No inter-

valo de n variandoentre120000e 600000,ascurvasde mediçãoreferentesa 8

e 12 processosdemonstraramcomportamentolinear, aopassoquea curva de10

processosmostrou-sebastanteirregular. Analisandoa configuraçãocomo maior

valor dep, 16,entremensagensde360000a 1080000inteirospodemosperceber

um crescimentopróximoaolinear.

Page 96: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 85

1.20e+05 3.60e+05 6.00e+05 8.40e+05 1.08e+06

0.0000

0.0234

0.0468

0.0702

0.0935

0.1169

0.1403

0.1637

0.1871

0.2105

0.2338

0.2572

0.2806

0.3040

0.3274

0.3508

0.3741

0.3975

0.4209

0.4443

0.4677

+

+

+

+

+

×

×

×

×

×

1.20e+05 3.60e+05 6.00e+05 8.40e+05 1.08e+06

0.0000

0.0234

0.0468

0.0702

0.0935

0.1169

0.1403

0.1637

0.1871

0.2105

0.2338

0.2572

0.2806

0.3040

0.3274

0.3508

0.3741

0.3975

0.4209

0.4443

0.4677

+

+

+

+

+

×

×

×

×

×

MPI_Alltoall() em função do tamanho da mensagem − Processo emissor

+ 2_processos_medicao× 4_processos_medicao⊕ 5_processos_medicao

2_processos_predicao4_processos_predicao5_processos_predicao

Tem

po (

segu

ndos

)

Tamanho da mensagem (inteiros)

1.20e+05 3.60e+05 6.00e+05 8.40e+05 1.08e+06

0.0000

0.0310

0.0621

0.0931

0.1241

0.1551

0.1862

0.2172

0.2482

0.2792

0.3103

0.3413

0.3723

0.4033

0.4344

0.4654

0.4964

0.5274

0.5585

0.5895

0.6205

+

+

+

+

+

×

×

×

×

×

1.20e+05 3.60e+05 6.00e+05 8.40e+05 1.08e+06

0.0000

0.0310

0.0621

0.0931

0.1241

0.1551

0.1862

0.2172

0.2482

0.2792

0.3103

0.3413

0.3723

0.4033

0.4344

0.4654

0.4964

0.5274

0.5585

0.5895

0.6205

+

+

+

+

+

×

×

×

×

×

MPI_Alltoall() em função do tamanho da mensagem − Processo emissor

+ 8_processos_medicao× 10_processos_medicao⊕ 12_processos_medicao♦ 16_processos_medicao

8_processos_predicao10_processos_predicao12_processos_predicao16_processos_predicao

Tem

po (

segu

ndos

)

Tamanho da mensagem (inteiros)

Figura5.6: MPI_Alltoall emfunçãodo tamanhodamensagem.

Page 97: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 86

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.0000

0.0314

0.0627

0.0941

0.1255

0.1568

0.1882

0.2195

0.2509

0.2823

0.3136

0.3450

0.3764

0.4077

0.4391

0.4705

0.5018

0.5332

0.5645

0.5959

0.6273

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0.0000

0.0314

0.0627

0.0941

0.1255

0.1568

0.1882

0.2195

0.2509

0.2823

0.3136

0.3450

0.3764

0.4077

0.4391

0.4705

0.5018

0.5332

0.5645

0.5959

0.6273

MPI_Alltoall() em função do número de processos − Processo emissor

120000integers360000integers600000integers840000integers1080000integers

Tem

po (s

egun

dos)

Número de processos

Figura5.7: MPI_Alltoall emfunçãodo númerodeprocessos.

5.5.4 Análise emfunçãodo número deprocessos

Observandoo gráfico do MPI_Alltoall apresentadona Figura 5.7, percebemos

um comportamentolinear em p, no intervalo de 2 a 5 processos,paratodosos

tamanhosdemensagensutilizados.De formasemelhanteà análiseemfunçãode

n apresentadana subseçãoanterior, nasconfiguraçõescom õzöø÷ encontramos

desempenhosvariados.Aumentandoo númerode processosentre8 e 16, como

podemosverificar no gráfico,o comportamentoda primitiva mostra-seirregular

com mensagensde 360000e 1080000e constantecom mensagensde 120000

elementos.

Desempenhosdistintostambémpodemsernotadosaoassumirmosparan os

valoresde 600000e 840000. Ao passoquecom a primeiraquantidadede ele-

mentoso tempopermanecepraticamenteconstanteem10, 12 e 16 processos,no

segundocasoo períododeconstânciaéobservadocomp entre8 e12.

Page 98: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 87

5.5.5 Influência de outrosfatores

As oscilaçõesobservadasnocomportamentodoMPI_Alltoall dificultamo estudo

e a modelagemdo seucomportamento.Tratando-sedeum trabalhocomfins de

predizertemposde execução,precisamoselaborarmodeloscapazesde abstrair

osprincipaisfatoresquedeterminamestetempo.Assim,faz-senecessáriocom-

preenderos motivos dasvariaçõesde comportamentoda primitiva e identificar

mecanismosparaexpressá-lospor meiodemodelos.

As análisesapresentadasdo all-to-all indicamdesempenhosirregulares,prin-

cipalmentequandoum númeromaior de processosestava envolvido. Conside-

randoo alto volumedemensagensenviadase recebidaspor cadaprocessonestes

casos,é possível queocorraumasobrecarga em algumasdasportasdo switch.

Cadaumadestasportasé conectadaa um certonó deprocessamentodo cluster,

sendoutilizadatantoparaenvio comorecepçãodedados,eestásujeitaadetermi-

nadalarguradebanda.Além disso,o númerodecolisõesocorridase o padrãode

comunicaçãoimplementadotambémpodemprovocaralteraçõesno desempenho

daprimitiva.

Portanto,o comportamentodoMPI_Alltoall podeserinfluenciadopor fatores

relacionadosao grandevolumede comunicaçõesestabelecidas.Uma forma de

estudarestasinfluências,talvez identificandonovos parâmetrosparamodelaro

tempodespendidonaexecuçãodaprimitiva,seriaatravésdo monitoramentodas

portasdo switch. Analisandoo comportamentode umade suasportasem situ-

açõesenvolvendoum volumesignificativo de trocasde dados,acreditamosser

possível compreendermelhorseudesempenhoe,conseqüentemente,suainfluên-

ciano tempodecomunicação.

5.6 Prediçõescom grandesquantidadesde proces-

sos

Em virtude do númerolimitado de máquinasdisponíveis em nossolaboratório,

nãofoi possível a realizaçãodetestescommaioresquantidadesdeprocessos(p).

Contudo,nestaseçãoapresentamosum estudosobreo provável comportamento

dasprimitivasMPI_Bcast,MPI_Reducee MPI_Barrierquandonúmerosgrandes

Page 99: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 88

sãoatribuídosap. Fazendousodosmodelosanalíticoselaboradoseapresentados

nasseçõesanteriores,variamosp eobtivemosnovostemposdecomunicação.

A Figura5.8 mostraos gráficosconstruídoscom os resultadosobtidos. No

casodo broadcaste do reduce, utilizamosmensagensde1500000e 2000000in-

teirose variamoso númerodeescravosde4 a 256. As quantidadesdeprocessos

assumidasnasprediçõescom a operaçãode barreiratambémpertenciamao in-

tervalo de 4 a 256. Devido ao fato dosmodelosteremsido elaboradosa partir

dostestesexecutadosnoambientecomputacionaldescritonaseção4.4,ascurvas

indicamo possível comportamentodasprimitivasemumclusterespecífico.

5.7 Consideraçõesfinais

Atravésdasanálisese modelosanalíticosapresentadosnestecapítulo,executa-

mos uma segundafasede nossosestudose finalizamosos trabalhosdesenvol-

vidos. Foramcaracterizadasalgumasprimitivasde comunicaçãocoletiva MPI,

procurandoesclareceros principaisfatoresque influenciamos seustemposde

execução.Além dasprimitivasprevistasem nossosobjetivos, descrevemosum

estudocomo MPI_Alltoall. Ao final do capítulo,algunsgráficosexpostosilus-

tramo desempenhoesperadodo MPI_Bcast,do MPI_Reducee do MPI_Barrier

segundoos modeloselaborados,simulandoa existênciade grandesquantidades

deprocessos.

Um último comentário,comparandoostemposobtidoscomo MPI_Send(Ta-

bela4.1)e o MPI_Bcastnostestescomapenasum escravo (Tabela5.3),aindase

faznecessário.Analisandoosvalores,podemosperceberqueostemposdobroad-

castficaramabaixodaquelesobservadoscomaoperaçãosend. Umapossível jus-

tificaticaparaessefatoestárelacionadacomadisposiçãodasmáquinasemnosso

cluster: duranteos testesexperimentais,asmáquinasenvolvidas nasmedições

com asoperaçõesponto-a-pontonãoforam asmesmasutilizadasnasexecuções

do MPI_Bcastcom um escravo. Emboraos nósde processamentodispusessem

damesmaconfiguração,estavamconectadosa diferentesportasdo switch. Con-

tudo,maioresconclusõessobreestasvariaçõesobservadasnostemposrequerem

a realizaçãodenovostestesedeumestudomaisaprofundado.

Page 100: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 5. PRIMITIVAS DE COMUNICAÇÃO COLETIVA 89

4 46 88 130 172 214 2560.00

0.61

1.22

1.83

2.45

3.06

3.67

4.28

4.89

5.50

6.12

Tem

po (s

egun

dos)

Número de escravos

Predição do MPI_Bcast() em função do número de escravos − mestre

Bcast2000000

Bcast1500000

4 46 88 130 172 214 2560.00

0.96

1.91

2.87

3.83

4.78

5.74

6.70

7.65

8.61

9.57

4

Reduce2000000

Reduce1500000

Predição do MPI_Reduce() em função do número de escravos − mestre

Tem

po (s

egun

dos)

Número de escravos

4 46 88 130 172 214 2560.00000

0.00012

0.00024

0.00036

0.00048

0.00060

0.00072

0.00084

0.00096

0.00108

0.00120

Predição do MPI_Barrier() em função do número de processos − mestre

Tem

po (s

egun

dos)

Número de processos

Barrier

Figura5.8: Prediçõesemfunçãodep (broadcast, reduceebarreira).

Page 101: Modelagem e Predição de Desempenho de Primitivas de

Capítulo 6

CONCLUSÕES

O usode clusters deestaçõesde trabalhonasoluçãode problemascomrequisi-

tos de alto desempenhoe altadisponibilidade,principalmentenosúltimos anos,

temdemonstradocrescimentoe impulsionadoo desenvolvimentodetecnologias

na área. Devido ao fato destasmáquinasconstituiremsistemascomputacionais

de memóriadistribuída,o potencialparao processamentoparaleloe distribuído

provisto por suasarquiteturaspodesermelhorexploradoemaplicaçõesbaseadas

emtrocasdemensagens.

Nesteintuito, o modelode programaçãoatravésde passagemde mensagens

podeoferecercondiçõesparaa obtençãode melhoresdesempenhos.Fazendo

usodebibliotecasapropriadas,comoo conjuntodefunçõesdisponibilizadaspelo

padrãoMPI (Message PassingInterface), aplicaçõessãoconstruídasnasquaisa

trocade informaçõesentreos processosé realizadacom primitivasde comuni-

cação.E estájustamenteno tempodespendidona execuçãode tais primitivaso

enfoquedo trabalhoapresentado.

Apoiadosemmediçõesde temposexperimentaise técnicasdeajustedecur-

vas,realizamosanálisese elaboramosmodelosanalíticosdeprediçãodedesem-

penhodeoperaçõesdecomunicaçãobloqueanteMPI. Destaforma,foramcarac-

terizadasoperaçõesponto-a-pontoe coletivase o trabalhoaindaapresentouum

conjuntode funçõesdesenvolvidascomo objetivo deoferecersuportea ativida-

desdeanáliseepredição.

90

Page 102: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 6. CONCLUSÕES 91

6.1 Realizaçãodosobjetivos

Conformeosobjetivospropostosinicialmente,nestetrabalhodesenvolvemosmo-

delosanalíticose análisesdedesempenhodasseguintesprimitivasdecomunição

MPI:

ù MPI_Send(sendpadrão);

ù MPI_Bsend(modobuffereddo sendpadrão);

ù MPI_Ssend(modosíncronodo sendpadrão);

ù MPI_Rsend(modoreadydo sendpadrão);

ù MPI_Bcast(primitivadecomunicaçãocoletivabroadcast);

ù MPI_Barrier(operaçãodebarreira);

ù MPI_Reduce(operaçãocoletivaderedução).

Através dos modelosgerados,foram realizadasprediçõesde temposde execu-

çãovariandoo tamanhodasmensagense, nascomunicaçõescoletivas,também

o númerode processosenvolvidos. Os resultadosobtidosdemonstrarama pre-

cisãodosmodelos,sendoosmaioreserrospercentuaisobservadosnoscasosem

que os temposerampequenos.Na maioria dos testese prediçõesexecutadas,

encontramosdiferençasentrevalorespreditose medidosinferioresa 8%. Além

dasprimitivasMPI listadasacima,apresentamosalgumasanálisesda operação

coletivaall-to-all.

Tratando-sedeum estudosobreo tempodespendidoemcomunicações,mui-

tasvezesencontramoscomportamentosestranhosnestestempos,principalmente

emfaceàsoscilaçõesno desempenhodaredede interconexãoe do switch. Para

caracterizarcorretamenteostemposdasprimitivasMPI, precisamosadotarproce-

dimentosapropriadose isolarasinfluênciasdefatoresnão-determinísticos.Atra-

vésde algunscuidadosobedecidosduranteo processode mediçãoe tratamento

dosdados,procuramosobtervalorescapazesde expressarde forma coerenteos

temposdecomunicação.

Page 103: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 6. CONCLUSÕES 92

Ostestesforamexecutadoscomo LAM-MPI e,como intuito decompreender

melhoro comportamentodasprimitivas,estudamoso códigoreferenteà imple-

mentaçãodasoperaçõesdecomunicaçãoanalisadas.A influênciadosalgoritmos

utilizadosficou fortementecaracterizadanasequaçõesdasoperaçõescoletivas.

Poroutrolado,emumestudocomprimitivasponto-a-pontoconseguimosmelho-

raraprecisãodosmodelosrealizandoamodelagempor intervalose,destaforma,

obtivemosequaçõesdistintasparadiferentestamanhosdemensagens.

O métodoutilizadonosajustesdecurva,denominadodemínimosquadrados,

tendea reduziros erroscom valoresmaioresem detrimentodosmenoresvalo-

res. Uma maneirade aperfeiçoarmosa técnica,possibilitandoreduziros erros

percentuais,seriausarmosumamatrizdepesosnaobtençãodoscoeficientesdas

equaçõese atribuirmospesosdistintosparadiferentespontosdacurva dedesem-

penho.

Dentreosobjetivosiniciais do trabalho,pretendíamosaindaidentificartécni-

caseferramentascapazesdeoferecersuporteaoprocessoestabelecidopelameto-

dologiadeanáliseeprediçãoadotada.Nesteintuito, desenvolvemosumconjunto

de funçõesparafacilitar e automatizaralgumastarefas inerentesà aplicaçãoda

metodologia.Convémdestacarasseguintesfacilidadesoferecidaspelasfunções:

ù seleçãodetemposmedidosecálculodemédiase dodesviopadrão;

ù elaboraçãodemodelosanalíticos;

ù geraçãodegráficosdedesempenhoe dadoscomparativos(medição,predi-

çãoe errospercentuais).

6.2 Trabalhos futur os

Com o cumprimentodosobjetivospropostos,podemosvislumbraroutrostraba-

lhosa seremrealizados,complementandoe estendendoo estudodescrito.A se-

guir listamosalgumassugestõesdetemasaseremtratadosempesquisasfuturas:

ù ElaboraçãodeumabibliotecadefunçõesScilabparaanálisee prediçãode

desempenho.Como aprimoramentoe extensãodasfunçõesjá disponibili-

Page 104: Modelagem e Predição de Desempenho de Primitivas de

CAPÍTULO 6. CONCLUSÕES 93

zadas,épossível o desenvolvimentodeumabibliotecadesuporteaativida-

desdeanálisee prediçãocomsuportedo Scilab.

ù Testescom outrasimplementaçõesdo padrãoMPI. Uma extensãodo tra-

balhoapresentadoseriarealizadaatravésdetestesdosmodelosteóricosem

outrasimplementaçõesMPI, comopor exemploo MPICH. Possivelmente,

algumasvariaçõesdecomportamentosejamconstatadase, nestecaso,no-

vosmodelosdevemserelaborados.Porém,como suportedasfunçõesdis-

ponibilizadase dasanálisesapresentadas,o trabalhoseriafacilitado.

ù Testesemclustersheterogêneos.Emnossotrabalho,nãotratamosdeoutras

influênciasnodesempenhodascomunicaçõesquepoderiamserobservadas

emclusters heterogêneos.O usodediferentesmáquinas,dispondodecon-

figuraçõesdehardware e software distintas,talvezprovoquealteraçõesno

comportamentodasprimitivas.

ù Estudoaprofundadodoall-to-all. Considerandoasanálisesapresentadasdo

MPI_Alltoall, faz-senecessárioum estudomaisaprofundadodainfluência

doswitch edeoutrosfatoresnodesempenhodascomunicações.Umaalter-

nativa paraa realizaçãodesteestudoseriao monitoramentodasportasdo

switch.

ù ModelagemdeoutrasprimitivasdecomunicaçãoMPI. Operaçõescomoo

gather, o scattere o sendreceivenãoforam tratadasem nossosestudose

constituempossibilidadesparapesquisasfuturas.

ù Análisesde desempenhoem outrasredese clusters. Nossostestesforam

realizadosemum clusterLinux utilizandoumarededeinterconexãoFast-

Ethernet,conformedescritona seção4.4. Como usode um clusterWin-

dows e umaredeGigabit,por exemplo,outrosresultadospoderiamserge-

radosconfirmandoa validadedasanálisesrealizadasou permitindoa ob-

tençãodenovasconclusões.

Page 105: Modelagem e Predição de Desempenho de Primitivas de

ReferênciasBibliográficas

[Abandah96] ABANDAH, G. A.; DAVIDSON, E. S. Modeling the Com-

municationPerformanceof the IBM SP2.In: INTERNATIO-

NAL PARALLEL PROCESSINGSYMPOSIUM, 10., Hono-

lulu, Hawaii, April 1996.Proceedings. p.246-257.

[Al-Tawil01] AL-TAWIL, K.; MORITZ, C. A. PerformanceModeling and

Evaluationof MPI. Journal of Parallel and Distrib uited Com-

puting, 61,p.202-223,2001.

[Crovella94] CROVELLA, M. E. Performance Prediction and Tuning of

Parallel Programs. August1994.105p.Phdthesis- The Uni-

versityof Rochester, ComputerScienceDepartment.Rochester,

New York.

[Culler93] CULLER, D. et al. LogP: Towardsa RealisticModel of Paral-

lel Computation.In: SYMPOSIUM ON PRINCIPLESAND

PRACTICE OF PARALLEL PROGRAMMING (ACM SIG-

PLAN), 4.,SanDiego,CA, May 1993.Proceedings. p.1-12.

[Culler99] CULLER, D. E.; SINGH, J. P.; GUPTA, A. Parallel Compu-

ter Ar chitecture: A Hardware/SoftwareApproach. SanFran-

cisco,California: MorganKaufmannPublishers,1999.1025p.

[Gropp] GROPP, W. etal.A High-Performance,PortableImplementation

of theMPI MessagePassingInterfaceStandard.Parallel Com-

puting, v.22,n.6,p.789-828,September1996.

94

Page 106: Modelagem e Predição de Desempenho de Primitivas de

REFERÊNCIASBIBLIOGRÁFICAS 95

[Hennessy96] HENNESSY, J.L.; PATTERSON,D. Computer Ar chitecture:

A Quantitati ve Approach. SecondEdition.SanFrancisco,Ca-

lifornia: MorganKaufmann,1996.760p.

[Hu97] HU, L.; GORTON, I. Performance Evaluation for Parallel

Systems: A Survey. Sydney, Australia: University of NSW,

Schoolof ComputerScienceandEngeneering,Departmentof

ComputerSystems,October1997.(UNSW-CSE-TR-9707).

[INRIA] INRIA (INSTITUT NATIONAL DE RECHERCHE

EN INFORMATIQUE ET EN AUTOMATIQUE),

SCILAB HOME PAGE. France. Disponível em:

<http://www-rocq.inria.fr/scilab>. Acessoem: 14/10/02.

[Jain91] JAIN, R. The Art of Computer SystemsPerformanceAnaly-

sis: Techniquesfor Experimental Design,Measurement,Si-

mulation, and Modeling. New York: JohnWiley & Sons,1991.

685p.

[Kant92] KANT, K. Intr oduction to Computer SystemPerformance

Evaluation. New York: McGraw-Hill, 1992.612p.

[Laine02] LAINE, J. M. et al. Análise e Predição de Desempenho

de ProgramasMPI em Redesde Estaçõesde Trabalho. In:

WORKSHOPEM DESEMPENHODE SISTEMASCOMPU-

TACIONAIS E DE COMPUTAÇÃO,1, Florianópolis-SC,Julho

de2002.Anais. SBC,2002.p.25-36.

[Li01] LI, K. C. Análise e Prediçãode Desempenhode Programas

Paralelos em Redesde Estaçõesde Trabalho. 2001. 113p.

Tese(doutorado)- DepartamentodeEngenhariadeComputação

e SistemasDigitais.SãoPaulo.

[Luecke99] LUECKE, G. R.; RAFFIN, B.; COYLE, J. J. ThePerformance

of the MPI Colletive Communication Routines for Large

Messageson the Cray T3E600, the Cray Origin 2000, and

Page 107: Modelagem e Predição de Desempenho de Primitivas de

REFERÊNCIASBIBLIOGRÁFICAS 96

the IBM SP. The Journal of Performance Evaluation and

Modeling for Computer Systems, July 1999.Disponível em:

<http://hpc-journals.ecs.soton.ac.uk/PEMCS/Papers/Paper10>.

Acessoem: 10/10/02.

[Maui] MAUI HIGH PERFORMANCE COMPUTING CEN-

TER, PARALLEL VIRTUAL MACHINE. Disponível em:

<http://www.uni-karlsruhe.de/Uni/RZ/Hardware/SP2/Workshop

.mhpcc/pvm/PvmIntro.html>. Acessoem: 25/07/2002.

[Meira95] MEIRA JR,W. Modeling Performanceof Parallel Programs.

Rochester, New York: The University of Rochester, Computer

ScienceDepartament,June1995.(TechnicalReport589).

[Moura99] MOURA e SILVA, L.; BUYYA, R. Parallel ProgrammingMo-

delsandParadigms.In: BUYYA, R. High PerformanceClus-

ter Computing: Programming and Applications. New Jersey:

Prentice-Hall,1999.v.2.p.4-27.

[MPI Forum] MPI FORUM. MPI: A Message-passingInterface Standard.

Knoxville, Tennessee:Universityof Tennessee,June1995.(Te-

chnicalReport,version1.1).

[Mucci98] MUCCI, P. J.; LONDON, K.; THURMAN, J. The MPBench

Report. Departmentof ComputerScience,Univerity of Tenes-

see,November1998.(Technicalreport).

[Mullender93] MULLENDER, S. (Ed). Distributed Systems.Secondedition.

New York: ACM Press,1993. In: HU, L.; GORTON, I. Per-

formanceEvaluation for Parallel Systems:A Survey. Sidney,

Australia:Universityof NSW, Schoolof ComputerScienceand

Engeneering,Departmentof ComputerSystems,October1997.

(UNSW-CSE-TR-9707).

[Nupairoj94] NUPAIROJ, N; NI, L. PerformanceEvaluationof SomeMPI

Implementationson WorkstationClusters.In: SCALABLE PA-

Page 108: Modelagem e Predição de Desempenho de Primitivas de

REFERÊNCIASBIBLIOGRÁFICAS 97

RALLEL LIBRARIES CONFERENCE,1994. Proceedings.

IEEE ComputerSocietyPress,October1994.p.98-105.

[Oak] OAK RIDGE NATIONAL LABORATORY COMPUTER

SCIENCE AND MATHEMATICS DIVISION, PVM:

PARALLEL VIRTUAL MACHINE. Disponível em:

<http://www.scm.ornl.gov/pvm>. Acessoem: 25/07/2002.

[Oed81] OED, W.; MERTENS, B. Characterizationof ComputerSys-

temWorkload.Computer Performance, v.2,n.2,p.77-83,June

1981.

[Oliveira02] OLIVEIRA, H. M. etal.PerformanceAnalysisandPredictionof

someMPI CommunicationPrimitives.In: INTERNATIONAL

CONFERENCEON PARALLEL AND DISTRIBUTED PRO-

CESSINGTECHNIQUESAND APPLICATIONS(PDPTA’02),

LasVegas,Nevada,USA, 2002.Proceedings.

[Pramanick99a]PRAMANICK, I. Parallel Programming:LanguagesandEnvi-

ronments.In: BUYYA, R. High PerformanceCluster Compu-

ting: Programming and Applications. New Jersey: Prentice-

Hall, 1999.v.2.p.28-47.

[Pramanick99b]PRAMANICK, I. MPI andPVM Programming.In: BUYYA, R.

High Performance Cluster Computing: Programming and

Applications. New Jersey: Prentice-Hall,1999.v.2.p.48-86.

[Press92] PRESS,W. et al. Numerical Recipesin C: The Art of Scienti-

fic Computing. 2ndEdition.CambridgeUniversityPress,1992.

994p.

[Schopf98] SCHOPF, J. M. Performance Prediction and Schedulingfor

Parallel Applications on Multi-User Clusters. 1998. 247p.

Phdthesis- Universityof California.SanDiego.

[Ohio] THE OHIO STATE UNIVERSITY, MPI PRIMER: DEVELO-

PING WITH LAM. Columbus, Ohio. 1996. Disponível em:

Page 109: Modelagem e Predição de Desempenho de Primitivas de

REFERÊNCIASBIBLIOGRÁFICAS 98

<http://www.lam-mpi.org/download/files/lam61.nol.doc.pdf>.

Acessoem: 10/07/2002.

[Tennessee] UNIVERSITY OF TENNESSEE, MPI: A

MESSAGE-PASSING INTERFACE STANDARD.

Knoxville, Tennessee. 1995. Disponível em:

<http://www.mpi-forum.org/docs/mpi-11-html/mpi-report.html

#Node0>. Acessoem: 10/07/2002.

[Xu96] XU, Z.; HWANG, K. ModelingCommunicationOverhead:MPI

andMPL Performanceon theIBM SP2.IEEE Parallel & Dis-

trib uted Technology, v.4,n.1,p.9-23,1996.

Page 110: Modelagem e Predição de Desempenho de Primitivas de

ApêndiceA

FUNÇÕES IMPLEMENT ADAS

COM O SCILAB

Muitasatividadesdeanáliseeprediçãodedesempenhoapresentamumcustoope-

racionalbastantesignificativo. Considerandoemparticularametodologiaadotada

emnossotrabalho,algumastarefascomoaseleçãodostemposdecomunicaçãoe

o desenvolvimentodemodelosanalíticos,porexemplo,podemdificultaraaplica-

çãodametodologiaeatémesmodesestimularo seuemprego.

Procurandofacilitar e automatizaralgumasatividadesimplícitasno processo

deanálisee prediçãoadotado,construímoso conjuntode funçõesapresentadoa

seguir. Tais funçõesforam elaboradascom o suportedo Scilab-2.6,utilizando

algumasfacilidadese funçõespré-definidaspelaferramenta.Paraquepossamser

úteisematividadesdeanálisee prediçãodedesempenho,suaexecuçãosomente

podeserrealizadanoambienteoferecidopeloScilabe,portanto,faz-senecessária

a préviainstalaçãodomesmo.

1. MPI_Bcast

timesbcast() : gerao arquivo comostemposmédiosdoMPI_Bcast.Lê arquivos

comtemposmedidosecalculaostemposmédiosaplicandoumapolíticade

seleçãodedados.

plotbcast( ) : geraequaçõese gráficos"TamanhodamensagemX Tempo"para

1

Page 111: Modelagem e Predição de Desempenho de Primitivas de

APÊNDICEA. FUNÇÕESIMPLEMENTADAS COM O SCILAB 2

o MPI_Bcast,exportandoosgráficosparaumarquivo XFig1.

plotbcast2() : gerao gráficodebarrasverticais"NumerodeescravosX Tempo"

parao MPI_Bcast,exportandoo gráficoparaumarquivo XFig.

coeffbcastnp() : lê valoresde arquivos de temposmédios,gerae escreve os

coeficientesdo seguinte modeloem um arquivo de saída: úû�ü�ý�þ�ÿ����������� ������������������� �������������������� �!#"$����%

predictbcast() : realiza prediçõesde desempenhoem função do tamanhoda

mensagematravésdo modeloúû�ü�ý�þ�ÿ&�'���()�'�*�������+�,��� . Lê oscoeficientes

deum arquivo, faza prediçãoe geraum arquivo comdadoscomparativos

(predição,mediçãoeerro).

predictbcastnp() : prediçãode desempenhoem funçãodo tamanhoda mensa-

geme do númerodeescravos,atravésdo modelo úû�ü�ý5þ�ÿ-�'��� ��./� �����0���1����2�3�'�*�4�5���6�7���8�,�� �!#"$�9��% . Lê oscoeficientesdeumarquivo, fazapredição

egeraumarquivo comdadoscomparativos(predição,mediçãoeerro).

2. MPI_Reduce

timesreduce() : idema timesbcast(). Lê arquivoscomtemposmedidose cal-

culaos temposmédiosdo MPI_Reduceaplicandoumapolíticadeseleção

dedados.

3. MPI_Barrier

timesbarrier( ) : idema timesbcast(). Lê arquivoscomtemposmedidose cal-

cula os temposmédiosdo MPI_Barrieraplicandoumapolítica de seleção

dedados.

plotbarrier( ) : gerao gráfico"NúmerodeprocessosX tempo"coma curva de

mediçãodo MPI_Barrier. Lê o respectivo arquivo detemposmédiose ex-

portao gráficogeradoparaumarquivo XFig.

1XFig: aplicativo Linux paraconstruçãodegráficosediagramas.

Page 112: Modelagem e Predição de Desempenho de Primitivas de

APÊNDICEA. FUNÇÕESIMPLEMENTADAS COM O SCILAB 3

coeffbarrier( ) : geraoscoeficientesdaequaçãoúû�ý�:�:9;=< :#�>���?�*���@�����A�� �!#"$�9��% .

Lê temposdo arquivo demédiasdo MPI_Barrier, calculae escreve ��� e ���emumarquivo desaída.

predictbarrier( ) : prediçãoemfunçãodo númerodeprocessos,atravésdo mo-

delo úû�ý&:9:9;B< :2�=��(C���1�D�7�+�E�F '!#"8���7% . Lê oscoeficientesdo MPI_Barrierde

seurespectivo arquivo, fazaprediçãoegeraumarquivo comdadoscompa-

rativos(predição,mediçãoeerro).

4. MPI_Alltoall

timesalltoall( ) : idema timesbcast(). Lê arquivoscomtemposmedidose cal-

culaos temposmédiosdo MPI_Alltoall aplicandoumapolíticadeseleção

dedados.

5. Outras funções

lscf(x,y,g) : calculaoscoeficientesdopolinômiodeordemg, aplicandoo método

dos mínimosquadrados(least squares curve fitting) sobreo conjuntode

paresordenadosdadopelosvetoresx e y. Estafunçãoé utilizadapor todas

asdemaisquenecessitamrealizarumajustedecurvas.

predcurve( ) : gerao gráfico "Número de processosX Tempo" somentecom

curvas de prediçãoparaprimitivascoletivas (MPI_Bcast,MPI_Reducee

MPI_Barrier).

plotcollective( ) : generalizaçãodoplotbcast() paraoMPI_Bcast,oMPI_Reduce

eo MPI_Alltoall.

plotcollective2() : generalizaçãodo plotbcast2( ) paraas primitivas coletivas

MPI_Bcast,MPI_ReduceeMPI_Alltoall.

coeffcollectivenp( ) : generalizaçãodo coeffbcastnp() paraasprimitivascoleti-

vasMPI_BcasteMPI_Reduce.

Page 113: Modelagem e Predição de Desempenho de Primitivas de

APÊNDICEA. FUNÇÕESIMPLEMENTADAS COM O SCILAB 4

predictnp( ) : generalizaçãodo predictbcastnp( ) paraas primitivascoletivas

MPI_Bcaste MPI_Reduce.

plotsends() : desenvolvido apenasparagerargráficoscomcurvasdemediçãoe

prediçãodosquatromodosdesendbloqueantes- MPI_Send,MPI_Bsend,

MPI_RsendeMPI_Ssend.

stdev( ) : lê ostemposmedidosdeumarquivo ecalculao desviopadrão.