Post on 09-Feb-2017
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
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
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.
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.
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.
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
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
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
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
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
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
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
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);
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.
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.
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.
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
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
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.
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
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
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
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.
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
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-
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.
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
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
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,
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-
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 .
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
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.
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
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
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
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)
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.
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
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).
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,
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
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
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
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
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.
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.
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
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
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).
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.
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
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
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ó-
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.
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
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).
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.
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
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
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
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
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
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.
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
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¸ ).
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
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)
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:
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.
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.
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.
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.
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.
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
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
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¾ ë)ù ¾�¿ ر٠¸ ù ·
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
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.
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.
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.
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
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
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«
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.
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-
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-
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.
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
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
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)
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-
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.
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-
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.
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.
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.
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
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.
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).
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
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.
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-
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.
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
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
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-
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:
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.
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
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.
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.
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.