o problema da troca de mensagens de diferentes tamanhos …...c magpie: algoritmo alltoallv 64...

81
O problema da troca de mensagens de diferentes tamanhos em redes multi-aglomerados abio Massaaki Katayama DISSERTAC ¸ ˜ AO APRESENTADA AO INSTITUTO DE MATEM ´ ATICA E ESTAT ´ ISTICA DA UNIVERSIDADE DE S ˜ AO PAULO PARA OBTENC ¸ ˜ AO DO T ´ ITULO DE MESTRE EM CI ˆ ENCIAS ´ Area de Concentra¸ c˜ao: Ciˆ encia da Computa¸c˜ ao Orientador : Prof. Dr. Alfredo Goldman vel Lejbman - S˜ao Paulo, Novembro de 2006 -

Upload: others

Post on 18-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

O problema da troca de mensagens

de diferentes tamanhos

em redes multi-aglomerados

Fabio Massaaki Katayama

DISSERTACAO APRESENTADA

AO

INSTITUTO DE MATEMATICA E ESTATISTICA

DA

UNIVERSIDADE DE SAO PAULO

PARA

OBTENCAO DO TITULO DE MESTRE

EM

CIENCIAS

Area de Concentracao : Ciencia da Computacao

Orientador : Prof. Dr. Alfredo Goldman vel Lejbman

- Sao Paulo, Novembro de 2006 -

O problema da troca de mensagens

de diferentes tamanhos

em redes multi-aglomerados

Este exemplar corresponde a redacao finalda dissertacao de mestrado devidamente

corrigida e defendida porFabio Massaaki Katayama

e aprovada pela comissao julgadora.

Sao Paulo, Novembro de 2006.

Banca examinadora:

• Prof. Dr. Alfredo Goldman vel Lejbman (orientador) - IME-USP

• Prof. Dr. Siang Wun Song - IME-USP

• Prof. Dr. Nicolas Maillard - UFRGS

Agradecimentos

Agradeco primeiramente aos meus pais Mario e Neusa Katayama e ao meu irmaoMaurıcio que sempre me apoiaram e incentivaram nos meus estudos. Agradecoa minha namorada Kika pelo total apoio, compreensao e que por varios finais desemana veio a Sao Paulo para me ajudar.

Agradeco as minhas amigas Carla Otero e Marina Andretta pela ajuda nas revisoese duvidas. Aos meus amigos do IME e da PR&A que sempre me apoiaram e mederam forca nos momentos difıceis.

Meus agradecimentos mais sinceros ao meu orientador Prof. Dr. Alfredo Goldmanpela dedicacao, paciencia e confianca. Obrigado pelo espaco cedido em sua sala egostaria de dizer que foi um prazer ter trabalhado ao seu lado.

Resumo

Com o aumento no uso de aglomerados e grades de computadores, cresce o inte-resse no estudo de comunicacoes entre processadores. Em um computador paralelodedicado, ou em uma rede local homogenea, o tempo de comunicacao e geralmentemodelado de forma similar, independente de quais processadores estao se comu-nicando. Em uma rede onde os links entre os computadores sao heterogeneos,computadores mais proximos tendem a apresentar menor latencia e maior largurade banda do que computadores distantes. Alem disso, a largura de banda agregadae diferente dependendo do numero de conexoes simultaneas existentes entre doisaglomerados distantes. Neste trabalho estudaremos a troca completa de mensagensde tamanhos diferentes entre aglomerados interligados por backbones. Proporemosum novo algoritmo de comunicacao baseado em algoritmos conhecidos, apresen-taremos simulacoes de escalonamentos dos algoritmos estudados para esta redemulti-aglomerado e analisaremos os resultados destas simulacoes.

Abstract

The growth in popularity of clusters and computational grids caused an increase inthe interest in studying interprocessors communications. The comunication timein a dedicated parallel computer or in a local homogeneous network is modeledin a similar way, regardless of which processors are communicating. In a networkwith heterogeneous links, closer computers generally have lower latency and largerbandwidth than wide area computers. Besides, the aggregated bandwidth dependson the number of simultaneous connections between two wide area clusters. In thiswork we study the complete exchange of messages of different sizes between inter-connected clusters using a backbone. We propose a new comunication algorithmbased on known algorithms, we present some scheduling simulations of the studiedalgorithms in this multi-cluster network and we present the results analysis of thesesimulations.

Sumario

Introducao 1

Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Nosso Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Organizacao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1 O Problema da Troca Completa de Mensagens 4

1.1 Motivacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Descricao do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2 Algoritmos para Ambientes Homogeneos 10

2.1 Algoritmo de Troca de Mensagens para Hipercubo . . . . . . . . . . . . . . . . 10

2.2 Algoritmo de Padrao Fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3 Algoritmos de Padrao Central . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Discussao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5 Algoritmo Hıbrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.6 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3 Algoritmos para Ambientes Heterogeneos 22

3.1 Escalonamento em Redes Multi-Aglomerados . . . . . . . . . . . . . . . . . . . 22

3.2 Redistribuicao em Aglomerados Ligados por Backbone . . . . . . . . . . . . . 28

3.3 Discussao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

i

4 O Ambiente Estudado: GRID5000 35

4.1 Grid5000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Descricao do Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

5 Algoritmos Propostos 42

5.1 Algoritmo de dois Nıveis com k Representantes . . . . . . . . . . . . . . . . . 43

5.2 Algoritmo de dois Nıveis com Redistribuicao . . . . . . . . . . . . . . . . . . . 44

6 Simulacao 48

6.1 Estrutura do simulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.2 Pre-Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

7 Conclusao 58

7.1 Principais Contribuicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

7.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

A Sistemas de Computacao Paralela e Distribuıda 60

B Glossario 63

C MagPIe: Algoritmo Alltoallv 64

Referencias Bibliograficas 66

ii

Lista de Figuras

1.1 Exemplo de escalonamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Escalonamento otimo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 MED para uma instancia do problema. . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Representacao de matriz do MED da figura 1.3. . . . . . . . . . . . . . . . . . 6

1.5 Representacao de grafo bipartido. . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.6 Tempo de comunicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.7 Escalonamento da figura 1.1 no modo sıncrono. . . . . . . . . . . . . . . . . . 8

1.8 Exemplo de um escalonamento do MED da figura 1.3 com preempcao. . . . . . 8

1.9 Tempo de comunicacao do escalonamento com preempcao da figura 1.8 . . . . 9

2.1 Hipercubo de dimensao 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2 Rede em hipercubo de dimensao 3 . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3 Mensagens enviadas pelo processador p0 na fase 1 . . . . . . . . . . . . . . . . 12

2.4 Exemplo de pior caso do algoritmo de padrao fixo no modelo sıncrono. . . . . 15

2.5 Exemplo de pior caso do algoritmo de padrao fixo no modelo assıncrono. . . . 16

2.6 Exemplo de execucao do algoritmo uniforme. . . . . . . . . . . . . . . . . . . . 19

3.1 Um exemplo de um MCN composto por seis aglomerados. . . . . . . . . . . . 23

3.2 Arvore de 1 nıvel (Flat Tree) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 Arvore binomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.4 Grafos de comunicacao no MagPIe . . . . . . . . . . . . . . . . . . . . . . . . 27

iii

3.5 Aglomerados ligados por backbone . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1 Distribuicao geografica do GRID5000 . . . . . . . . . . . . . . . . . . . . . . . 36

4.2 Gap entre GdX e Toulouse - 12/11/2005 . . . . . . . . . . . . . . . . . . . . . 37

4.3 Fluxo medio entre GdX e Toulouse - 12/11/2005 . . . . . . . . . . . . . . . . . 37

4.4 Fluxo agregado entre GdX e Toulouse - 12/11/2005 . . . . . . . . . . . . . . . 38

4.5 Valores de γ em funcao do numero de conexoes para k = 24. . . . . . . . . . . 40

4.6 Valores de 1γ agreg

em funcao do numero de conexoes para k = 24. . . . . . . . . 41

5.1 Fases do algoritmo de dois nıveis com k representantes. . . . . . . . . . . . . . 44

5.2 Fases local e distante do algoritmo de 2 nıveis com redistribuicao. . . . . . . . 46

5.3 Diagrama de Gantt do algoritmo de 2 nıveis com redistribuicao. . . . . . . . . 47

6.1 Tempo para troca completa para mensagens com µ = σ2 = 10 KB. . . . . . . . 50

6.2 Tempo para troca completa para mensagens com µ = σ2 = 1000 KB. . . . . . 51

6.3 Tempo para a troca completa para k = 6. . . . . . . . . . . . . . . . . . . . . . 51

6.4 Comparacao entre os algoritmos homogeneos e adaptados. . . . . . . . . . . . 52

6.5 Desempenho com fγ0 (n) para µ = 1000KB em grade homogenea. . . . . . . . . 52

6.6 Desempenho com fγ1 (n) para µ = 1000KB em grade homogenea. . . . . . . . . 53

6.7 Desempenho com fγ2 (n) para µ = 1000KB em grade homogenea. . . . . . . . . 53

6.8 Execucao do algoritmo uniforme para fγ0 (n) e fγ

1 (n). . . . . . . . . . . . . . . 54

6.9 Desempenho com fγ0 (n) para µ = 1000KB em grade heterogenea. . . . . . . . 55

6.10 Desempenho com fγ1 (n) para µ = 1000KB em grade heterogenea. . . . . . . . 55

6.11 Desempenho com fγ2 (n) para µ = 1000KB em grade heterogenea. . . . . . . . 56

6.12 Desempenho com fγ0 (n) para µ = 10000KB em grade heterogenea. . . . . . . . 56

6.13 Desempenho com fγ1 (n) para µ = 10000KB em grade heterogenea. . . . . . . . 57

6.14 Desempenho com fγ2 (n) para µ = 10000KB em grade heterogenea. . . . . . . . 57

A.1 Anel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

iv

A.2 Grade bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

A.3 Hipercubo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

v

Lista de Tabelas

2.1 Mensagens enviadas na fase 1 por processador . . . . . . . . . . . . . . . . . . 13

2.2 Mensagens enviadas na fase 2 por processador . . . . . . . . . . . . . . . . . . 13

2.3 Custo de comunicacao do pre-processamento. . . . . . . . . . . . . . . . . . . . 17

3.1 Tabela de sıntese dos algoritmos. . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.1 Latencia media (ms) entre os aglomerados do Grid5000 - 06/06/2006 . . . . . 38

4.2 Valores de γ em funcao do numero de conexoes para k = 24 . . . . . . . . . . 41

vi

Introducao

Varias aplicacoes paralelas podem ser vistas como uma sucessao de passos de computacaoalternados por fases de comunicacao. A cada fase de comunicacao, todos, ou quase todos, osprocessadores precisam se comunicar enviando mensagens para os outros processadores per-tencentes ao sistema. Como os processadores nao sao capazes de realizar toda a comunicacaosimultaneamente, a ordem com que as mensagens sao transferidas influencia o tempo total dacomunicacao.

No problema da troca completa de mensagens, um conjunto de processadores ligados pormeio de uma rede de interconexao realiza uma troca completa de mensagens, ou seja, todos osnos enviam e recebem mensagens de todos os outros nos do sistema. O objetivo e minimizaro tempo para trocar completamente todas as mensagens.

A rotina MPI (Message Passing Interface [SOW+95]) que realiza esta troca de mensagensde diferentes tamanho e a MPI Alltoallv. Varios estudos tem sido feitos com o objetivo demelhorar o desempenho deste padrao de comunicacao. Citaremos alguns destes trabalhos nasecao seguinte.

Geralmente, as comunicacoes dentro de um aglomerado (cluster) se comportam de formasemelhante. Entretanto, se conectarmos dois aglomerados geograficamente distantes, as co-municacoes entre computadores destes aglomerados ficam mais lentas. Alem disso, limitacoesfısicas nos backbones que ligam esses aglomerados nao garantem muitas comunicacoes si-multaneas com o mesmo desempenho. Neste trabalho, estudamos e propomos algoritmospara o Problema da Troca Completa de Mensagens de Tamanhos Diferentes para ambientesMulti-Aglomerados.

Trabalhos Relacionados

Varios trabalhos estudaram o problema de troca de mensagens para topologias especıficascomo grades, toros e hipercubos [BGP+94, Bok91, FP97, PS98, SY00, TC94, TLGP97, SS01,YW02]. A maioria destes estudos consideravam mensagens de mesmo tamanho. Tres algorit-mos para troca de mensagens em grades e hipercubos foram propostos em [BGP+94] - um para

1

2

mensagens curtas, um para mensagens grandes e um algoritmo hıbrido. Em [SY00, TC94], osautores estudaram a relacao entre o custo de inicializacao de mensagens e os tamanhos dasmensagens baseadas em propriedades fısicas da rede. Em [DJ00], Christara, Ding e Jacksonestudaram o problema em computadores paralelos com memoria distribuıda onde a latencia eo fator predominante no custo da comunicacao. Eles formularam algoritmos para topologiasanel, grade e cubo neste tipo de ambiente.

Em [GPT05], os autores estudaram um modelo mais realıstico com troca de mensagens dediferentes tamanhos onde preempcao era permitida. Nesse trabalho, o tempo de comunicacaoe dado por um modelo de custo linear: para se enviar uma mensagem existe uma inicializacao(β) e um tempo de transmissao, que depende inversamente da largura da banda ( 1

γ). O valor

desses parametros nao depende de quais processadores estao se comunicando.

Em [BRP99, BPR99] Bhat, Prasanna e Raghavendra mostraram um arcabouco (fra-mework) para comunicacoes coletivas como broadcast, multicast e AlltoAllv em sistemas hete-rogeneos.

Faraj, Yuan e Patarasuk [FY05a, FY05b] propuseram um esquema para gerar automa-ticamente rotinas de troca completa de mensagens de mesmo tamanho para uma topologiaarbitraria composta de aglomerados homogeneos interligados por backbones.

Em [KBG+01, VFD01, KBV00], os autores estudaram as comunicacoes coletivas broadcast,scatter, reduce e gather para sistemas formados por aglomerados distantes. Em [KBV00],os autores introduziram o modelo de comunicacao P-LogP. Uma extensao do modelo LogP[CKP+93] especıfica para mensagens de diferentes tamanhos.

Em [KHB+99], Kielmann et al. desenvolveram uma biblioteca de comunicacao coletiva parasistemas distantes chamada MagPIe. Nela, as implementacoes dos algoritmos de comunicacaocoletiva do MPI enviam a quantidade mınima de dados sobre os links lentos.

Em [Gol02], Goldman estudou o problema de troca de mensagens irregulares em redesmulti-aglomerados. Nesse trabalho, os links que unem os aglomerados nao tinham restricaono numero de conexoes simultaneas.

Em [JW04, WJ04], Jeannot e Wagner estudaram o problema de troca de mensagens entredois aglomerados ligados por um backbone. Nestes trabalhos, o problema foi demonstrado serNP-Completo. Os autores apresentaram varios algoritmos que resolvem o problema quando osprocessadores sao capazes de enviar e receber no maximo uma mensagem simultaneamente e,em [JW05], um algoritmo que considera que a capacidade de comunicacao dos processadorese igual a k conexoes simultaneas foi apresentado.

3

Nosso Objetivo

O objetivo do nosso trabalho e estudar mais profundamente o problema da troca com-pleta de mensagens de diferentes tamanhos em ambientes compostos por aglomerados ge-ograficamente distantes ligados por backbones. Estudaremos mais detalhadamente os tra-balhos [GPT05, Gol02, JW04, WJ04, JW05]. Em [GPT05, Gol02], os autores apresenta-ram alguns algoritmos para redes homogeneas e redes multi-aglomerados. Porem, os algorit-mos apresentados nao foram projetados para redes onde os links que unem os aglomeradossao backbones e, portanto, apresentam restricoes no numero de conexoes simultaneas. Em[JW04, WJ04, JW05], os autores apresentaram algoritmos para o problema de redistribuicaode mensagens entre dois aglomerados separados por um backbone.

Pretendemos analisar o desempenho dos algoritmos apresentados em [Gol02] nesse ambi-ente. Nos vamos propor dois novos algoritmos de comunicacao baseados em algoritmos co-nhecidos e apresentaremos algumas simulacoes de escalonamento desses algoritmos estudadospara esta rede multi-aglomerado.

Organizacao do Texto

No proximo capıtulo, descreveremos o Problema da Troca Completa de Mensagens de Di-ferentes Tamanhos. No capıtulo 2, abordaremos o problema da troca completa em ambienteshomogeneos. No capıtulo 3, o problema sera tratado para uma rede multi-aglomerado. Al-goritmos adaptados para esta rede serao descritos. Ainda neste capıtulo, apresentaremos adescricao do problema de redistribuicao e alguns algoritmos estudados. No capıtulo 4, seraapresentada a arquitetura da grade de aglomerados do GRID5000. Descreveremos o compor-tamento das transmissoes de mensagens atraves dos links desta grade, bem como o modelode ambiente de simulacao adotado em nossos estudos. Com base nos algoritmos estudados,apresentaremos, no capıtulo 5, dois novos algoritmos adaptados para redes multi-aglomerado.No capıtulo seguinte, serao ilustradas algumas simulacoes realizadas com o intuito de compa-rar os varios algoritmos estudados. Finalmente, no capıtulo 7, concluiremos nosso trabalho eapresentaremos as proximas tarefas de nossos estudos.

No apendice A, apresentaremos os conceitos de um sistema de computacao paralela e dis-tribuıda e de avaliacao de um algoritmo paralelo e distribuıdo. Um glossario com as definicoesdos sımbolos utilizados neste trabalho se encontra no apendice B. No apendice C, reproduzi-remos o codigo-fonte da comunicacao coletiva de troca completa de mensagens da bibliotecaMagPIe.

Capıtulo 1

O Problema da Troca Completa de

Mensagens

Em uma aplicacao paralela existem varias situacoes onde todos os processadores precisamse comunicar enviando dados de tamanhos variados para todos os outros processadores. Apli-cativos que se baseiam no modelo BSP [Val90], por exemplo, alternam fases de computacaoe fases de troca de mensagens entre os processadores. Como existem limitacoes fısicas nacapacidade de comunicacao, os processadores nao sao capazes de enviar e receber todas asmensagens simultaneamente e com o mesmo desempenho. Portanto, a ordem com que asmensagens sao enviadas e recebidas por cada processador influencia diretamente no temponecessario para trocar todas as mensagens do sistema. Neste problema, o objetivo e encontrarum escalonamento para trocar todas as mensagens de modo a minimizar o tempo gasto comessa comunicacao, melhorando, assim, o tempo total de execucao do algoritmo paralelo.

1.1 Motivacao

Nesta secao, mostraremos um exemplo simples do problema e dois escalonamentos possıveispara os processadores trocarem todas as suas mensagens. Suponha um ambiente com quatroprocessadores rodando uma aplicacao. Em um certo ponto de execucao desta aplicacao, todosos processadores precisam se comunicar trocando mensagens para dar continuidade a execucaoda aplicacao. Neste exemplo, existem dois tipos de tamanho de mensagem T e t, T >> t. Asmensagens (p0, p1), (p1, p3), (p3, p2) e (p2, p0), onde (pi, pj) corresponde a mensagem de pi apj, possuem tamanho T e as restantes sao as mensagens de tamanho pequeno t.

As figuras abaixo mostram dois escalonamentos diferentes para o exemplo citado acima.Consideramos aqui que cada processador consegue enviar e receber apenas uma mensagemde cada vez. Na figura 1.1, o processador 3 envia a mensagem para o processador 1 somente

4

CAPITULO 1. O PROBLEMA DA TROCA COMPLETA DE MENSAGENS 5

depois que o processador 0 finaliza sua primeira comunicacao com o processador 1. Ja como escalonamento da figura 1.2, em nenhum momento os processadores precisaram aguardar adisponibilidade de recepcao de dados de outro processador, resultando em um escalonamentootimo do problema.

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

2

2

2

1

1

0

0

0

3

3

3

1

p3

p2

p1

p0

Figura 1.1: Exemplo de escalonamento.

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

p3

p2

p1

p0

2

2

1

31

0

3

0

0

3

2

1

Figura 1.2: Escalonamento otimo.

Supondo que o tempo para comunicar a mensagem tem o mesmo valor que o tamanho damensagem, ou seja, o envio de uma mensagem de tamanho T dura T segundos, e facil verque a comunicacao utilizando o escalonamento da figura 1.2 e T − t segundos mais rapido queo escalonamento da figura 1.1. A area hachurada das duas figuras foi mantida para melhorvisualizacao da diferenca de tempo entre os dois escalonamentos.

Portanto, este exemplo demonstra que a utilizacao de um algoritmo de escalonamento efici-ente pode diminuir o tempo total para a troca completa de mensagens. A seguir, descreveremosformalmente o problema da troca completa de mensagens de diferentes tamanhos.

1.2 Descricao do Problema

O Problema da Troca Completa de Mensagens pode ser descrito por um grafo dirigido compeso nos arcos dG(V,E,w, δ). Este grafo pode ser chamado de digrafo de troca de mensagensou MED (message exchange digraph). Em um MED, o conjunto de vertices V = {p0, ..., pn−1}representa a colecao de processadores do sistema, e cada arco e = (pi, pj) ∈ E representa umamensagem de tamanho w (e) a ser enviada do processador pi para o processador pj.

Se varias mensagens serao enviadas do processador pi para pj, entao existira apenas umarco e = (pi, pj) e w (e) sera a soma dos tamanhos dessas mensagens.

� ��

� ��

� ��

� ��

p0 p1 p2

p3

-

@@

@@

@@I

-

?

6

e1 e5

e2 e3e4

Figura 1.3: MED para uma instancia do problema.

CAPITULO 1. O PROBLEMA DA TROCA COMPLETA DE MENSAGENS 6

Em nossos estudos, consideramos que os links de comunicacao entre os pares de proces-sadores sao bidirecionais, ou seja, todos os processadores sao capazes de transmitir e receberdados ao mesmo tempo sem que ocorra perda de tempo com turn-around (operacao de troca desentido de transmissao entre os dispositivos). Esta caracterıstica de comunicacao e conhecidacomo full-duplex.

A capacidade de transmissao da porta de um processador corresponde ao numero de outrosprocessadores para os quais ele e capaz de transmitir mensagens simultaneamente. De modosimilar, a capacidade da porta para recepcao refere-se ao numero de diferentes processadoresdos quais ele consegue receber mensagens ao mesmo tempo. Como os links sao bidirecionais,cada processador possui portas de transmissao e recepcao com a mesma capacidade δ.

Em [JW05], os autores estudaram o problema de redistribuicao de dados para δ ≥ 1. Osdetalhes deste problema serao abordados no capıtulo 3. Porem, a maioria dos algoritmos estu-dados neste trabalho se concentra na minimizacao para o problema com capacidade limitadaa uma transmissao e um recebimento (δ = 1) ao mesmo tempo. Portanto mencionaremosexplicitamente o valor de δ apenas quando seu valor for maior que 1. Neste caso, podemosnos referir ao MED como dG(V,E,w) quando δ = 1.

Alem do digrafo de troca de mensagens, outras duas representacoes para instancias doproblema serao utilizadas. Dado um MED dG(V,E,w), a representacao de matriz doproblema e uma matriz de pesos Wn×n, onde n = |V |. Se existem mensagens a serem enviadasdo processador pi para o processador pj, entao existe um arco e = (pi, pj) ∈ E e wi,j = w (e)e a soma dos tamanhos dessas mensagens. Se nao existir arco de pi para pj, entao wi,j = 0.

0 w(e1) 0 00 0 w(e5) w(e2)0 0 0 0

w(e4) w(e3) 0 0

Figura 1.4: Representacao de matriz do MED da figura 1.3.

A representacao de grafo bipartido bG (V ′, E ′) e obtida a partir de dG(V,E). Oconjunto de vertices V ′ = V1 ∪ V2 do grafo bipartido representa as portas de comunicacao deentrada (V1) e saıda (V2) de cada processador. Para cada vertice pi ∈ V , existem dois verticesem V ′, pi1 ∈ V1 e pi2 ∈ V2. Para cada arco e = (pi, pj) ∈ E, existe um arco e′ = (pi1 , pj2) ∈ E ′

com peso w(e′) = w(e).

Essas tres representacoes serao utilizadas pelos algoritmos apresentados nas secoes seguin-tes de acordo com suas necessidades.

O tempo de comunicacao foi aproximado para o modelo de custo linear onde a transmissaode uma mensagem de tamanho w custa β + wγ. Neste modelo, temos dois parametros que

CAPITULO 1. O PROBLEMA DA TROCA COMPLETA DE MENSAGENS 7

� ��� ��� ��� ��

� ��� ��� ��� ��

p31

p21

p11

p01

p32

p22

p12

p02e1

e2

e3

e4

e5

Figura 1.5: Representacao de grafo bipartido.

definem o custo de comunicacao: β e o tempo de latencia, o tempo necessario para preparare iniciar a comunicacao do pacote de dados, e 1

γe a largura da banda, ou seja, a velocidade

de comunicacao dos dados atraves do link.

A figura 1.6 mostra um exemplo de um escalonamento para o MED da figura 1.3. Odiagrama da esquerda mostra o tempo que cada processador gasta enviando as suas mensagens.No grafico da direita sao mostradas as duracoes das recepcoes de cada mensagem. Em ambos osgraficos tivemos o cuidado de ilustrar separadamente como cada parametro β e γ influenciamno tempo de comunicacao da mensagem. E facil notar que o tempo de latencia β nao dependedo tamanho da mensagem.

������

������

������

������

p3

p1

p2

p0

p3

p1

p2

p0

������

������

������

������

������

������

������

������

2e5e

4e 3e

���������������������������

���������������������������

1e

ew( )3 γew( )4 γ

ew( )5 γ

ew( )1 γ

ew( )2 γ

������

������

������������������������������������������������������������

β

β β

ββ

ew( )4 γ

������

������β

ew( )1 γβ

ew( )5 γ

����������������

β

ew( )3 γ

���������

���������β

ew( )2 γ

������

������β

������������������������

������������������������

������������

������������

��������������������������������

������������������

������������������

��������

encio recebimento

e4

1e

5e

3e

2e

Figura 1.6: Tempo de comunicacao

O valor destes dois parametros pode variar para cada par de processadores. Neste caso,teremos um valor βi,j e γi,j para cada par pi e pj de processadores. Em ambientes homogeneos,onde os links de comunicacao possuem caracterısticas semelhantes, a largura da banda e alatencia tem sempre o mesmo valor para todo par de processador (γi,j = γ e βi,j = β,∀i, j ∈{0..n− 1}). Os algoritmos para ambientes homogeneos serao estudados no capıtulo 2. Oobjetivo do nosso trabalho e abordar o estudo do problema de troca completa em ambientesheterogeneos. Em especial, estudaremos o comportamento dos algoritmos nas redes multi-aglomerados. Neste ambiente, os links de comunicacao entre processadores situados dentrode um mesmo aglomerado possuem velocidades de comunicacao maiores do que links inter-

CAPITULO 1. O PROBLEMA DA TROCA COMPLETA DE MENSAGENS 8

aglomerados. Os links de comunicacao entre pares de processadores situados dentro de ummesmo aglomerado se comportam como nos ambientes homogeneos.

No modo sıncrono [CH88], todos os processadores iniciam cada fase de comunicacao aomesmo tempo. Nesse caso, a fase de comunicacao so pode ser iniciada quando todas asmensagens da fase de comunicacao anterior tiverem sido totalmente recebidas. No modeloassıncrono, as transmissoes das mensagens nao precisam iniciar ao mesmo tempo.

A figura 1.1 mostra a troca de mensagens de um escalonamento no modo assıncrono. Nela,os processadores p1 e p2 iniciaram o envio da segunda mensagem ((1, 3) e (2, 0) respectiva-mente) logo apos terem enviado a primeira mensagem. Nao foi necessario esperar o processadorp0 finalizar o envio da mensagem (0, 1). O diagrama correspondente ao mesmo escalonamentono modo sıncrono e mostrado na figura 1.7.

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

p3

p2

p1

p0 2

1

2

3

0

3

3

10

2

1

0

Figura 1.7: Escalonamento da figura 1.1 no modo sıncrono.

Os algoritmos estudados possuem duas diferentes classificacoes em relacao a transmissao demensagens: message splitting (quebra de mensagens) e message forwarding (encaminhamentode mensagens). Se o uso de quebra de mensagens nao e permitido, entao uma mensageme sempre enviada em exatamente uma transmissao, nao e permitido cortar a mensagens empedacos menores para enviar em mais de uma transmissao. Escalonamentos que utilizam estemecanismo sao chamados de preemptivos. Na figura 1.8 e mostrado um exemplo de esca-lonamento da instancia do problema da figura 1.3 utilizando quebra de mensagens. Nesteescalonamento, as mensagens e4 e e5 foram quebradas e enviadas em 2 fases de comunicacaodistintas.

w(e ) = 54w(e ) = 45

0p

2pe 1

e 2 e 3e 4

e 5 w(e ) = 31w(e ) = 22w(e ) = 33

p3

p1

0p

2p

33

31

p

3p

0p

2p2

2

1p

3p

0p

2p2

2

1p

3p

Figura 1.8: Exemplo de um escalonamento do MED da figura 1.3 com preempcao.

CAPITULO 1. O PROBLEMA DA TROCA COMPLETA DE MENSAGENS 9

A desvantagem e que a quebra de uma mensagem em varios envios necessita do tempo delatencia β para cada novo envio. A figura 1.9 mostra o tempo de comunicacao do escalona-mento anterior. Note que a latencia β impactou duas vezes no tempo total de comunicacaodas mensagens e4 e e5.

����������������������������������������������������������������

p3

p1

p2

βp0

ββ������

������

������

������

������

������

������

������

������

������

������

������������������������������������

������������������������������

������

������β

β

β β

e2

4e

1e

3e4e

e5e5

Figura 1.9: Tempo de comunicacao do escalonamento com preempcao da figura 1.8

Quando nao e permitido encaminhar mensagens, cada mensagem e enviada diretamenteda origem para o seu destino, sem ser armazenada em processadores intermediarios. Quandoo algoritmo faz uso de message forwarding, as mensagens sao encaminhadas por caminhosde processadores intermediarios utilizando o modo de transmissao store-and-forward. Nestemodo, a mensagem deve ser totalmente armazenada por cada processador intermediario paraque este possa reenvia-la para o processador seguinte.

No capıtulo seguinte, veremos alguns algoritmos que fornecem escalonamentos para o pro-blema da troca completa.

Capıtulo 2

Algoritmos para Ambientes

Homogeneos

Neste capıtulo apresentaremos os estudos do problema da troca de mensagens para ambi-entes homogeneos, ou seja, ambientes onde os links de comunicacao entre todos os pares deprocessadores possuem a mesma velocidade e o mesmo tempo de latencia. Entao, γi,j = γe βi,j = β,∀i, j ∈ {0..n− 1} e o tempo de comunicacao de uma mensagem de tamanho wi,j

do processador pi para pj custa tempo β + wi,jγ. Computadores paralelos, redes locais eaglomerados sao exemplos de ambientes homogeneos.

A seguir apresentaremos algumas heurısticas apresentadas em [GPT05] para resolver o pro-blema. Dentre elas, algoritmos que minimizam o numero de fases de comunicacao, que fazemum melhor uso da banda de rede e algoritmos que tentam balancear essas duas caracterısticas.Com base nesses algoritmos, os autores discutiram um algoritmo hıbrido. Este algoritmo eapresentado no final deste capıtulo.

2.1 Algoritmo de Troca de Mensagens para Hipercubo

Este primeiro algoritmo foi proposto para topologias de hipercubo. Uma estrutura de redeem hipercubo e formada por n = 2l (l inteiro) processadores interconectados em um cubobooleano de dimensao l (Figura 2.1). Cada processador pi, i = 0, ..., n − 1, e marcado com arepresentacao binaria de i, ou seja,

pi ={

(b1, ..., bl) |bj ∈ {0, 1} , 1 ≤ j ≤ l, i =∑

j bj2j−1}

.

Um exemplo desta representacao e ilustrada na figura 2.1.

10

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 11

0000 0001

0100 0101

0110 0111

0010 0011

1000 1001

1100 1101

1110 1111

1010 1011

Figura 2.1: Hipercubo de dimensao 4.

Dois processadores sao adjacentes se eles diferem em apenas uma posicao na representacaobinaria. Seja pj

i , o processador que difere, na representacao binaria, do processador pi somentena j-esima posicao. Portanto, pi e pj

i sao adjacentes (se comunicam) e pi = (b1, ..., bj, ..., bj) e

pli =

(

b1, ..., bj, ..., bl

)

, onde bj = (bj + 1) mod 2, j = 1, ..., l.

@@

@@

@@

��

��

��

��

��

��

@@

@@

@@

@@

@@

@@

��

��

��

��

��

��

@@

@@

@@

p0 = (0, 0, 0)

p4 = (1, 0, 0)p2 = (0, 1, 0)

p1 = (0, 0, 1)

p6 = (1, 1, 0)p5 = (1, 0, 1)

p3 = (0, 1, 1)

p7 = (1, 1, 1)

Figura 2.2: Rede em hipercubo de dimensao 3

O algoritmo faz uso do mecanismo de message forwarding (encaminhamento de mensagens)e nao quebra as mensagens (sem preempcao).

O algoritmo e descrito a seguir:

para t = 1 ate log(n) facafaca em paralelo para todo i, 0 ≤ i < n

pi troca todas mensagens necessarias com pti

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 12

Trocar todas as mensagens necessarias com pji significa enviar, alem das mensagens desti-

nadas diretamente do processador pi para pji , as mensagens a serem encaminhadas para outros

processadores nas proximas fases de comunicacao. A figura 2.3 mostra o fluxo das mensa-gens enviadas pelo processador p0 na primeira fase, onde p0 envia para p4 as mensagens quepossuem como destino final os processadores p4, p5, p6, p7.

p0

p2

p3

p1

5p

p6

p4

p7

1

3

2

3

Figura 2.3: Mensagens enviadas pelo processador p0 na fase 1

Na analise, nao foram considerados os tempos para copiar e rearranjar as mensagens dentrodo processador, pois esses tempos sao muito pequenos na maioria dos sistemas paralelos atuais.Neste algoritmo, cada processador executa log2n fases de comunicacao. Vamos agora analisaro fluxo das mensagens enviadas por cada processador. Se considerarmos tambem as mensagensde tamanho zero, ou seja, cada processador precisa enviar exatamente uma mensagem paratodos os outros, em cada fase de comunicacao t (t = 1, ..., log2n), cada processador envia n

2t

mensagens.

Na primeira fase de comunicacao, nao existem mensagens recebidas para encaminhar.Nesta fase, cada processador envia n

2de suas mensagens para o no adjacente. Isto porque

e necessario encaminhar todas as mensagens as quais estao enderecadas para os processadoresque possuem o primeiro bit diferente do processador de origem.

Por exemplo, para n = 8 = 23, p0 (0, 0, 0) precisa enviar para p4 (1, 0, 0) as mensagensdestinadas para p6 (1, 1, 0), p7 (1, 1, 1) e p5 (1, 0, 1), alem da mensagem para o proprio p4.Estes dados podem ser conferido na tabela 2.1. A tabela mostra as mensagens enviadas porcada processador (origem) na fase 1. Os valores em negrito sao os processadores que receberaoas mensagens (destino).

Na fase 2 (2.2), um processador envia n4

de suas mensagens e n4

mensagens encaminhadas.No exemplo anterior, o processador p0 envia, nesta segunda fase, para p2 as suas mensa-

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 13

origem destino000 100 110 111 101001 101 111 110 011010 110 100 101 111011 111 101 100 110100 000 001 011 010101 001 011 010 000110 010 000 001 011111 011 001 000 010

Tabela 2.1: Mensagens enviadas na fase 1 por processador

gens destinadas para p2 e p3, e tambem as duas mensagens recebidas de p4 na fase anterior,totalizando 4 = n

4mensagens.

origem destino000 010 011001 011 010010 000 001011 001 000100 110 111101 111 110110 100 101111 101 100

Tabela 2.2: Mensagens enviadas na fase 2 por processador

Em geral, na fase t (t = 1, ..., log2n), cada processador troca com seu no vizinho n2t de suas

proprias mensagens, e encaminha∑t

j=2n2j = n

2− n

2t das mensagens recebidas na fase anterior.Em cada fase i, portanto, o tempo para troca das mensagens e limitada por β + n

2Mγ, onde

M e o tamanho da maior mensagem a ser trocada. O tempo total do algoritmo e, no maximo,log2nβ + log2n

n2Mγ.

Um algoritmo mais geral para qualquer numero de nos baseado no grafo de Knodel [Kno75]de dimensao ⌊log2n⌋ e mostrado em [GPT05].

Neste trabalho supos-se que a rede utilizada e altamente interconectada. Entao, e possıvelenviar cada mensagem diretamente para o seu destino. No algoritmo do hipercubo, como existelog2n fases de comunicacao, cada processador envia somente ⌊log2n⌋ mensagens diretamentepara seus destinos. Todas as outras mensagens chegam aos seus destinos encaminhadas porprocessadores intermediarios. Essas mensagens encaminhadas levam a uma sobrecarga decomunicacao. Entretanto, para um tempo de inicializacao (startup time) grande em relacaoao tamanho das mensagens, essa sobrecarga pode ser ignorada, pois estamos minimizando onumero de comunicacoes.

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 14

Existe uma clara relacao entre os fatores β e γ no tempo total do algoritmo. Para obtermosum algoritmo com somente O (log2n) fases de comunicacao, e necessario o uso de messageforwarding. Sem este mecanismo, o numero mınimo de fases de comunicacao que um algoritmorealiza e n− 1.

2.2 Algoritmo de Padrao Fixo

Este algoritmo nao quebra as mensagens e nao utiliza o mecanismo de encaminhar men-sagens para processadores intermediarios.

Na fase 1, o processador pi se comunica com o processador p(i+1)modn. Na fase seguinte,com p(i+2)modn, e assim por diante ate pi trocar mensagens com p(i+n−1)modn. Cada processadorexecuta, entao, n − 1 fases de comunicacao e, em cada fase t (t = 1, ..., n− 1), o processadorpi envia dados para o processador p(i+t)modn.

para t = 1 ate n-1 faca

execute em paralelo para todo i (0 <= i <= n)

p[i] envia mensagem para p[(i+t)%n]

p[i] recebe mensagem de p[(i-t)%n]

Em cada fase de comunicacao, cada processador envia mensagens para apenas um pro-cessador e recebe mensagens de apenas um outro processador. Entao, nenhum conflito decomunicacao ocorre neste algoritmo. Se o modelo for sıncrono, o tempo para completar umafase sera o tempo de enviar a maior mensagem da fase. Se, na fase t, cada processador ienvia a mensagem wi,(i+t)modn, entao o tempo para enviar todas as mensagens da fase sera

β + maxi

{

wi,(i+t)modnγ}

. Portanto, o tempo para trocar todas as mensagens sera:

β + maxi

{

wi,(i+1)modn

}

γ + β + maxi

{

wi,(i+2)modn

}

γ + ... + β + maxi

{

wi,(i+n−1)modn

}

γ

≡ (n− 1)β +n−1∑

t=1

maxi

{

wi,(i+1)modn

}

γ ≤ (n− 1) β + (n− 1) Mγ,

onde M e o tamanho da maior mensagem a ser trocada, ou seja, M = maxi,j{wi,j}.

Agora, considere uma instancia do problema onde so existem mensagens de dois tamanhosM e S, e suponha que as fases de comunicacao sao sıncronas. Se existem n − 1 mensagensgrandes (M) tal que, cada uma delas e enviada em fases de comunicacoes diferentes, entao otempo total do algoritmo e (n− 1) β + (n− 1) Mγ. A matriz de comunicacao a seguir mostraum exemplo onde isto acontece:

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 15

0 M S S S S S SS 0 S S S S S SM S 0 S S S S SS S S 0 S S S MS S S S 0 S M SS S S S M 0 S SS S S M S S 0 SS S M S S S S 0

Para este exemplo, o diagrama da figura 2.4 abaixo mostra o escalonamento gerado peloalgoritmo de padrao fixo. Este diagrama e chamado de diagrama de Gantt. Cada linha dodiagrama corresponde a um processador do sistema. As caixas em cada linha ilustram astransmissoes das mensagens deste processador. Os numeros dentro de cada caixa correspondeao destino da mensagem.

-

6

0765432

1

107

65432

21076543

3210

7654

...

Figura 2.4: Exemplo de pior caso do algoritmo de padrao fixo no modelo sıncrono.

A melhor utilizacao da largura de banda seria uma instancia em que o escalonamentogerado tivesse n − 2 fases de comunicacao, onde somente mensagens de tamanho S seriamtransmitidas e apenas uma fase com mensagens de tamanho M . Neste caso, o tempo totalpara trocar as mensagens seria (n− 1) β + ((n− 2) S + M) γ.

O algoritmo no modelo assıncrono utiliza a mesma matriz de comunicacao gerada nomodo sıncrono. Quando um processador termina uma comunicacao, verifica se a proximacomunicacao pode ser efetuada sem exceder a capacidade de transmissao da porta da outraponta da comunicacao. O diagrama de Gantt para a execucao do algoritmo de padrao fixo nomodelo assıncrono e mostrado na figura 2.5.

Quando todas as mensagens tem o mesmo tamanho, o algoritmo de padrao fixo leva(n− 1) (β + Mγ) para trocar as mensagens, gerando um escalonamento otimo

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 16

-

6

0765432

1

107

6543

2

21

076

54

3

32

10

76

54

43

21

07

65

54

321

07

6

65

32

10

7

...

Figura 2.5: Exemplo de pior caso do algoritmo de padrao fixo no modelo assıncrono.

2.3 Algoritmos de Padrao Central

Nesta secao, apresentaremos tres algoritmos estudados em [GPT05] que utilizam o conheci-mento global do tamanho das mensagens, ou seja, precisam conhecer o tamanho das mensagenspara determinar uma estrategia de escalonamento de troca de mensagens. Os dois primeirosalgoritmos nao quebram as mensagens no envio. O terceiro algoritmo quebra as mensagens etem melhor desempenho em termos de largura de banda. Nenhum dos algoritmos desta secaoutiliza message forwarding. A estrutura geral dos algoritmos consiste em tres fases: fornecer oconhecimento global do tamanho das mensagens, usar o conhecimento global para computarum escalonamento e a execucao do escalonamento.

executa uma troca All-to-All do tamanho das mensagens

determina um escalonamento

executa o escalonamento

Em linguagens paralelas baseadas em primitivas send()/receive(), um estagio de pre-processamento e necessario para fornecer os tamanhos das mensagens a serem trocados. Esteestagio troca mensagens de tamanho sizeof(int) e, ao final do pre-processamento, todos osprocessadores conhecem os tamanhos de todas as mensagens do problema. Cada processadorenvia n−1 mensagens de tamanho sizeof(int) para os outros processadores. Para esta fase,pode-se usar tanto o algoritmo de padrao fixo como o algoritmo para hipercubos estudados.Os custos de comunicacao deste estagio sao apresentados na tabela 2.3.

No inıcio do segundo estagio, cada processador possui localmente o tamanho de todas asmensagens. Cada processador, entao, utiliza o mesmo algoritmo sequencial e determinısticopara encontrar o escalonamento a ser executado. Assim, no terceiro estagio, os processadorestrocam suas mensagens de acordo com o escalonamento calculado no estagio anterior. Para

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 17

Algoritmo uma mensagem n− 1 mensagenspadrao fixo (n− 1)β+sizeof(int)(n− 1)γ (n− 1)β+sizeof(int)(n− 1)2γhipercubo log2n.β+sizeof(int)log2n.n

2γ log2n.β+sizeof(int)log2n.n

2(n− 1)γ

Tabela 2.3: Custo de comunicacao do pre-processamento.

melhorar a eficiencia do algoritmo, podemos sobrepor alguns calculos do segundo estagio coma comunicacao do terceiro estagio assim que os escalonamentos vao sendo calculados.

Para determinar a estrategia de escalonamento, a representacao de grafo bipartido bG(V,E)do problema foi utilizada. A partir do grafo bipartido, uma sequencia de subgrafos e deter-minada. Cada um destes subgrafos representa uma fase de comunicacao do escalonamento.Como o modelo de comunicacao assume que cada processador tem grau de entrada e de saıda,no maximo, igual a um, podemos afirmar que o conjunto das arestas desses subgrafos e um em-parelhamento do grafo bipartido. Portanto, o problema de encontrar uma fase de comunicacaose resume a encontrar um emparelhamento no grafo bipartido.

O algoritmo para encontrar todas as fases de comunicacao neste estagio e, portanto, de-terminar para cada fase de comunicacao i, um emparelhamento Mi no grafo bG(V,E). Porexemplo, para encontrar a primeira fase de comunicacao, o algoritmo encontra um emparelha-mento M1 no grafo bG(V,E). O conjunto de arcos (pi, pj) do emparelhamento M1 representaas comunicacoes que devem ser realizadas primeiramente. Para definir a segunda fase de comu-nicacao M2, deve-se encontrar mais um emparelhamento no grafo bG(V,E). Porem, como asmensagens da fase M1 ja foram transmitidas, devemos modificar o grafo bG(V,E) subtraindoos pesos dos arcos de M1 do grafo bG(V,E), removendo os arcos do grafo que ficaram compeso igual a zero, ou seja, eliminando as mensagens que ja foram totalmente transmitidas.Esta operacao deve se repetir ate que todos os arcos sejam removidos do grafo.

Portanto, os tres algoritmos desta secao diferem apenas na estrategia de encontrar os em-parelhamentos Mi. Estes tres algoritmos sao algoritmos conhecidos da algebra linear [Law94].

2.3.1 Estrategia Max-Min

O objetivo desta estrategia e encontrar, para cada fase de comunicacao, um emparelha-mento maximal no qual o peso mınimo e maximizado. Em outras palavras, o algoritmo garanteque, em cada fase de comunicacao, o tamanho da menor mensagem e maximizado. O algo-ritmo para encontrar esses emparelhamentos e baseado no aumento de caminhos [Law94], e epolinomial.

A complexidade do algoritmo Max-Min e O(n3) [Law94]. Essa estrategia pode gerar maisde n−1 fases de comunicacao. Isso ocorre quando processadores enviam ou recebem menos quen− 1 mensagens. Neste caso, existira fases de comunicacao com mensagens de tamanho zeroe o algoritmo nao maximizara corretamente as mensagens. Este problema pode ser corrigido

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 18

facilmente inserindo mensagens fictıcias com tamanho pequeno no lugar de mensagens detamanho zero.

2.3.2 Estrategia Max-Weight

Nesta estrategia, nos olhamos para emparelhamentos em que a soma dos pesos e maximal.O algoritmo do aumento de caminhos [Law94] para encontrar tais emparelhamentos e poli-nomial. Com esta estrategia, cada fase de comunicacao troca a maior quantidade de dadospossıveis, e esta quantidade vai decrescendo a cada fase executada. Intuitivamente, as maioresmensagens sao trocadas no inıcio e as ultimas fases trocarao as menores mensagens.

A complexidade do algoritmo Max-Weight e igual a do algoritmo Max-Min, ou seja, O(n3).Como na estrategia Max-Min, este algoritmo pode resultar em mais de n − 1 fases de comu-nicacao. Porem, nesta estrategia, o problema ocorre quando existem transmissoes de umprocessador para ele mesmo. Neste caso, a solucao e inserir mensagens fictıcias grandes detamanho negativo.

2.3.3 Estrategia Uniforme

Na estrategia Uniforme, o objetivo e encontrar emparelhamentos nos quais os pesos detodas as arestas possuam o mesmo valor. Para obter isso, o algoritmo precisa quebrar asmensagens e envia-las em varias comunicacoes. Seja dG(V,E) o digrafo de um MEP e sejaW = (wi,j) a representacao de matriz do mesmo problema, para gerar os emparelhamentos,e utilizada uma quasi-doubly stochastic matrix Q na qual todas as linhas e todas as colunaspossuem elementos cujas somas sao iguais. Seja rowi(W ) a soma dos elementos da linha i,e colj(W ) a soma dos elementos da coluna j da matriz W , α = maxn

i=1 {rowi(W ), coli(W )},isto e α = max {ts/γ, tr/γ}, o seguinte algoritmo gera a matriz Q a partir de W adicionandomensagens fictıcias:

Q← Wpara i = 1 ate n faca

para j = 1 ate n faca

se i 6= j ent~ao

qi,j = qi,j + min {α− rowi(Q), α− colj(Q)}para i = 1 ate n faca

qi,i = qi,i + min {α− rowi(Q), α− coli(Q)}

No digrafo dQ(V,E) correspondente a Q todos os processadores enviam, e tambem re-cebem, mensagens cuja soma dos tamanhos e igual a α. O algoritmo garante, apos os doisprimeiros lacos, que, para cada elemento qi,j, pelo menos uma das seguintes condicoes e sa-

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 19

tisfeita: rowi(Q) = α ou colj(Q) = α. Assim, no laco final, adicionar mensagens fictıcias detamanho min {α− rowi(Q), α− coli(Q)} em qi,i garante que rowi(Q) = α e coli(Q) = α. Aprova de que a matriz Q gerada pelo algoritmo acima e uma quasi-doubly stochastic matrixpode ser encontrada em [BMP04]. Note que o limite inferior em termos de largura de bandados novos pesos da matriz Q e o mesmo em relacao a matriz W , pois o numero de dados queo processador ira enviar ou receber utilizando a matriz Q e igual a maior quantidade de dadosque um processador envia ou recebe utilizando a matriz W .

Utilizando a representacao bipartida do grafo dQ(V,E), o algoritmo encontra uma sequenciade emparelhamentos que maximiza o tamanho da menor mensagem. Para cada emparelha-mento encontrado, todos os arcos terao o mesmo valor que sera igual ao menor peso doemparelhamento, como mostrado na figura 2.6. Com emparelhamentos onde todos os arcospossuem o mesmo peso, as fases de comunicacao correspondentes serao uniformes. Nao enecessario transmitir as mensagens fictıcias.

p1

p1

p0

p0

2p

p3

2p

p3

3

3

2

5

4 p1

p1

p0

p0

2p

p3

2p

p3

2

2

p1

p1

p0

p0

2p

p3

2p

p3

4

2

2

0p

2p

33

31

p

3p

0p

2p2

2

1p

3p

0p

2p2

2

1p

3p

Figura 2.6: Exemplo de execucao do algoritmo uniforme.

O numero de fases de comunicacao do algoritmo Uniforme e igual a O(n2− 2) porque pelomenos uma mensagem completa e transmitida por fase de comunicacao. O escalonamentogerado e otimo em termos de uso de largura de banda ([BCW81, CH88]).

2.4 Discussao

A escolha do melhor algoritmo de escalonamento depende dos parametros do modelo decusto de comunicacao (β e γ), e dos tamanhos das mensagens. Em modelos em que a latencia

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 20

e predominante sobre a largura da banda, o algoritmo de hipercubos e a melhor escolha poisminimiza o numero de fases de comunicacao. No oposto da configuracao anterior, o algoritmouniforme, que minimiza o uso da largura da banda, e mais eficiente. Quando nenhum dosdois parametros sao predominantes no modelo, a escolha entre os algoritmos Max-Min, Max-Weight e Padrao Fixo depende da distribuicao dos tamanhos das mensagens. Se a varianciaentre os tamanhos das mensagens e pequena e nao e necessario fornecer o conhecimento globaldos tamanhos das mensagens, o algoritmo Padrao Fixo e uma boa escolha, pois ele temsolucao otima para o problema com mensagens de mesmo tamanho e nao exige sobrecargade comunicacao para o pre-processamento. Se nao, o tempo total dos algoritmos Max-Min eMax-Weight sao geralmente melhores que o Padrao Fixo.

2.5 Algoritmo Hıbrido

Em geral, o algoritmo uniforme tem um comportamento melhor que os outros algoritmosdurante as primeiras fases de comunicacao, quando um numero de mensagens grandes e tro-cado. Entretanto, as fases de comunicacao finais quase sempre envolvem a troca de mensagenspequenas. Portanto, um algoritmo mais eficiente seria iniciar o escalonamento utilizando oalgoritmo uniforme e, a partir de um certo ponto, trocar para um outro algoritmo. Entao, oalgoritmo hıbrido seria:

Executar uma troca All-to-All nos tamanhos das mensagens

Aplicar o algoritmo uniforme para as primeiras k fases de comunicac~ao

Aplicar um outro algoritmo para as mensagens restantes

Portanto, falta determinar o valor de k e escolher um algoritmo com O(n) fases de co-municacao. Seja W = (wi,j) a matriz de pesos original, e Q = (qi,j) a matriz gerada pelaestrategia Uniforme. Seja ℓt o tamanho das mensagens transmitidas na fase de comunicacaot da estrategia Uniforme, e Lt = (ℓt

i,j) a matriz que representa o emparelhamento da fase decomunicacao t, 1 ≤ t ≤ k, e facil observar que Lt e o produto escalar de ℓt com uma matrizde permutacao. Como existem k fases de comunicacao no algoritmo Uniforme, o tempo gastopor este algoritmo e kβ + γ

∑kt=1 ℓt

i,j. Apos as k fases de comunicacao, a matriz de pesoscontendo as mensagens que ainda nao foram transmitidas se torna igual a W ′ = (w′

i,j), onde

w′

i,j = max{

0, wi,j −∑k

t=1 ℓti,j

}

.

Para o segundo algoritmo, existem varias possibilidades. Os algoritmos de padrao fixo,Max-Min e Max-Weight possuem a mesma complexidade de pior caso. Os casos medios dedesempenho dos algoritmos Max-Min e Max-Weight sao parecidos e sao melhores que o algo-ritmo de padrao fixo, entao a analise foi restrita para os algoritmos de Max-Min e hipercubos.Se o algoritmo para hipercubos for utilizada, existira mais ⌈logn⌉ fases de comunicacao e a

quantidade de comunicacao sera em torno de max{

w′

i,j

}

log2nn2γ. Se e o algoritmo Max-Min

CAPITULO 2. ALGORITMOS PARA AMBIENTES HOMOGENEOS 21

que sera utilizada, entao existira no maximo mais n − 1 fases de comunicacao e em torno demax

{

w′

i,j

}

(n−1)γ de dados serao trocados. Entao, o tempo para completar a troca de todasas mensagens no algoritmo hıbrido utilizando o algoritmo para hipercubo sera de no maximo:

(k + ⌈logn⌉)β +

(

k∑

t=1

ℓt + max{

w′

i,j

}

log2nn

2

)

γ,

e, utilizando a estrategia Max-Min como segundo algoritmo, o tempo sera de no maximo:

(k + n− 1)β +

(

k∑

t=1

ℓt + max{

w′

i,j

}

(n− 1)

)

γ.

Nas duas formulas acima, vemos que existe uma relacao entre os termos que aumentamcom o valor de k (β) e um termo que diminui com k (max

{

w′

i,j

}

). Entao, podemos concluirque existe um inteiro positivo k∗ que depende do segundo algoritmo escolhido e que minimizao tempo para troca completa de mensagens.

O algoritmo a ser escolhido para realizar a troca depende dos valores β e γ do modelo. Paralatencias muito grandes, um puro algoritmo de hipercubo (isto e, k∗ = 0) deveria ser utilizado.Quando a latencia e insignificante, o algoritmo Uniforme apresenta melhor desempenho. Essesdois algoritmos podem ser vistos como casos degenerados de algoritmos hıbridos. Se nao, odesempenho do algoritmo dependera principalmente da estrutura da matriz, e nao e possıveldeterminar analiticamente o valor de k∗.

2.6 Conclusao

Neste capıtulo vimos alguns algoritmos estudados em [GPT05] para o problema de trocacompleta de mensagens de diferentes tamanhos para ambientes homogeneos, ou seja, am-bientes em que a latencia e a largura de banda e igual para qualquer par de processador.Analisamos o comportamento deles de acordo com os valores de β, γ e da distribuicao dasmensagens para encontrar um algoritmo mais eficiente. Estes algoritmos podem ser utilizadosnormalmente em ambientes heterogeneos. No entanto, devido as diferencas do comportamentodas comunicacoes, o desempenho destes algoritmos nao sera o mesmo. No capıtulo seguinte,analisaremos adaptacoes feitas nestes algoritmos para considerar a heterogeneidade da rede.

Capıtulo 3

Algoritmos para Ambientes

Heterogeneos

Neste capıtulo introduziremos outro parametro no modelo. A ideia principal e que ascomunicacoes nao possuem as mesmas caracterısticas para todos os pares de computadores.Neste caso, teremos um valor diferente para o tempo de latencia βi,j e largura da banda 1

γi,j

para cada par pi e pj de processadores. Portanto, neste modelo, o tempo de comunicacao deuma mensagem de tamanho w do processador pi para pj e βi,j + wγi,j.

Na secao seguinte nos concentraremos nos estudos do problema em ambientes multi-aglomerados, ja publicados, que servirao como base para o nosso trabalho. Nestes ambientesaglomerados de computadores estao interligados formando aglomerados maiores. A seguir,falaremos do problema de redistribuicao. Um problema particular da troca completa ondedois aglomerados estao ligados por um backbone e os processadores de um aglomerado enviammensagens para os processadores do outro aglomerado. Finalizaremos o capıtulo com umapequena discussao sobre os algoritmos estudados.

3.1 Escalonamento em Redes Multi-Aglomerados

Com o aumento do uso de aglomerados de computadores, um modo de se constituir aglome-rados maiores e interconectar aglomerados ja existentes. Geralmente, o tempo de comunicacaoentre computadores de um mesmo aglomerado nao depende dos processadores envolvidos. En-tretanto, a comunicacao entre computadores de diferentes aglomerados tende a ser mais lento.Esta secao fornecera algoritmos apresentados em [Gol02], que sao personalizados para a trocade mensagens para este caso.

Com o objetivo de modelar uma rede multi aglomerados (MCN), sera introduzido um

22

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 23

modelo mais simplificado onde existem apenas dois nıveis de conexoes. Os aglomerados saoconectados entre si obtendo o MCN. Existem apenas dois tipos de comunicacao, uma locale outra entre aglomerados diferentes. A figura 3.1 mostra um exemplo de uma rede multiaglomerados de dois nıveis composto por seis aglomerados.

...

...

... ...

...

Figura 3.1: Um exemplo de um MCN composto por seis aglomerados.

Dado um MCN composto por CL aglomerados, cada aglomerado Li e composto por ni,0 ≤ i < CL, computadores, Li =

{

pi0, ..., p

ini−1

}

. O conjunto de processadores de todo o

sistema e definido por {p0, ..., pn−1}, onde n =∑CL−1

i=0 ni, e pij e o j-esimo processador do

aglomerado i e corresponde ao processador pk, k =∑i−1

l=0 ni + j.

Cada um dos aglomerados e tratado como um ambiente homogeneo. Portanto, o tempo decomunicacao entre computadores pertencentes ao mesmo aglomerado sera tratado da mesmamaneira como nos ambientes homogeneos. Logo, o tempo para o processador pi enviar umamensagem de tamanho wi,j para o processador pj, pi e pj pertencentes ao mesmo aglomerado,e βl +wi,jγl. Quando pi e pj estao em aglomerados distintos, o tempo de troca sera βd +wi,jγd.

Os algoritmos apresentados na secao anterior podem ser usados sem necessidade de al-teracoes. Porem, devido as diferencas de comunicacao locais e distantes, o desempenho dosalgoritmos sera degradado. Nesta secao duas estrategias para escalonamento em MCN seraoapresentadas. A primeira tenta adaptar os algoritmos anteriores para considerar as comu-nicacoes locais e distantes. A segunda realiza uma comunicacao em nıveis. Reservaremostambem uma secao para falar sobre o MagPIe: uma implementacao das primitivas de comu-nicacao coletivas do MPI para este tipo de rede MCN com 2 nıveis.

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 24

3.1.1 Adaptando os Algoritmos

• Padrao Fixo e Hipercubos

Como esses dois algoritmos nao utilizam o conhecimento global do tamanho das mensa-gens para definir o escalonamento, so e possıvel utilizar a informacao da velocidade doslinks. Entao, para melhorar o desempenho em relacao ao algoritmo original, seria con-veniente agrupar as mensagens locais em fases de comunicacao diferentes das mensagensdistantes.

• Max-Min e Max-Weight

Os algoritmos de padrao central utilizam informacoes dos tamanhos das mensagens entaoe possıvel adapta-los introduzindo um custo adicional para mensagens a serem transmi-tidas entre aglomerados. Para isso, e necessario considerar as diferencas nos parametrosde comunicacao. Ao inves de utilizar a matriz de comunicacao W para calcular osemparelhamentos, utilizaremos uma matriz de tempo esperado. Se uma mensagem detamanho w sera enviada dentro do aglomerado, o custo de comunicacao sera βl +wγl. Seesta mensagem envolve uma comunicacao distante, entao o custo de comunicacao seraβd + wγd. O algoritmo e mostrado abaixo:

construa a matriz de tempo esperado T a partir de Wenquanto existe mensagens n~ao vazias em W faca

encontre a fase de comunicac~ao MT em Tuse o padr~ao de comunicac~ao MT para construir MW

subtraia de W as mensagens em MW

• Uniforme

A substituicao da matriz de comunicacao pela matriz de tempo esperado utilizada ante-riormente para os algoritmos Max-Min e Max-Weight nao pode ser aplicada diretamenteno algoritmo Uniforme. Para permitir o uso da mesma ideia seria necessario conhecer onumero de vezes que uma mensagem seria quebrada antes do inıcio do algoritmo.

Um modo diferente para resolver o problema foi proposto em [Gol02]. A principal ideiae reconstruir a matriz de tempo esperado depois de cada fase de comunicacao. Em cadafase de comunicacao, cada transmissao dentro do aglomerado usa comunicacao local,e transmissoes entre aglomerados diferentes utilizam comunicacao distante. As dife-rencas dessas comunicacoes devem ser consideradas na fase de normalizacao. Seja t omenor tempo de transmissao em uma fase de comunicacao, existem dois limites supe-riores no tamanho das mensagens, wl e wd para comunicacao local e distante tal quet = βl + wlγl = βd + wdγd. Logo, o tamanho das mensagens locais e limitado por wl edas mensagens distantes por wd. O seguinte algoritmo e utilizado:

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 25

construa a matriz de tempo esperado T a partir de Wenquanto existe mensagens n~ao vazias em W faca

encontre a fase de comunicac~ao MT em Tuse o padr~ao de comunicac~ao MT para construir MW

normalize MW

envie as mensagens de MW

subtraia de W as mensagens em MW

reconstrua T a partir de MT

3.1.2 Algoritmos de dois nıveis

A principal ideia e resolver o problema nıvel por nıvel. Primeiro, as mensagens sao trocadasdentro de cada aglomerado, centralizando em apenas um processador (representante) as men-sagens a serem enviadas para outros aglomerados. Apos isso, os processadores representantesde cada aglomerado trocam as mensagens (distantes) entre si. Com isso, cada processador re-presentante tera todas as mensagens vindas de outros aglomerados destinadas a processadoresde seu proprio aglomerado. Finalmente, esses processadores realizam uma difusao (broadcast)enviando as mensagens para o destino final.

troca de mensagens locais em cada aglomerado

troca de mensagens distantes entre os aglomerados

distribuic~ao das mensagens em cada aglomerado

Qualquer um dos algoritmos apresentados para ambientes homogeneos pode ser utilizadonos dois primeiros passos. A melhor escolha depende, como no ambiente homogeneo, dosparametros de comunicacao.

3.1.3 Resultados Obtidos

Simulacoes realizadas em [Gol02] mostram que os algoritmos propostos nesta secao paraa troca completa de mensagens em ambientes multi-aglomerados obtiveram desempenho 20%melhor que os algoritmos do capıtulo 2. A escolha do algoritmo a ser utilizado em uma redemulti-aglomerado depende principalmente dos parametros das comunicacoes distantes. Parabaixas latencias, o algoritmo Uniforme adaptado tem melhor desempenho. Quando a latenciadas comunicacoes distantes e alta, os algoritmos para hipercubo adaptado e o algoritmo dedois nıveis sao melhores opcoes. Se os tamanhos das mensagens sao muito grandes, o algoritmopara hipercubo torna-se mais custoso.

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 26

3.1.4 MagPIe

O crescimento de grades computacionais torna possıvel rodar programas paralelos emgrande escala e geograficamente distribuıdos. Infelizmente, escrever aplicacoes paralelas eum trabalho difıcil. Em particular, programadores precisam reestruturar seus programas paralidar com diferencas nos processadores e nas velocidades da rede com o objetivo de minimizaro trafego sobre links lentos. A biblioteca MagPIe [KHB+99] tenta resolver o problema imple-mentando as primitivas de comunicacoes coletivas do MPI otimizadas para grades computa-cionais. MagPIe foi desenvolvido para uma rede multi-aglomerado de 2 nıveis, pois consideraque grades de computadores sao formados por muitos computadores paralelos conectados pelainternet. O desempenho de uma operacao de comunicacao coletiva neste ambiente e domi-nado pelo tempo gasto nos links de aglomerados diferentes. MagPIe utiliza 2 condicoes paraotimizar o tempo total de comunicacao:

1. Todo caminho de comunicacao de uma mensagem utilizado pelo algoritmo contem nomaximo 1 link distante (de aglomerados diferentes);

2. Nenhuma mensagem e enviada mais de 1 vez para um mesmo aglomerado.

A condicao 1 garante que a latencia das areas distantes contribui no maximo 1 vez no tempototal de comunicacao. A condicao 2 nos previne de desperdicar largura de banda de areasdistantes.

Os algoritmos de comunicacao coletiva utilizados no MagPIe sao parametrizados na dife-renca entre o tempo de completar o envio de uma mensagem (ts) e o tempo de recepcao (tr)desta mensagem. Como a comunicacao e assıncrona, o tempo para completar um envio ts e otempo da mensagem ser inserida totalmente dentro da rede e depende apenas do tamanho damensagem. O tempo tr, adicionalmente, depende da latencia e da largura de banda da rede.Se tr − ts e pequeno, entao a arvore de comunicacao otima de uma difusao (broadcast) e umaarvore binomial. Se esta diferenca e grande, entao a arvore otima e de apenas um nıvel (flattree).

� ��

� ��

� ��

� ��

� ��

� ��

� ��

� ��p0

p1 p2 p3 p4 p5 p6 p7

Figura 3.2: Arvore de 1 nıvel (Flat Tree)

� ��

� ��

� ��

� ��

� ��

� ��

� ��p0

� ��

p4 p2 p1

p6 p5 p3

p7

Figura 3.3: Arvore binomial

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 27

Em aglomerados diferentes, a latencia domina a largura de banda para mensagens peque-nas e medias, ou seja tr >> ts. Consequentemente, a arvore flat e a melhor infra-estruturade interconexao entre os aglomerados. Dentro do aglomerado, em links locais, tr − ts e relati-vamente pequeno e a arvore binomial e quase otima para grafos que representam nos dentrode um mesmo aglomerado. O ponto exato entre o uso de uma arvore de 1 e n nıveis de-pende dos valores atuais da latencia, largura de banda, numero de aglomerados e tamanhodas mensagens.

A estrutura geral dos algoritmos utilizados no MagPIe e separada em dois tipos. Em algo-ritmos assimetricos, um processo dedicado chamado root age como remetente e destinatario.Em algoritmos simetricos, todos os processos enviam e recebem mensagens. Nos algoritmosassimetricos, o root tambem age como coordenador do aglomerado. Em todos os outros aglo-merados dos algoritmos assimetricos e em algoritmos simetricos, o coordenador e escolhidoarbitrariamente (Figura 3.4).

Figura 3.4: Grafos de comunicacao no MagPIe

A operacao MPI Barrier sincroniza um grupo de processos: nenhum dado e trocado nestaoperacao. Como esta e uma operacao simetrica, o algoritmo MagPIe a implementa em 3 passos:uma reducao (gather) local de mensagens vazias para o coordenador utilizando uma arvorebinaria, uma troca completa utilizando uma flat tree e finalmente uma difusao utilizandoarvore binaria.

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 28

Em MPI Bcast, o processo root envia um vetor de dados para todos os outros processos.Esta operacao e o caso mais simples de um algoritmo assimetrico um-para-muitos e sua imple-mentacao no MagPIe consiste em 2 passos: o root envia para os nos coordenadores utilizandouma flat tree e estes realizam uma difusao dentro de seus aglomerados utilizando arvoresbinomiais. MPICH implementa a difusao em uma arvore binomial.

MPICH implementa o algoritmo de difusao personalizada scatter de um modo mais simplespossıvel no qual o no root envia diretamente pedacos dos dados para os respectivos nos.MagPIe utiliza o mesmo algoritmo pois uma arvore de um nıvel nesta operacao gera apenasuma simples latencia e nenhum dado e enviado desnecessariamente.

Em MPI AllGather, um algoritmo baseado em coordenadores pode melhorar o desempenhoda comunicacao pois todos os processos recebem o mesmo dado, como no MPI Bcast. Noalgoritmo MagPIe, os coordenadores primeiro colhem os dados localmente armazenando em umvetor parcial. Apos esta fase, uma troca destes vetores parciais entre os aglomerados e realizadacompletando o vetor de dados. Finalmente um broadcast transmite o vetor localmente.

A implementacao no MagPIe da comunicacao coletiva de troca completa de mensagens dediferentes tamanhos MPI Alltoallv nao utiliza um algoritmo de escalonamento para realizaras trocas de mensagens. Na atual implementacao, os processos apenas realizam todos os enviosde suas mensagens de forma nao-bloqueante seguido de uma chamada de MPI Waitall. Destemodo, os conhecimentos da topologia de multi-aglomerados e dos tamanhos das mensagensnao sao considerados para gerar um escalonamento para a troca completa. Considerando quea capacidade de transmissao dos processadores segue o modelo 1-port e que a ordem do enviodas mensagens segue a ordem de chamadas do metodo MPI Isend, entao podemos considerarque a troca completa no MagPIe e implementada utilizando o Algoritmo de Padrao Fixo doambiente homogeneo. O codigo-fonte do metodo MPI Alltoallv obtido em [alb06] se encontrano apendice C.

3.2 Redistribuicao em Aglomerados Ligados por Back-

bone

Nesta secao, vamos descrever o problema de redistribuicao de dados entre dois aglomera-dos conectados por um backbone (figura 3.5) estudado em [WJ04, JW04, JW05]. O problemaaparece quando os processadores de um aglomerado precisam enviar mensagens para os pro-cessadores do segundo aglomerado. Ou seja, dados de cada processador de um aglomerado deenvio precisam ser transferidos para os processadores de um segundo aglomerado. Em geral,o backbone que une os dois aglomerados de computadores nao tem capacidade de manipulartodas as mensagens ao mesmo tempo. Por exemplo, sejam dois aglomerados compostos por100 nos cada um. Cada no tem a capacidade de enviar dados a uma velocidade de 100Mbit/se o backbone tem capacidade de transmitir 1Gbit/s. Neste caso, a largura de banda agregada

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 29

de cada aglomerado e 100 ∗ 100Mbit/s = 10Gbit/s. Para nao exceder a capacidade da largurade banda do backbone, limita-se em k o numero de mensagens que podem ser enviadas aomesmo tempo pelo backbone. No exemplo anterior, k = 10 pois 10 comunicacoes de 100Mbit/sresultam em 1Gbit/s de largura de banda agregada.

Backbone

Aglomerado 1 Aglomerado 2

Figura 3.5: Aglomerados ligados por backbone

3.2.1 Descricao do Problema

Sejam dois aglomerados de computadores L1 e L2 com, respectivamente, n1 e n2 nos. Cadacomputador i de L1 possui placa de rede com capacidade de transmitir dados a uma velocidadede t1i e cada no j de L2 possui capacidade de receber dados a t2j . Os dois aglomerados estaointerligados por um backbone com largura de banda T .

Uma aplicacao rodando e usando os dois aglomerados precisa frequentemente transmitirdados de L1 para L2 seguindo o padrao de comunicacao dado pela matriz de trafego Wn1,n2

,onde wi,j representa a quantidade de dados a serem enviados pelo no i ∈ L1 para o no j ∈ L2.

Duas restricoes em relacao a comunicacao sao consideradas:

• δ-port:um no nao consegue enviar (e receber) mais do que δ mensagens ao mesmo tempo.

• k:numero maximo de comunicacoes que pode ser realizado ao mesmo tempo para todos osnos tal que nao ultrapasse a capacidade do backbone. Este numero depende de T

t1i

e Tt2j

,

e e calculado considerando que nao ocorre nenhum congestionamento quando a largurada banda agregada gerada por L1 e recebida por L2 nao e maior que a largura de bandaT do backbone. Portanto: k × t1i ≤ T , k × t2j ≤ T , k ≤ n1 e k ≤ n2.

Com o objetivo de minimizar o tempo de comunicacao, os algoritmos propostos permitempreempcao. Isto significa que a comunicacao de uma mensagem entre dois nos pode serrealizada em varios passos. Porem, preempcao tem um custo que denotamos por β e e otempo necessario para configurar um passo de comunicacao (abrir o socket e acessar os dados)e realizar a quebra de mensagens.

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 30

A matriz de comunicacao Cn1,n2e obtida dividindo o tamanho de cada mensagem wi,j pela

velocidade de transmissao de i para j, i ∈ L1 e j ∈ L2. Portanto ci,j = wi,j/ti,j, ou seja, ci,j e otempo de transferir a mensagem wi,j do processador i para o processador j quando nenhumainterrupcao ocorre.

A seguir, sera descrito como o problema foi modelado em [JW05, JW04, WJ04]. A notacaodo artigo original foi mantida nesta modelagem.

3.2.2 Modelando o Problema

O problema de redistribuicao de dados pode ser modelado utilizando um grafo bipartidocom peso G = (V1, V2, E, w, δ), um inteiro k, um racional β e um inteiro ∆. V1 e o conjuntode vertices a esquerda do grafo bipartido G. Cada vertice de V1 representa um processadordo aglomerado de envio. O conjunto V2 representa a parte direita de G. Cada vertice de V2

representa um processador do aglomerado de recebimento. E e o conjunto de arestas entrevertices de V1 e V2. Existe uma aresta entre dois vertices se for necessario realizar algumacomunicacao entre os dois processadores correspondentes. w e a funcao de peso das arestas.Para cada aresta e = (i, j) ∈ E, o peso desta aresta e a duracao da comunicacao entre i e j,ou melhor, w(e) = ci,j. δ e uma funcao que, para cada vertice de V1 ∪ V2, devolve o numerode comunicacoes que este vertice pode realizar ao mesmo tempo. A funcao δ e limitada pelaconstante ∆, ou seja, ∀v ∈ (V1 ∪ V2), δ(v) ≤ ∆. k e o numero maximo de comunicacoes quepodem ser realizadas ao mesmo tempo para todos os nos tal que o volume de dados nao excedaa capacidade de comunicacao do backbone. β e o tempo necessario para iniciar uma fase decomunicacao.

3.2.3 Algoritmo WRGP

O primeiro algoritmo estudado nesta secao chama-se algoritmo Weight-Regular Graph Pe-eling e e similar ao algoritmo Uniforme estudado anteriormente. Neste algoritmo, nao existeum limite para a capacidade de transmissao simultanea do backbone. Portanto, o numerototal de comunicacoes realizadas em cada fase nao e limitado, ou seja, o valor de k nao e limi-tado. Outra caracterıstica do algoritmo WRGP e que o valor de δ e sempre igual a 1, ou seja,cada no consegue enviar/receber apenas uma mensagem ao mesmo tempo. Neste algoritmo esuposto, ainda, que o grafo bipartido G seja de peso regular. Isto quer dizer que a soma dospesos das arestas adjacentes a um no possui o mesmo valor para qualquer no do grafo, ou seja,∑

j mi,j =∑

i mi,j. Em outras palavras, cada no do aglomerado enviara ou recebera a mesmaquantidade de dados.

Um emparelhamento perfeito onde todas as arestas possuem o mesmo peso resulta emum passo de comunicacao otimo. O emparelhamento perfeito pode ser obtido atraves dometodo Hungaro [MV80]. Para conseguir que todas as arestas tenham o mesmo peso, utiliza-

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 31

se preempcao. Assim, os pesos das arestas terao o valor do menor peso dentre as arestas doemparelhamento.

1. Encontrar um emparelhamento perfeito M

2. seja w o menor peso dentre as arestas de M

3. construir um emparelhamento perfeito M’ tal que:

• ∀e ∈M ′, e ∈M

• ∀e ∈M ′, w(e) = w

4. adicione M’ ao conjunto de comunicac~oes

5. subtraia M’ do grafo bipartido

6. volte ao passo 1 ate que o grafo se torne vazio

O algoritmo e baseado na seguinte propriedade: Em qualquer grafo bipartido de pesoregular existe um emparelhamento perfeito. Portanto o algoritmo e valido pois apos cada fasede comunicacao, o grafo permanece sendo um grafo bipartido de peso regular.

3.2.4 Algoritmo GGP

O algoritmo anterior trabalha somente com grafos de peso regular e nao leva em consi-deracao o valor do parametro β. O algoritmo GGP (Generic Graph Peeling) mostrado nessasecao e uma extensao do algoritmo WRGP.

Custo de Comunicacao:

Cada passo de comunicacao custa tempo constante β, alem do tempo para transferir os dados.Entao, para ter certeza de que o custo da preempcao nao seja maior do que seus possıveisbenefıcios, o algoritmo utiliza o criterio de nao quebrar mensagens de duracao menor que β.Para implementar esta restricao no algoritmo WRGP, basta normalizar todos os pesos paraβ, arredonda-los para cima e nunca quebrar as mensagens com tamanhos menores que 1.

Notacoes:

Vamos mostrar aqui algumas notacoes utilizadas pelos algoritmos desta secao:

• ∀s ∈ V1 ∪ V2, w(s) e a soma dos pesos de todas as arestas adjacentes a s.

• fG(e) e a funcao de peso da aresta e.

• P (G) =∑

e∈E fG(e): a soma dos pesos de todas as arestas.

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 32

• W (G) = maxs∈V1∪V2(w(s)).

Construindo um grafo de peso regular:

Dado um grafo bipartido G = (V1, V2, E, fG) tal que P (G)k∈ N e P (G)

k≥ W (G), o seguinte

algoritmo constroi G′ = (V ′

1 , V′

2 , E′, f ′

G) um grafo de peso regular tal que:

• V ′

1 ⊂ V1, V ′

2 ⊂ V2, E ′ ⊂ E e f ′(e) = f(e)

• ∀e ∈ E, f ′(e) = f(e)

• G′ e um P (G)k

-peso regular

• ∀(v1, v2) ∈ G′|(v1, v2) ∈ G→ ou v1 /∈ V1 ou v2 /∈ V2

algoritmo:

1. G1 = G

2. Adicionando novos nos em V ′

2

(a) n = null

(b) para cada no s ∈ V1

• enquanto w(s) 6= P (G)k

faca

– se n = null, ent~ao crie um novo no n em V ′

2

– adicione aresta e = (n, s) com f ′(e) = min(P (G)k− w(n), P (G)

k− w(n))

– se w(n) = P (G)k

ent~ao n = null

3. Adicionando novos nos em V ′

1

(a) n = null

(b) para cada no s ∈ V2

• enquanto w(s) 6= P (G)k

faca

– se n = null, ent~ao crie um novo no n em V ′

2

– adicione aresta e = (n, s) com f ′(e) = min(P (G)k− w(n), P (G)

k− w(n))

– se w(n) = P (G)k

ent~ao n = null

Se W (G) > P (G)k

ou W (G) ≤ P (G)k

e P (G)k

/∈ N, adiciona-se novas arestas para construir umnovo G que satisfaca as condicoes iniciais do algoritmo acima.

Observe que a ideia da construcao do grafo de peso regular e semelhante a do algoritmode construcao de quasi-doubly stochastic matrix utilizada no algoritmo Uniforme. Nos dois

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 33

algoritmos, a ideia e gerar mensagens fictıcias para cada processador de envio de modo quetodos eles enviem ou recebam a mesma quantidade de dados. No entanto, existe uma diferencanos dois algoritmos. No algoritmo de construcao de grafos de peso regular, mensagens fictıciassao criadas sempre em novos processadores de modo que o emparelhamento perfeito extraıdodeste grafo contenha no maximo k arestas do grafo original. Deste modo, o algoritmo respeitao limite de comunicacao do backbone.

Algoritmo:

Entrada: G = (V1, V2, E, fG), um inteiro k e um racional βSaıda: um conjunto de emparelhamentos R.

1. Normalize os pesos para β e arredonde para cima

2. Adicione nos e arestas a G para gerar um grafo J de peso regular

3. Aplique o algoritmo WRGP no grafo J e obtenha R’

4. Extraia R da soluc~ao R’ dada pelo WRGP

Note que a execucao do algoritmo WRGP na linha 3 do algoritmo GGP ja obtem asequencia de emparelhamentos correspondente ao padrao de comunicacao. Assim, na linha 4,o algoritmo apenas extrai de R’ a sequencia de emparelhamentos correspondente ao grafo naonormalizado G = (V1, V2, E, fG).

3.2.5 Algoritmo DGGP

O problema que esta secao tenta resolver e o problema da redistribuicao para o caso δ-port,ou seja, caso em que cada processador e capaz de enviar/receber mais que 1 mensagem decada vez. O algoritmo DGGP (Delta Generic Graph Peeling) e uma modificacao do algoritmoGGP adaptando a entrada do problema δ-port para 1-port. O algoritmo transforma o grafode entrada G = (V1, V2, E, w, δ) para o grafo G′ = (V ′

1 , V′

2 , E′, w′) por quebrar cada no i

de G em δ(i) novos nos e dividir igualmente todas as comunicacoes do no i para os novosnos. Para cada no i, entao, sao gerados δ(i) novos nos i1, i2, ..., iδ(i). Se o no i enviaria umamensagem de tamanho mi,j para o processador j, entao cada novo no enviara mi,j

δ(i)para o

no j. Aplicando esta ideia para todos os nos do grafo, teremos uma nova entrada para oalgoritmo GGP. A ideia desta transformacao e que um emparelhamento maximal do novografo corresponde a um conjunto de arestas no grafo antigo. Mesmo que o resultado deuma fase de comunicacao encontrado contenha comunicacao de todos os novos nos geradosna adaptacao, este emparelhamento contera no maximo δ(n) arestas adjacentes ao no n,respeitando a restricao δ(n).

CAPITULO 3. ALGORITMOS PARA AMBIENTES HETEROGENEOS 34

3.3 Discussao

Neste capıtulo estudamos os algoritmos de troca completa de mensagens em ambientesheterogeneos. Em especial estudamos dois casos: O problema da troca completa em ambientesmulti-aglomerados e o problema de redistribuicao de dados entre dois aglomerados ligados porum backbone.

No problema de troca de mensagens em multi-aglomerados, estudamos algoritmos adapta-dos do capıtulo anterior e um algoritmo de dois nıveis. Analisamos o comportamento destesalgoritmos em configuracoes diferentes dos parametros de comunicacao distante.

No segundo caso, estudamos o problema de redistribuicao entre aglomerados separadospor backbone. O backbone que liga os dois aglomerados possui uma capacidade maxima decomunicacao. Este comportamento e comum em ambientes multi-aglomerados quando estesestao interligados por backbones.

Na tabela 3.1, resumimos as caracterısticas principais dos algoritmos estudados.

Ambiente Algoritmo Caracterısticaspadrao fixo σ2 (w (e)) ≈ 0hipercubo Otimiza o numero de fases de comunicacao.

β >> 1γ

homogeneo max-min Quando a σ2 (w (e)) e grande emax-weight β ou γ nao sao predominantes.uniforme Otimiza o uso da largura de banda.

>> β

padrao fixo adaptado Baixas latenciashipercubo adaptado Melhor escolha quando βd e

alta e tamanho das mensagens e pequeno.max-min adaptado Quando a σ2 (w (e)) e grande e

heterogeneo max-weight adaptado βd ou γd nao sao predominantes.uniforme adaptado Melhor desempenho para baixas latencias.

GGP Garante fases de comunicacao com nomaximo k transmissoes simultaneas.

2-nıveis Eficiente quando βd e alta.

Tabela 3.1: Tabela de sıntese dos algoritmos.

O entendimento dos algoritmos estudados neste capıtulo nos servira como base para propor,nos capıtulos seguintes, um novo algoritmo de troca de mensagens para ambientes multi-aglomerados de dois nıveis. Neste MCN, os aglomerados estao ligados por backbones e existeuma restricao no numero de mensagens simultaneas que o backbone consegue enviar.

Capıtulo 4

O Ambiente Estudado: GRID5000

Com o aumento do uso de aglomerados de computadores, uma forma de se constituir aglo-merados maiores e interconectar aglomerados ja existentes. O uso de Redes Multi-Aglomeradosvem se tornando mais comum a cada dia. Com isso, estudar o comportamento da troca com-pleta de mensagens entre computadores destas grades e importante para melhorar o seu uso.

Neste capıtulo descreveremos o modelo utilizado em nossos estudos. Nosso modelo e ba-seado em uma grade chamada Grid5000 [GRI06]. Grid5000 e uma grade composta por aglo-merados distribuıdos geograficamente pela Franca. A principal finalidade desta plataforma eservir de ambiente de testes para pesquisa de computacao em grade. A seguir descreveremosem mais detalhes a arquitetura do Grid5000 e, posteriormente, daremos uma descricao domodelo do nosso simulador.

4.1 Grid5000

A arquitetura do Grid5000 implementa os princıpios descritos em [CDD+05]. Baseado nasnecessidades de pesquisadores quanto a escalabilidade e diversidade de tipos de pesquisas,decidiu-se construir uma plataforma de 50001 processadores distribuıdos em 9 sites na Franca.A figura 4.1 mostra como os sites estao distribuıdos geograficamente. Cada ponto na figurarepresenta um aglomerado e todos os aglomerados estao interconectados por uma rede dedicadade alta velocidade.

Para medir os valores de largura de banda entre os aglomerados, os autores, a partir do algo-ritmo de medida dos parametros pLogP de Kielmann [KBV00], desenvolveram uma aplicacaoque realiza comunicacoes entre varios nos com o intuito de identificar a capacidade maximada rede. Nesta aplicacao, cada par de processos executa o algoritmo LogP-MPI [KBV00]. O

1numero de processadores previsto para 2007

35

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 36

Figura 4.1: Distribuicao geografica do GRID5000

numero de pares e aumentado progressivamente de modo que a relacao de comunicacao sejasobrecarregada. A igualdade da divisao da largura de banda entre as diferentes conexoes eassegurada pela propriedade fairness do protocolo de transporte TCP. Com o aumento donumero de pares comunicantes, a largura de banda e compartilhada entre as conexoes.

Com o auxılio de uma aplicacao de benchmark, Barchet-Estefanel [BE05] mediu a largurade banda atingida por cada par de aglomerado a partir do parametro g do modelo pLogP, quecorresponde ao tempo necessario para emitir uma mensagem atraves da ligacao. O intervalo(gap) corresponde ao oposto do fluxo L. Com o sobrecarga da rede, o fluxo maximo alcancadopor cada par e limitado e, consequentemente, o intervalo reflete esta divisao do fluxo. O nossointeresse no estudo do modelo pLogP e o de encontrar valores realistas para os parametros βe γ do nosso modelo de custo linear.

Para ilustrar os procedimentos descritos acima, foi medido o intervalo de uma mensagemde 32MB entre os aglomerados d’Orsay (GdX) e Toulouse [BE05]. A figura 4.2 2 mostra ointervalo medio de acordo com o numero de pares conectados. E facil observar que a partir deum determinado numero de conexoes o valor do gap (o gap e o tempo necessario para enviaruma mensagem) e incrementado linearmente.

Como o gap corresponde ao inverso do fluxo, e facil obter o fluxo medio de cada conexaocom os valores observados na figura 4.2. Assim, a figura 4.3 ilustra que a largura de bandamaxima obtida por cada conexao esta influenciada diretamente pelo numero de conexoessimultaneas entre os dois aglomerados.

Os valores acima mostram que a divisao da largura de banda da rede depende do numerode conexoes simultaneas. Porem, estes resultados ainda nao sao suficientes para afirmar quea conexao entre os dois aglomerados alcancou o limite. Para isso, e necessario analisar as

2figuras retiradas de [BE05]. Por este motivo os textos dos graficos se encontram em frances

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 37

Figura 4.2: Gap entre GdX e Toulouse - 12/11/2005

Figura 4.3: Fluxo medio entre GdX e Toulouse - 12/11/2005

conexoes em conjunto para encontrar o fluxo agregado. Com ajuda do parametro g e donumero dos processos, o fluxo agregado pode ser calculado com a seguinte formula [BE05]:

γagreg = mg(m)∗ P

2

Portanto, a largura de banda agregada entre os grupos GdX e Toulouse e representada nafigura 4.4 e alcanca no maximo 120MB/s com 24 conexoes simultaneas. A partir deste ponto,

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 38

o aumento no numero de conexoes simultaneas nao resulta no aumento no fluxo agregado.Ou seja, a largura de banda de cada conexao entre os aglomerados GdX e Toulouse diminuiquando o numero de conexoes simultaneas ultrapassa um certo limite.

Figura 4.4: Fluxo agregado entre GdX e Toulouse - 12/11/2005

Os dados mostram que a largura de banda alcancada por somente uma conexao nao excedeos 10 MB/s. Diversos fatores podem ter influenciado este valor como custo do tamanho dajanela TCP ou custo extra da camada MPI.

Como a distancia geografica entre os aglomerados do Grid5000 e grande, a latencia dacomunicacao entre processadores de aglomerados distantes e bem maior que a latencia dascomunicacoes locais. Os valores das latencias entre os aglomerados pode ser observado natabela 4.1.

nancy orsay rennes toulouse sophia bordeaux lyon lillenancy – 5, 740 11, 628 19, 546 17, 177 12, 534 11, 087 9, 228orsay 5, 673 – 8, 985 19, 953 27, 002 8, 357 8, 013 4, 541rennes 11, 626 8, 981 – 20, 843 19, 173 8, 046 16, 383 11, 256

toulouse 18, 619 11, 578 20, 644 – 15, 289 3, 906 8, 404 18, 219sophia 19, 734 26, 993 19, 167 29, 152 – 10, 400 18, 461 16, 822

bordeaux 12, 606 8, 337 8, 029 3, 785 10, 349 – 10, 139 10, 798lyon 10, 722 8, 077 16, 389 8, 321 18, 453 10, 323 – 11, 963lille 2, 000 0, 000 11, 000 12, 000 11, 000 10, 000 10, 000 –

Tabela 4.1: Latencia media (ms) entre os aglomerados do Grid5000 - 06/06/2006

Ja os valores de latencia das comunicacoes locais observada em [BE05] tem duracao emtorno de 40µs e 60µs.

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 39

4.2 Descricao do Modelo

Nesta secao descreveremos em detalhes o modelo teorico adotado neste trabalho para si-mular o desempenho dos varios algoritmos estudados. O ambiente de simulacao e baseado nosestudos do ambiente do Grid5000 descrito na secao anterior. Portanto, queremos estudar ocomportamento dos algoritmos de troca completa de mensagens em ambientes do tipo multi-aglomerados de dois nıveis. Ou seja, o ambiente e composto por varios aglomerados. Cadaaglomerado e composto por processadores interligados por uma rede local. Todos os aglo-merados tambem estao totalmente interligados por uma rede de alta capacidade chamada debackbone. Entao, comunicacoes realizadas entre processadores de um mesmo aglomerado uti-lizam a rede local e alcancam melhores desempenhos em relacao a comunicacao que atravessao backbone e liga processadores de aglomerados distintos.

O modelo de transmissao utilizado para calcular a duracao de transmissao de uma men-sagem e o modelo de custo linear. A comunicacao de uma mensagem do processador i parao processador j de tamanho wi,j custa tempo βi,j + wi,jγi,j, onde βi,j e a latencia e 1

γi,je a

largura de banda entre os processadores entre os processadores i e j.

No nosso modelo, existem dois tipos de largura de banda: 1γl

e 1γd

. Quando a comunicacao efeita entre processadores pertencentes ao mesmo aglomerado, a largura de banda utilizada nocalculo do tempo de comunicacao e 1

γl. Caso contrario, a largura de banda utilizada e 1

γd. Ou

seja, consideramos que a velocidade de comunicacao dos backbones e a mesma para qualquerpar de aglomerado. A razao pela qual escolhemos larguras de bandas homogeneas entre osaglomerados e para tornar mais simples a analise dos resultados obtidos nas simulacoes.

Ja os valores de latencia variam de acordo com o par de aglomerado que esta comunicando.Isto se deve basicamente a distancia geografica destes aglomerados. Quanto mais distanteos aglomerados se encontram, maior sera o valor da latencia para iniciar uma comunicacaoentre processadores destes aglomerados. Portanto, nosso modelo utiliza os parametros βLi,Lj

,0 ≤ i, j ≤ CL− 1. Sendo βi,j = βl, dentro de um mesmo aglomerado, se i = j

Assim, o tempo de comunicacao de uma mensagem de tamanho wi,j do processador pi = plin1

(n1-esimo processador do aglomerado li) para o processador pj = pljn2

e βli,lj +wi,jγ, onde γ = γl

se li = lj e γ = γd, caso contrario.

A comunicacao entre os processadores e classificada como 1-port full-duplex. Ou seja, oslinks sao bidirecionais e cada processador consegue realizar no maximo uma comunicacao deenvio e uma de recepcao de mensagens ao mesmo tempo.

O backbone que une os aglomerados tambem e bidirecional. Porem, ele nao e capaz derealizar todas as comunicacoes ao mesmo tempo. Nosso modelo limita em k o numero demensagens que um backbone consegue manipular simultaneamente em uma direcao. Se osprocessadores tentam enviar mais do que k mensagens ao mesmo tempo atraves de um de-terminado backbone, a velocidade destas comunicacoes sera depreciada. O grafico 4.5 mostra

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 40

as funcoes utilizadas em nossas simulacoes para analisar o comportamento dos algoritmos.Ate o limite k do backbone, a velocidade de cada comunicacao se mantem com o mesmo va-lor. Quando o numero de conexoes ultrapassa o limite do backbone, a velocidade de todas ascomunicacoes e degradada de acordo com a funcao f ′

i(n), com

fi(n) =

{

γd, se n ≤ kf ′

i(n), se n > k,

onde f ′

1(n) = γdnk

, f ′

2(n) = 2γdnk

e f ′

3(n) = (n− k + 1)γd.

0

2

4

6

8

10

12

0 10 20 30 40 50 60 70 80 90

gap

(s)

núm. conexões

f1(n)f2(n)f3(n)

Figura 4.5: Valores de γ em funcao do numero de conexoes para k = 24.

A funcao f ′

1(n) corresponde a uma aproximacao do comportamento das comunicacoes entreos aglomerados GdX e Toulouse do GRID5000 [BE05] e apenas compartilha a largura debanda agregada maxima entre as n conexoes. Como γ e a inversa da largura de banda,entao, f ′

1(n) = 11

γd∗k

n

= 1k

γdn

= γdn

k. As funcoes f ′

2(n) e f ′

3(n) sao funcoes que simulam um

comportamento mais pessimista em relacao a sobrecarga de comunicacao atraves do backbone.f ′

1(n) considera que a largura de banda agregada cai pela metade quando o numero de conexoessimultaneas supera o limite do backbone. Finalmente, f ′

3(n) tem comportamento ainda maispessimista que f ′

2(n).

A figura 4.6 mostra os valores da largura de banda agregada de cada uma das funcoesf ′

i(n).

CAPITULO 4. O AMBIENTE ESTUDADO: GRID5000 41

0

20

40

60

80

100

120

140

0 10 20 30 40 50 60 70 80 90

larg

ura

de b

anda

agr

egad

a (M

B/s

)

núm. conexões

f1(n)f2(n)f3(n)

Figura 4.6: Valores de 1γ agreg

em funcao do numero de conexoes para k = 24.

A tabela 4.2 mostra alguns valores de γ em funcao do numero de conexoes simultaneas emum backbone com k = 24.

n.conexoes f1(n) f2(n) f3(n)1 0.1754 0.1754 0.175412 0.1754 0.1754 0.175424 0.1754 0.1754 0.175432 0.2339 0.4678 1.578948 0.3508 0.7018 4.386060 0.4385 0.8772 6.4912

Tabela 4.2: Valores de γ em funcao do numero de conexoes para k = 24

Com base no ambiente proposto neste capıtulo e nos estudos dos algoritmos de troca com-pleta estudados nos capıtulos anteriores, propomos, no capıtulo seguinte, um novo algoritmode troca completa para multi-aglomerados e implementamos um simulador desse ambientepara analisar o comportamento dos algoritmos estudados.

Capıtulo 5

Algoritmos Propostos

Nos capıtulos anteriores, estudamos varios algoritmos de troca de mensagens em tres con-textos diferentes: ambientes homogeneos, ambientes multi-aglomerado e em um ambientecomposto por dois aglomerados ligados por um backbone.

No capıtulo anterior, verificamos que o backbone que liga dois aglomerados possui uma li-mitacao fısica na capacidade de comunicacao. Quando o numero de mensagens em transmissaoatraves do link e menor do que um valor k, a velocidade de comunicacao de cada transmissaoindividual nao se altera. A partir do momento que sao realizadas mais do que k comunicacoesao mesmo tempo, a velocidade de comunicacao total e compartilhada dentre estas conexoes ecada mensagem individual passa a ser transmitida numa velocidade inferior.

Os algoritmos estudados no capıtulo 2 nao levam em conta a heterogeneidade da rede. Essesalgoritmos geram o escalonamento de troca completa de mensagens considerando que os linksde comunicacao entre quaisquer pares de processadores sao iguais. Quando executados em umambiente heterogeneo, eles costumam ter um desempenho inferior. No capıtulo 3, os algoritmosforam adaptados para comportar a heterogeneidade da rede. Porem, os algoritmos adaptadosnesse capıtulo podiam enviar atraves do backbone tantas mensagens quanto fossem necessariasao mesmo tempo. Eles nao levaram em conta que a transmissao de muitas mensagens aomesmo tempo atraves do backbone pode diminuir a velocidade individual de comunicacao decada mensagem.

Nos adaptamos o algoritmo de dois nıveis com base nos algoritmos estudados ate o mo-mento e nas informacoes relacionadas ao comportamento de backbones em geral. Este fatotambem foi verificado no backbone do GRID5000. O objetivo e incluir essas caracterısticas eassim obter melhores desempenhos em relacao aos algoritmos anteriores. Nas proximas secoesdescreveremos em detalhes estes novos algoritmos.

42

CAPITULO 5. ALGORITMOS PROPOSTOS 43

5.1 Algoritmo de dois Nıveis com k Representantes

Este primeiro algoritmo e uma adaptacao do algoritmo de dois nıveis mostrado no capıtulo 3.Considerando-se que o backbone que conecta cada par de aglomerado e melhor utilizado quandosao realizadas k comunicacoes ao mesmo tempo, nos sugerimos uma adaptacao do algoritmode dois nıveis distribuindo a tarefa de comunicacao da segunda fase para k representantes.Se considerarmos ainda a existencia de congestionamento no link e perdas de pacote quandorealizamos mais do que k comunicacoes, entao a capacidade do backbone nao estaria sendoaproveitada de forma eficiente, pois as n conexoes somadas (n > k) nao estariam utilizando alargura de banda agregada maxima do backbone. Seguindo esta ideia, agrupar as mensagensinter-aglomerados dentro de k representantes fara com que a capacidade de comunicacao dobackbone seja utilizada ao maximo sem perda de desempenho. Portanto, o novo algoritmo dedois nıveis com k representantes e o seguinte:

1 comunicac~ao local dentro de cada aglomerado

1.1 troca de mensagens locais

1.2 envio das mensagens distantes para os k representantes

2. troca de mensagens distantes entre k representantes de cada aglomerado

3. distribuic~ao das mensagens distantes dentro de cada aglomerado

Assim como na primeira fase do algoritmo de dois nıveis original, alem de comunicar asmensagens locais para seus destinos, e necessario encaminhar as mensagens distantes para osrepresentantes do aglomerado. Isso ocasiona uma comunicacao extra na primeira fase. Poremesta comunicacao extra e realizada mais rapidamente do que no algoritmo original, pois asmensagens sao distribuıdas entre os k representantes. Isto porque no algoritmo original todasas mensagens distantes eram enviadas para apenas um representante e este e capaz de receberapenas uma mensagem de cada vez.

O criterio utilizado na distribuicao das mensagens distantes entre os k representantes eo seguinte: Cada j-esimo processador nao-representante do aglomerado Li, pi

j (j = k, .., ni),distribui uma mensagem para cada representante. Ou seja, a primeira mensagem distantede pi

j e enviada para pi0. A segunda mensagem distante e enviada para pi

1. A (k + 1)-esimamensagem distante e enviada para o representante k. A mensagem seguinte e enviada para pi

0

novamente e isto e repetido ate que todas as mensagens distantes tenham seus representantes.

No entanto, esta comunicacao extra serve para minimizar o gasto com a latencia na se-gunda fase do algoritmo, quando sao realizadas as comunicacoes distantes. Como utilizamoso algoritmo de padrao fixo na segunda fase, o custo relacionado as inicializacoes de comu-nicacoes distantes e limitado por (CL−1)β, pois a segunda fase possui apenas CL−1 fases decomunicacao. Portanto, se a latencia das comunicacoes inter-aglomerados e muito grande emrelacao a inversa da largura de banda e ao tamanho das mensagens, a minimizacao do numerode inicializacoes de comunicacoes distantes melhora o tempo total para troca das mensagens.

CAPITULO 5. ALGORITMOS PROPOSTOS 44

Assim, o algoritmo de dois nıveis com k representantes difere do original na montagemda matriz de comunicacao, onde e necessario dividir as mensagens distantes entre k nos emvez de apenas 1. Na segunda fase, utilizamos o algoritmo de padrao fixo para realizar acomunicacao inter-aglomerado. Como o algoritmo de dois nıveis tem desempenhos melhoresquando a latencia e o fator que mais impacta no custo total da comunicacao, realizar umatroca do tamanho das mensagens para gerar um escalonamento na segunda fase seria custoso.

Finalmente, na fase final, os representantes realizam broadcasts das mensagens para osdestinos finais do aglomerado. Esta tarefa tambem e dividida entre os k processadores repre-sentantes.

A figura 5.1 mostra as fases do algoritmo de dois nıveis com k representantes, com k = 2,para uma rede composta por 3 aglomerados.

Figura 5.1: Fases do algoritmo de dois nıveis com k representantes.

5.2 Algoritmo de dois Nıveis com Redistribuicao

No capıtulo 3, mostramos o algoritmo GGP que realiza a redistribuicao de mensagens entredois aglomerados. O algoritmo GGP ja leva em consideracao as limitacoes fısicas do backbone egera fases de comunicacao com no maximo k mensagens. Como no problema de redistribuicao

CAPITULO 5. ALGORITMOS PROPOSTOS 45

so existem comunicacoes distantes, toda comunicacao realizada atravessa o backbone. Assim,as comunicacoes geradas pelo algoritmo GGP nao ultrapassam o limite fısico do backbone dek mensagens.

Esses estudos nos motivaram a criar um novo algoritmo de dois nıveis adaptado e o chama-remos de algoritmo de dois nıveis com redistribuicao. Diferentemente dos algoritmos de doisnıveis anteriores, que possuıam tres grandes fases (fase local, fase distante e fase de difusaolocal), este novo algoritmo tera apenas duas grandes fases: fase local e fase distante. A ideiaprincipal e utilizar o algoritmo de redistribuicao de mensagens na fase de comunicacao distante.Para cada par de aglomerados, teremos entao uma instancia do problema de redistribuicao e,portanto, utilizaremos o algoritmo GGP para encontrar os respectivos escalonamentos. Comono problema de redistribuicao cada processador envia diretamente suas mensagens da origempara o destino atraves do backbone, nao sao mais necessarios os representantes que utilizamosnos outros algoritmos de dois nıveis. Ou seja, na fase local, nao e mais necessario enviaras mensagens destinadas a processadores de outros aglomerados para algum representante,evitando a comunicacao extra que existia nos algoritmos anteriores.

Seja CL o numero de aglomerados no sistema. O algoritmo de dois nıveis com redistribuicaode mensagens e descrito a seguir:

1. Troca de mensagens locais em cada aglomerado

2. para i = 0 ate CL-1 faca

2.1 para c = 0 ate CL faca

2.2 realiza a redistribuic~ao de mensagens do aglomerado c

para o aglomerado c+i+1 utilizando o algoritmo GGP.

A figura 5.2 mostra as fases (local e distante) do algoritmo de 2 nıveis com redistribuicaopara uma rede composta de 3 aglomerados. Observe que nao e necessaria a realizacao daterceira fase com o broadcast das mensagens para seus destinos finais, pois o algoritmo GGPna segunda fase ja envia as mensagens diretamente para o destino final. O algoritmo dedois nıveis com redistribuicao reduz a quantidade de comunicacao na primeira fase e elimina anecessidade da fase de difusao. Porem o numero de inicializacoes de comunicacao e aumentadoconsideravelmente, pois o algoritmo GGP pode gerar mais do que ni−1 fases de comunicacao,onde ni e o numero de processadores do aglomerado Li. Isso se o algoritmo de construcao degrafo de peso regular nao gerar vertices novos.

Note que, como o modelo de comunicacao e assıncrono, ou seja, para iniciar a comunicacaodas mensagens de uma fase nao e necessario aguardar o termino de todas as comunicacoes dafase anterior, e possıvel que em alguns momentos o algoritmo envie mais do que k mensagensao mesmo tempo. Por exemplo, sejam dois aglomerados L1 e L2 compostos por 4 processa-dores cada um (pj

i , 0 ≤ i < 4 e j = 1, 2). O backbone que liga estes dois aglomerados temcapacidade de comunicar ate duas mensagens sem perda de desempenho (k = 2). Suponhaque o algoritmo gerou na fase 1 as comunicacoes (p1

0, p20) e (p1

1, p21) e na fase 2 as mensagens

CAPITULO 5. ALGORITMOS PROPOSTOS 46

Figura 5.2: Fases local e distante do algoritmo de 2 nıveis com redistribuicao.

(p12, p

22) e (p1

3, p23). Como os processadores sao 1-port e a comunicacao e assıncrona, os proces-

sadores p12 e p1

3 podem iniciar o envio de suas mensagens junto com as comunicacoes da fase1 ocasionando a passagem de 4 mensagens atraves do backbone. Para que isso nao ocorra,a implementacao deste algoritmo deve monitorar estas comunicacoes e permitir somente oenvio de k mensagens pelo backbone simultaneamente. Neste caso, um processador de cadaaglomerado e responsavel por monitorar todos os envios do aglomerado. Para iniciar uma co-municacao distante, o processador de envio aguarda o sinal do processador responsavel. Assimque termina a transmissao, o processador de envio manda uma mensagem para o processadorresponsavel avisando que a comunicacao foi finalizada. Assim, o responsavel pode liberar aproxima transmissao.

Na figura 5.3, mostramos o diagrama de Gantt para um escalonamento gerado pelo algo-ritmo de dois nıveis com redistribuicao. Neste exemplo, a rede e composta por 2 aglomeradosde 4 processadores cada. No diagrama, os retangulos pertencentes as quatro linhas superioresrepresentam os tempos de envio das mensagens de cada processador de um aglomerado. Osretangulos das linhas inferiores representam os envios do outro aglomerado. O backbone queune os dois aglomerados possui capacidade k = 2. Os retangulos com mesma forma e corpertencem a uma mesma fase de comunicacao. Observe que a fase de comunicacoes distantesinicia por volta de 0.1s, quando a latencia e a largura de banda entre aglomerados distantesfazem com que o tempo de envio das mensagens seja mais lento. Note tambem que, nas fasesdistantes, existem somente 2k comunicacoes realizadas simultaneamente, sendo k envios doaglomerado 1 para o aglomerado 2 e k envios do aglomerado 2 para o aglomerado 1. Nas fasesde comunicacoes locais, ou seja, as primeiras fases do diagrama, nao ha limite no numero detransmissoes pois nao existe restricao de comunicacoes nas redes locais.

No proximo capıtulo, apresentaremos uma analise dos resultados de simulacoes realizadasutilizando os escalonamentos gerados pelos varios algoritmos de troca de mensagens estudadosnos capıtulos 2, 3 e 5 utilizando o modelo proposto no capıtulo 4.

CAPITULO 5. ALGORITMOS PROPOSTOS 47

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6

Figura 5.3: Diagrama de Gantt do algoritmo de 2 nıveis com redistribuicao.

Capıtulo 6

Simulacao

Nos implementamos um simulador que estima o tempo de troca de mensagens seguindo omodelo descrito em 4.2. Os valores de latencia e largura de banda necessarios para o calculodo tempo de comunicacao seguindo o modelo de custo linear foram obtidos de experimentosfeitos no GRID5000 e se encontram na tabela 4.1.

Para cada simulacao, as mensagens sao geradas aleatoriamente com distribuicao gaussiana,com media (µ) e variancia (σ2) dos tamanhos das mensagens dadas como entrada da aplicacao.Em nossas simulacoes, a media e variancia possuem sempre o mesmo valor.

Analisamos os tres tipos de comportamento de γ em funcao do numero de conexoes si-multaneas entre dois aglomerados conforme descrito no capıtulo 4.2.

6.1 Estrutura do simulador

O simulador de troca de mensagens tem como entrada, alem dos parametros do modelode comunicacao como as latencias, as larguras de banda local e distante e o valor de k, a ma-triz contendo o padrao de comunicacao gerado pelos algoritmos de escalonamento estudados.Cada coluna f desta matriz COMMn fases,n representa a fase de comunicacao f . O elementoCOMM(i, f) possui o tamanho da mensagem e o processador de destino que o processador pi

deve enviar na fase f . Como cada processador pode enviar e receber no maximo uma mensa-gem de cada vez, o simulador cria um grafo de dependencia das mensagens a partir da matrizde entrada COMM. Cada mensagem do problema e um no neste grafo de dependencia e possuireferencias para as mensagens dependentes de transmissao e recebimento. Este grafo de de-pendencia nada mais e do que 2n listas duplamente ligadas, sendo n listas de dependencias deenvio de cada processador e n listas de dependencias de recebimento de mensagens para cadaprocessador. Com esta estrutura, o simulador consegue identificar quais mensagens podem serenviadas apos o termino de uma mensagem especıfica.

48

CAPITULO 6. SIMULACAO 49

Com esta estrutura gerada, o simulador inicia a troca das mensagens. Para isso sao uti-lizadas duas listas auxiliares: a lista de mensagens disponıveis e a lista de execucao. A listade mensagens disponıveis contem todas as mensagens nao transmitidas e que nao dependemde mensagens nao transmitidas. Ou seja, a lista de disponıveis contem todas as mensagensque podem iniciar a comunicacao num dado instante. A lista de execucao contem o statusdas mensagens que estao sendo transmitidas. As informacoes guardadas neste status sao otamanho restante da mensagem, o tempo de inıcio da comunicacao e a velocidade atual detransmissao. A cada termino de uma comunicacao, o simulador retira a mensagem da lista deexecucao e recalcula as velocidades de cada comunicacao com base nas comunicacoes distantesexistentes na lista de execucao. Alem disso, verifica na lista de dependencias se e possıvelenviar novas comunicacoes com o termino do envio desta mensagem. Em caso afirmativo, asnovas mensagens disponıveis sao inseridas no final da lista de disponıveis. O simulador entaoretira da lista de disponıveis as novas transmissoes e as insere na lista de execucao. Estes pas-sos sao repetidos ate que todas as mensagens sejam transmitidas devolvendo como resultadoo tempo total de troca de mensagem do escalonamento.

6.2 Pre-Processamento

Em nossos testes nao incluımos no tempo total da troca completa o custo adicional dopre-processamento para fornecer os tamanhos das mensagens. O custo para realizar estepre-processamente e geralmente muito pequeno comparado ao tempo total do algoritmo. Seconsiderarmos que os algoritmos utilizam o padrao fixo do ambiente homogeneo para fornecer oconhecimento global dos tamanhos das mensagens, o tempo do pre-processamento seria menorque (n− 1)βd + s(n− 1)2γd, onde s = sizeof(int). Para um MCN com 4 aglomerados de 32processadores cada, considerando que 1

γl= 60.0 MB/s, 1

γd= 5.7 MB/s, βl = 50.0 µs, e βd = 12

ms, o custo do pre-processamento seria menor que 1.52 s. O tempo real para completar estatroca deve ser bem menor que este valor. Este valor considera que todas as comunicacoes saodistantes e portanto com um custo mais elevado.

Podemos nos utilizar da informacao da estrutura de dois nıveis e realizar a troca nıvel pornıvel utilizando em cada etapa o proprio algoritmo de padrao fixo para ambientes homogeneos.Neste caso, a fase inicial teria custo (ni − 1)βl + s(ni − 1)(n − 1)γl, onde ni e o numero deprocessadores no cluster i. Na fase 2, o tempo para trocar os dados inter-aglomerados seria(CL − 1)βd + s(n − ni)ni(CL − 1)γd, pois existira CL − 1 fases de comunicacao onde cadaaglomerado enviaria o tamanho das mensagens que seus ni processadores precisam enviar paraos n − ni processadores restantes. A fase final teria a mesma duracao que a fase inicial, poiscada uma das ni − 1 fases de comunicacao enviaria mensagens de tamanho (n− 1)s. Se estealgoritmo fosse utilizado no exemplo anterior, o custo deste pre-processamento seria de 0.01 s.

Se comparado a execucao da troca das mensagens, estes valores sao bem pequenos e naointerferem na nossa analise de desempenho dos algoritmos. A seguir apresentaremos alguns

CAPITULO 6. SIMULACAO 50

resultados obtidos em nossas simulacoes.

6.3 Resultados

Vamos inicialmente mostrar a execucao do simulador para 128 processadores divididos em8 aglomerados contendo 16 nos cada. Os graficos das figuras 6.1 e 6.2 ilustram os resultadosencontrados para tamanhos das mensagens com media e variancia igual a 10 KB e 1000 KBrespectivamente. Nesta simulacao, consideramos que a largura de banda agregada e divididaentre as conexoes simultaneas quando estas sao superiores a k conexoes. Ou seja, a inversa dalargura de banda (γ) se comporta de acordo com a funcao f ′

1(n) = γdn

kquando n > k.

0

2

4

6

8

10

12

0 2 4 6 8 10 12

tem

po (

s)

k

fixedmaxmin

maxsumunif

maxmin adaptmaxsum adapt

unif adapthypercube

2-level 12-level k

2-level redis

Figura 6.1: Tempo para troca completa para mensagens com µ = σ2 = 10 KB.

Observando o desempenho dos algoritmos verificamos que para mensagens muito pequenas(figura 6.1), o algoritmo de dois nıveis com k representantes tem melhor desempenho quandok > 1. Para k > 4, o algoritmo de hipercubo e o algoritmo de dois nıveis com redistribuicaotambem apresentam um bom desempenho. E facil perceber que o algoritmo de dois nıveisnao depende do valor de k pois este algoritmo realiza apenas uma transmissao de cada vezem cada backbone. Na grafico 6.2, com tamanhos de mensagens maiores (media = 1000 KB),o algoritmo de hipercubo passa a ter desempenho inferior. Isso ocorre porque o algoritmo dehipercubo minimiza o numero de fases de comunicacao e aumenta a quantidade de mensagenstrocadas na rede. Com mensagens grandes, a latencia passa a nao ser o principal fator nocusto da comunicacao. Isso pode ser verificado na figura 6.3, onde mostramos os tempos datroca para k = 6.

Observe que, com o aumento do tamanho medio das mensagens, os tempos de execucao

CAPITULO 6. SIMULACAO 51

0

200

400

600

800

1000

1200

0 2 4 6 8 10 12

tem

po (

s)

k

fixedmaxmin

maxsumunif

maxmin adaptmaxsum adapt

unif adapthypercube

2-level 12-level k

2-level redis

Figura 6.2: Tempo para troca completa para mensagens com µ = σ2 = 1000 KB.

0

500

1000

1500

2000

2500

3000

0 1000 2000 3000 4000 5000 6000 7000 8000

tem

po (

s)

tamanho (KB)

fixedmaxmin

maxmin adaptmaxsum

maxsum adaptunif

unif adapthypercube

2-level 12-level k

2-level redis

Figura 6.3: Tempo para a troca completa para k = 6.

dos escalonamentos gerados pelos algoritmos de hipercubo e de dois nıveis crescem a uma taxamaior em relacao aos outros. Como nosso objetivo nao e apenas estudar o comportamento paramensagens muito pequenas, nao incluiremos esses algoritmos em nossas proximas analises.

Como visto em [Gol02], os algoritmos homogeneos apresentam um desempenho pior nosambiente multi-aglomerados se comparado as suas versoes adaptadas. Isso tambem pode serobservado no ambiente com backbones como mostrado na figura 6.4. Essa simulacao foi feitaconsiderando mensagens de tamanho medio igual a 400 KB.

CAPITULO 6. SIMULACAO 52

10

15

20

25

30

35

40

45

0 2 4 6 8 10 12

tem

po (

s)

k

maxminmaxsum

unifmaxmin adapt

maxsum adaptunif adapt

Figura 6.4: Comparacao entre os algoritmos homogeneos e adaptados.

A seguir, realizamos algumas simulacoes com 512 processadores divididos igualmente em 8aglomerados. Nos graficos a seguir, retiramos da analise os algoritmos homogeneos ja que estessempre apresentam desempenho inferior quando comparado ao algoritmo adaptado correspon-dente. Comparamos o desempenho dos algoritmos restantes variando a funcao de γ, f ′

i(n).Os graficos das figuras 6.5, 6.6 e 6.7 mostram o desempenho dos algoritmos para mensagensde tamanho medio igual a 1000 KB.

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f0maxsum adapt f0

unif adapt f02-level 12-level k

2-level redis

Figura 6.5: Desempenho com fγ0 (n) para µ = 1000KB em grade homogenea.

CAPITULO 6. SIMULACAO 53

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f1maxsum adapt f1

unif adapt f12-level 12-level k

2-level redis

Figura 6.6: Desempenho com fγ1 (n) para µ = 1000KB em grade homogenea.

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f2maxsum adapt f2

unif adapt f22-level 12-level k

2-level redis

Figura 6.7: Desempenho com fγ2 (n) para µ = 1000KB em grade homogenea.

Queremos destacar, observando estes tres graficos, o desempenho do algoritmo de doisnıveis com redistribuicao que e bem proximo dos algoritmos adaptados para fγ

0 (n), ou seja,quando mais do que k conexoes simultaneas entre dois aglomerados nao depreciam a largura debanda agregada do backbone. Ao considerarmos a perda de desempenho do backbone quando

CAPITULO 6. SIMULACAO 54

este realiza mais do que k conexoes (figuras 6.6 e 6.7), os algoritmos de dois nıveis (original, comk representantes e com redistribuicao) mantem o mesmo tempo de troca completa enquantoque os algoritmos adaptados apresentam perda de desempenho consideravel. Isto ocorre por-que os algoritmos adaptados nao limitam em k o numero de comunicacoes simultaneas entredois aglomerados. Na figura 6.8, observamos as trocas de mensagens do escalonamento geradopelo algoritmo uniforme adaptado entre dois aglomerados compostos por quatro processadoresligados por um backbone de capacidade k = 2 para fγ

0 (n) e fγ1 (n). Os tempos de comunicacao

da figura da direita sao, em geral, maiores que os tempos da figura da esquerda, pois, comfγ

1 (n), as trocas entre aglomerados tem desempenhos mais comprometidos devido ao excessode comunicacao no backbone.

0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5

Figura 6.8: Execucao do algoritmo uniforme para fγ0 (n) e fγ

1 (n).

Portanto, considerando cenarios em que a existencia de congestionamentos e perdas depacotes diminuem o desempenho do backbone, o algoritmo de dois nıveis com redistribuicaoapresentou melhores resultados que os demais para mensagens de tamanho medio igual a 1000KB.

Realizamos tambem simulacoes de troca completa de mensagens em grades heterogeneas,ou seja, onde os aglomerados tem numeros diferentes de processadores. Em nossas simulacoesem grades heterogeneas, consideramos 512 processadores divididos em 8 aglomerados de ta-manhos: 32, 40, 56, 64, 64, 64, 80 e 112 processadores. Apesar do tempo da troca completadas mensagens ser pior nas grades heterogeneas, podemos observar nas figuras 6.9, 6.10 e 6.11que o comportamento dos algoritmos sao semelhantes. Nessa grade heterogenea, o algoritmode dois nıveis com redistribuicao tambem teve um bom desempenho para fγ

0 (n) e foi melhorque os outros algoritmos estudados para fγ

1 (n) e fγ2 (n).

Finalmente, ao final deste capıtulo, disponibilizamos, nas figuras 6.12 a 6.14, mais algumassimulacoes realizadas com mensagens grandes, de tamanho medio igual a 10000 KB, variando afuncao de γ, f ′

i(n) para ambientes heterogeneos. Observe que, para mensagens muito grandes,o comportamento dos algoritmos nao se altera.

CAPITULO 6. SIMULACAO 55

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f0maxsum adapt f0

unif adapt f02-level 12-level k

2-level redis

Figura 6.9: Desempenho com fγ0 (n) para µ = 1000KB em grade heterogenea.

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f1maxsum adapt f1

unif adapt f12-level 12-level k

2-level redis

Figura 6.10: Desempenho com fγ1 (n) para µ = 1000KB em grade heterogenea.

CAPITULO 6. SIMULACAO 56

0

500

1000

1500

2000

2500

3000

3500

4000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f2maxsum adapt f2

unif adapt f22-level 12-level k

2-level redis

Figura 6.11: Desempenho com fγ2 (n) para µ = 1000KB em grade heterogenea.

0

5000

10000

15000

20000

25000

30000

35000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f0maxsum adapt f0

unif adapt f02-level 12-level k

2-level redis

Figura 6.12: Desempenho com fγ0 (n) para µ = 10000KB em grade heterogenea.

CAPITULO 6. SIMULACAO 57

0

5000

10000

15000

20000

25000

30000

35000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f1maxsum adapt f1

unif adapt f12-level 12-level k

2-level redis

Figura 6.13: Desempenho com fγ1 (n) para µ = 10000KB em grade heterogenea.

0

5000

10000

15000

20000

25000

30000

35000

0 5 10 15 20 25 30

tem

po (

s)

k

maxmin adapt f2maxsum adapt f2

unif adapt f22-level 12-level k

2-level redis

Figura 6.14: Desempenho com fγ2 (n) para µ = 10000KB em grade heterogenea.

Capıtulo 7

Conclusao

Neste trabalho, estudamos o comportamento dos algoritmos de troca completa de mensa-gens de diferentes tamanhos em um ambiente multi-aglomerado de dois nıveis onde os aglome-rados estao interligados por backbones. A escolha do melhor algoritmo depende dos parametrosde comunicacao β e γ locais e distantes.

Em [GPT05], verificou-se o comportamento dos algoritmos em ambientes homogeneos.Quando a latencia e predominante sobre a largura da banda, o algoritmo de hipercubos apre-sentou melhor desempenho por minimizar o numero de fases de comunicacao. O algoritmouniforme, por sua vez, e mais eficiente quando a largura de banda e predominante. Quandonenhum dos dois parametros sao predominantes no modelo, o algoritmo Padrao Fixo e a me-lhor escolha quando a variancia dos tamanhos das mensagens e pequena. Nos casos restantes,o tempo total dos algoritmos Max-Min e Max-Weight sao geralmente melhores que os demaisalgoritmos estudados.

Dentro de cada aglomerado, as comunicacoes internas se comportam do mesmo modo quenos ambientes homogeneos. Portanto, os algoritmos do capıtulo 2 sao suficientes quando oescalonamento a ser gerado so possui mensagens locais. Quando existem mensagens locais edistantes, estes algoritmos nao sao as melhores escolhas, pois apresentam queda no desempe-nho, assim como ocorre em ambientes onde existe restricao de comunicacao distante. Paraestes ambientes propomos dois novos algoritmos que consideram a restricao de k conexoessimultaneas dos backbones.

Os algoritmos propostos foram analisados variando os valores dos tamanhos das mensa-gens, do numero total de processadores e grades e do limite k do backbone. Utilizamos osvalores dos parametros de latencia e largura de banda locais e distantes do GRID5000 e estesse mantiveram fixos em todas as simulacoes. Nosso objetivo foi estudar o comportamento dosalgoritmos neste ambiente. Como trabalho futuro, e interessante que os algoritmos deem su-porte a uma adaptabilidade sobre os valores de k, β e γ a cada fase de comunicacao escolhendoum algoritmo mais eficiente dependendo da configuracao destes parametros.

58

CAPITULO 7. CONCLUSAO 59

Para mensagens muito pequenas (µ = σ2 = 10 KB), as simulacoes realizadas no capıtuloanterior mostraram que o algoritmo de dois nıveis com k representantes obteve desempenhosuperior que os demais algoritmos estudados. Verificamos que o algoritmo proposto de doisnıveis com redistribuicao gera escalonamentos com desempenho superior aos demais algoritmosexistentes. Isso ocorre porque este novo algoritmo leva em consideracao o limite de k conexoessimultaneas sem perda de desempenho na velocidade de comunicacao em um backbone. Seconsiderarmos a existencia de congestionamento e perda de pacote no backbone, a diferencade tempo entre o algoritmo de dois nıveis com redistribuicao e os demais aumenta ainda mais,pois os demais algoritmos nao garantem que o limite do backbone nao e ultrapassado.

7.1 Principais Contribuicoes

Dentre as pricipais contribuicoes deste trabalho de mestrado destacamos:

1. Analise de diversos algoritmos de troca completa de mensagens de diferentes tamanhosem grades;

2. Criacao de dois novos algoritmos que consideram caracterısticas comuns de grades for-madas por aglomerado de aglomerados ligados por backbones ; e

3. Criacao de um simulador parametrizavel para testes de desempenho de algoritmos detroca completa de mensagens.

7.2 Trabalhos Futuros

Futuramente, pretendemos implementar e testar estes algoritmos em um ambiente real.E possıvel melhorar o novo algoritmo em alguns pontos como: utilizar outros algoritmos deescalonamento para realizar as redistribuicoes na segunda fase, aproveitar o tempo em queos processadores estao aguardando para enviar mensagens atraves do backbone para realizaralguma comunicacao local. Dar mais dinamismo aos algoritmos estudados dando suporte avariacao dos valores do limite do backbone, latencia e largura de banda. Seria interessante,tambem, generalizar o modelo de multi-aglomerados para considerar mais do que apenas doistipos de banda de comunicacao.

Apendice A

Sistemas de Computacao Paralela e

Distribuıda

Um sistema de computacao paralela e distribuıda [CMS01] consiste de uma colecaode elementos de computacao (processadores), geralmente do mesmo tipo, interconectados deacordo com uma determinada topologia para permitir a coordenacao de suas atividades etroca de dados. Esses processadores trabalham simultaneamente, de forma coordenada, com oobjetivo de resolver um problema especıfico. Esses sistemas surgiram em funcao da necessidadede solucionar problemas onde a computacao sequencial nao consegue obter uma solucao dentrode tempos razoaveis.

Os sistemas de computacao paralela podem ser classificados de acordo com diversos aspec-tos. A classificacao original dos sistemas de computacao paralela e popularmente conhecidacomo taxonomia de Flynn. Uma discussao mais completa da taxonomia de Flynn pode serencontrada em [Pac96].

Existem muitas outras formas de classificar sistemas de computacao paralela, entre elas,destacamos as seguintes: dispersao dos processadores, estrutura de interconexao esincronismo.

Do ponto de vista de dispersao, os sistemas sao classificados como sistemas com dispersaogeografica, constituindo as redes de computadores e os sistemas distribuıdos, e comosistemas confinados, constituindo as maquinas paralelas.

Uma rede de computadores e definida como um conjunto de computadores autonomos in-terligados por um subsistema de comunicacao, envolvendo canais de comunicacao. Um sistemadistribuıdo e um sistema composto por um hardware baseado em multiplos processadores in-dependentes, interligados atraves de uma rede de interconexao, e por um software integrado,explorando o compartilhamento implıcito de recursos. Uma maquina paralela e simplesmenteuma colecao de processadores, geralmente do mesmo tipo, interconectados de maneira a per-

60

APENDICE A. SISTEMAS DE COMPUTACAO PARALELA E DISTRIBUIDA 61

mitir a coordenacao de suas atividades e troca eficiente de dados.

Segundo a estrutura de interconexao, os sistemas de computacao paralelos sao classifi-cados de acordo com a topologia da rede de interconexao utilizada. Uma rede de interconexaoe um conjunto de canais de comunicacao que ligam os processadores uns aos outros. Cadatopologia possui caracterısticas proprias de ligacao entre processadores. Alguns exemplos detopologias sao o anel, a grade bidimensional e o hipercubo.

r r

r

r

rr

r

r

@@@

���

���

@@@

Figura A.1: Anel

r r r r

r r r r

r r r r

r r r r

Figura A.2: Grade bidimensio-nal

r

r

r

r

r

r

r

r

@@

@

��

��

��

@@

@

@@

@

��

��

��

@@

@

Figura A.3: Hipercubo

Uma topologia bastante difundida e a estrela. Nela todos os processadores estao conecta-dos a um no central (switch). Esta topologia pode ser aproximada por um grafo completo,pois quando um no deseja transmitir, o switch estabelece uma conexao virtual entre os doisprocessadores.

De acordo com o sincronismo, podem ser sıncronos, aqueles onde todos os processadoresativos operam, de forma sıncrona, sob o controle de um unico relogio global comum, comparti-lhado pelos processadores; ou assıncronos, aqueles em que ha uma ausencia completa de umabase de tempo comum a todos os processadores que compoem o sistema, e cada processadoropera sob um relogio separado.

O principal objetivo do projeto de um algoritmo paralelo e o de obter um desempenhosuperior com relacao a versao sequencial. Analisar um algoritmo paralelo e bem mais com-plexo que o modelo sequencial, pois um sistema de computacao paralela depende de diversosparametros tais como numero de processadores, capacidade de memorias locais, esquemas decomunicacao e protocolos de sincronizacao. Um modo geral, comumente utilizado para avaliara execucao de um algoritmo paralelo e a aceleracao (speedup).

Seja P um problema computacional e n o tamanho do problema. Denotemos a comple-xidade sequencial de P por T ∗(n), ou seja, existe um algoritmo sequencial que resolve P emtempo T ∗(n), e ainda mais, podemos provar que nao existe nenhum algoritmo sequencial queresolva P de forma mais rapida. Seja A, um algoritmo paralelo que resolve P em tempo Tp(n)em um computador paralelo com p processadores. Definimos a aceleracao alcancada por Acomo Sp(n) = T ∗(n)

Tp(n). O valor Sp(n) mede a aceleracao obtida pelo algoritmo A quando p pro-

cessadores estao disponıveis. A melhor aceleracao possıvel de ser alcancada por A e Sp(n) ≤ p.O objetivo e projetar algoritmos paralelos que alcancem aceleracoes proximas a p.

APENDICE A. SISTEMAS DE COMPUTACAO PARALELA E DISTRIBUIDA 62

Com isso em mente, existem diversos fatores que devem ser considerados na projecao dosnossos algoritmos paralelos com o intuito de se obter o melhor desempenho possıvel dentrodas restricoes do problema a ser solucionado. Esses fatores sao: balanceamento de carga,minimizacao da comunicacao e sobreposicao de comunicacao e computacao.

Balanceamento de carga e a tarefa de dividir equitativamente o trabalho entre os proces-sadores disponıveis de forma a tornar possıvel que uma maior quantidade de trabalho possaser realizada na mesma quantidade de tempo. Em um balanceamento perfeito, o trabalho edividido entre os processadores e estes completam as tarefas ao mesmo tempo.

O tempo de execucao total do algoritmo e a principal preocupacao paralela pelo fato deser um componente essencial na comparacao e melhoramento dos programas. O tempo deexecucao de um programa depende de tres componentes: tempo de computacao, tempo ociosoe tempo de comunicacao.

O tempo de computacao e o tempo gasto na execucao das computacoes sobre os dados doproblema. O ideal e que se tivermos p processadores trabalhando na execucao do problema, aexecucao do algoritmo sera finalizada em 1/p-esimas unidades de tempo do algoritmo sequen-cial. Nesse caso, todo o tempo dos processadores seria gasto na computacao.

Denominamos tempo ocioso o tempo que um processador gasta aguardando dados de outrosprocessadores. Durante esse tempo, os processadores nao fazem nenhum trabalho util.

Finalmente, o tempo de comunicacao e o tempo utilizado pelos processos para enviare receber mensagens. O custo do tempo de comunicacao pode ser medido em termos delatencia e da largura da banda. A latencia e o tempo utilizado na preparacao do pacote paracomunicacao, e a largura de banda e a velocidade real de transmissao, ou bits por unidade detempo.

Existem diversas formas de se minimizar o tempo ocioso dentro dos processos e uma delase a sobreposicao de comunicacao e computacao, que consiste na atribuicao de uma ou maisnovas tarefas para manter ocupado um processo enquanto esse processo aguarda a finalizacaode uma determinada comunicacao.

Apendice B

Glossario

Sımbolo Definicaoβ Latenciaγ Inversa da largura de banda

dG(V,E,w, δ) Digrafo de Troca de Mensagensn Numero de processadores do sistema

V = (p0, p1, ..., pn) Conjunto de processadores do sistemae = (pi, pj) Mensagem do processador pi para pj

E Conjunto de mensagens e = (pi, pj)w(e) Funcao de peso: tamanho da mensagem eδ(v) Capacidade de transmissao/recepcao do processador v

bG(V ′, E ′) Grafo bipartido obtido de dG(V,E)k Limite de comunicacoes simultaneas atraves do backbone

MCN Rede Multi-Aglomerado (Multi-Cluster Network)CL Numero de aglomerados no MCN

Lj = (pj0, ..., p

jni

) j-esimo aglomerado do MCNni Numero de processadores no aglomerado Li

pij j-esimo processador do aglomerado Li. Corresponde a pk =

∑i−1l=0 nl + j

Mi Emparelhamento da fase i.

63

Apendice C

MagPIe: Algoritmo Alltoallv

/*

* (c) copyright 1998, 1999 by Vrije Universiteit, Amsterdam, The Netherlands.

* For full copyright and restrictions on use see the file COPYRIGHT.

*/

#include "stdlib.h"

#include "mpi.h"

#include "topo.h"

#include "tags.h"

#include "algorithms.h"

int alltoallv_flat(void* sendbuf, int *sendcounts, int *sdispls,

MPI_Datatype sendtype,

void* recvbuf, int *recvcounts, int *rdispls,

MPI_Datatype recvtype,

MPI_Comm comm,MAGPIE_group *group)

{

int i, peer, rank, size, retval = MPI_SUCCESS;

MPI_Aint send_extent, recv_extent;

MPI_Status *st_array;

MPI_Request *req_array;

rank = MAGPIE_group_rank(group);

size = MAGPIE_group_size(group);

MPI_Type_extent(recvtype,&recv_extent);

MPI_Type_extent(sendtype,&send_extent);

64

APENDICE C. MAGPIE: ALGORITMO ALLTOALLV 65

/* we do all sends and receives asynchronously

so we need 2*size status and request objects

*/

st_array = (MPI_Status*) malloc(2*size*sizeof(MPI_Status));

req_array = (MPI_Request*) malloc(2*size*sizeof(MPI_Request));

if ( (st_array==0) || (req_array==0) )

return MPI_ERR_INTERN;

/* first, post all recvs */

for (i=0; i<size; i++){

retval = MPI_Irecv((void*)((char*)recvbuf+rdispls[i]*recv_extent),

recvcounts[i],recvtype,

MAGPIE_group_comm(group,i),

MAGPIE_ALLTOALL_TAG,comm,&req_array[i]);

if ( retval ) return retval;

}

/* now, do all sends */

/* each process starts with its own rank+1, distributing load */

for (i=0; i<size; i++){

peer = (rank + 1 + i) % size;

retval = MPI_Isend((void*)((char*)sendbuf+

sdispls[peer]*send_extent),

sendcounts[peer],sendtype,

MAGPIE_group_comm(group,peer),

MAGPIE_ALLTOALL_TAG,comm,&req_array[size+peer]);

if ( retval ) return retval;

}

/* and wait for everything to complete */

retval = MPI_Waitall(2*size,req_array,st_array);

/* clean up */

free(req_array);

free(st_array);

return retval;

}

int MAGPIE_Alltoallv(void* sendbuf, int *sendcounts, int *sdispls,

MPI_Datatype sendtype,

APENDICE C. MAGPIE: ALGORITMO ALLTOALLV 66

void* recvbuf, int *recvcounts, int *rdispls,

MPI_Datatype recvtype,

MPI_Comm comm)

{

int retval = MPI_SUCCESS;

MAGPIE_topology topo;

MAGPIE_group *g_all;

MAGPIE_get_topology(comm, &topo);

MAGPIE_set_root(topo, MPI_PROC_NULL);

g_all = &(topo->group_all);

retval =

alltoallv_flat(sendbuf,sendcounts,sdispls,sendtype,

recvbuf,recvcounts,rdispls,recvtype,

topo->hidden,g_all);

return retval;

}

Referencias Bibliograficas

[alb06] Project Albatross: Wide Area Cluster Computing,http://www.cs.vu.nl/albatross/, 2006.

[BCW81] Giancarlo Bongiovanni, Don Coppersmith, and Chung Kei Wong. An OptimumTime Slot Assignment Algorithm for an SS/TDMA System with Variable Numberof Transponders. IEEE Transactions on Communications, 29:721–726, 1981.

[BE05] Luiz Angelo Barchet-Estefanel. LaPIe: Communications Collectives adaptees auxGrilles de Calcul. PhD thesis, Institut National Polytechnique de Grenoble, 2005.

[BGP+94] Michael Barnett, Satya Gupta, David Payne, Lance Shuler, Robert van de Geijn,and Jerrell Watts. Interprocessor Collective Communications Library (Intercom).In Proceedings of the Scalable High Performance Computing Conference, pages357–364. IEEE Computer Society Press, 1994.

[BMP04] Maurizio A. Bonuccelli, Francesca Martelli, and Susanna Pelagatti. Optimal packetscheduling in tree-structured leo satellite clusters. Mobile Networks and Applicati-ons, 9(4):289–295, 2004.

[Bok91] Shahid H. Bokhari. Multiphase complete exchange on a circuit switched hyper-cube. In Proceedings of the 1991 International Conference on Parallel Processing,volume I, pages 525–529, 1991.

[BPR99] Prashanth B. Bhat, Viktor K. Prasanna, and C. S. Raghavendra. Adaptive com-munication algorithms for distributed heterogeneous systems. Journal of Paralleland Distributed Computing, 59(2):252–279, 1999.

[BRP99] Prashanth B. Bhat, C. S. Raghavendra, and Viktor K. Prasanna. Efficient collec-tive communication in distributed heterogeneous systems. In International Con-ference on Distributed Computing Systems, pages 15–24, 1999.

[CDD+05] Franck Cappello, Frederic Desprez, Michel Dayde, Emmanuel Jeannot, Yvon Je-gou, Stephane Lanteri, Nouredine Melab, Pascale Namyst, Raymond Primet, Oli-vier Richard, Eddy Caron, Julien Leduc, and Guillaume Mornet. Grid’5000: a

67

REFERENCIAS BIBLIOGRAFICAS 68

large scale, reconfigurable, controlable and monitorable Grid platform. In 6thIEEE/ACM International Workshop on Grid Computing (GRID 2005), Seattle,WA, USA, November 2005.

[CH88] Hyeong-Ah Choi and S. Louis Hakimi. Data transfer in networks. Algorithmica,3:223–245, 1988.

[CKP+93] David Culler, Richard Karp, David Patterson, Abhijit Sahay, Klaus Erik Schauser,Eunice Santos, Ramesh Subramonian, and Thorsten von Eicken. Logp: towards arealistic model of parallel computation. In PPOPP ’93: Proceedings of the fourthACM SIGPLAN Symposium on Principles and Practice of Parallel Programming,pages 1–12, New York, NY, USA, 1993. ACM Press.

[CMS01] Edson N. Caceres, Henrique Mongelli, and Siang W. Song. Algoritmos paralelosusando CGM/PVM/MPI: Uma introducao. XXI Congresso da Sociedade Brasi-leira de Computacao, Jornada de Atualizacao de Informatica, pages 2–24, 2001.

[DJ00] Christina Christara Xiaoliang Ding and Ken Jackson. An efficient transpositionalgorithm for distributed memory computers. In High Performance ComputingSystems and Applications, pages 349–368, 2000.

[FP97] Pierre Fraigniaud and Joseph G. Peters. Structured communication in cut-throughrouted torus networks. Technical Report TR 97-05, School of Computing Science,Simon Fraser Univ, 1997.

[FY05a] Ahmad Faraj and Xin Yuan. An empirical approach for efficient all-to-all perso-nalized communication on ethernet switched clusters. In Proceedings of the 2005International Conference on Parallel Processing (ICPP’05), volume 00, pages 321–328, Los Alamitos, CA, USA, 2005. IEEE Computer Society.

[FY05b] Ahmad Faraj and Xin Yuan. Message scheduling for all-to-all personalized com-munication on ethernet switched clusters. In Proceedings of the 19th IEEE In-ternational Parallel and Distributed Processing Symposium (IPDPS’05) - Papers,volume 01, page 85a, Los Alamitos, CA, USA, 2005. IEEE Computer Society.

[Gol02] Alfredo Goldman. Scalable Algorithms for Complete Exchange on Multi-ClusterNetworks. In: Proceedings of the second IEEE/ACM International Symposium onCluster Computing and the Grid, Berlin, pages 286–287, 2002.

[GPT05] Alfredo Goldman, Joseph G. Peters, and Denis Trystram. Exchange of messagesof different sizes. Journal of Parallel and Distributed Computing, Elsevier Science,66(1):1–18, 2005.

[GRI06] Project GRID5000, http://www.grid5000.fr, 2006.

REFERENCIAS BIBLIOGRAFICAS 69

[JW04] Emmanuel Jeannot and Frederic Wagner. Two Fast and Efficient Message Sche-duling Algorithms for Data Redistribution Through a Backbone. In Proceedings ofthe 18th International Parallel and Distributed Processing Symposium (IPDPS’04),volume 01, page 3b, Santa Fe, NM, April 2004. IEEE Computer Society Press.

[JW05] Emmanuel Jeannot and Frederic Wagner. Messages Scheduling for Data Redis-tribution between Heterogeneous Clusters. In Proceedings of the 17th IASTEDInternational Conference on Parallel and Distributed Computing and Systems, pa-ges 119–124, Phoenix, AZ, USA, November 2005. Best paper award.

[KBG+01] Thilo Kielmann, Henri E. Bal, Sergei Gorlatch, Kees Verstoep, and Rutger F.H.Hofman. Network performance-aware collective communication for clustered wide-area systems. Parallel Computing, 27(11):1431–1456, 2001.

[KBV00] Thilo Kielmann, Henri E. Bal, and Kees Verstoep. Fast measurement of logpparameters for message passing platforms. Lecture Notes in Computer Science,1800:1176–1183, 2000.

[KHB+99] Thilo Kielmann, Rutger F. H. Hofman, Henri E. Bal, Aske Plaat, and Raoul A. F.Bhoedjang. MagPIe: MPI’s collective communication operations for clusteredwide area systems. Proc Seventh ACM SIGPLAN Symposium on Principles andPractice of Prallel Programming (PPoPP’99), Atlanta, GA, 34(8):131–140, 1999.

[Kno75] Walter Knodel. New gossips and telephones. Discrete Mathematics, page 13:95,1975.

[Law94] Eugene L. Lawler. Combinatorial Optimization: networks and architectures. 1994.

[MV80] Silvio Micali and Vijay V. Vazirani. An O (√

ve) algorithm for finding a maximummatching in general graphs. In Proceedings of the 21st Annual IEEE Symposiumon Foundations of Computer Science, pages 17–27, 1980.

[Pac96] Peter S. Pacheco. Parallel programming with MPI. Morgan Kaufmann PublishersInc., San Francisco, CA, USA, 1996.

[PS98] Joseph G. Peters and Curtis C. Spencer. Global communication on circuit-switchedtoroidal meshes. Parallel Processing Letters, 8(2):161–175, 1998.

[SOW+95] Marc Snir, Steve W. Otto, David W. Walker, Jack Dongarra, and Steven Huss-Lederman. MPI: The Complete Reference. MIT Press, Cambridge, MA, USA,1995.

[SS01] Young-Joo Suh and Kang G. Shin. All-to-all personalized communication in multi-dimensional torus and mesh networks. IEEE Transactions on Parallel DistributedSystems, 12(1):38–59, 2001.

REFERENCIAS BIBLIOGRAFICAS 70

[SY00] Young-Joo Suh and Sudhakar Yalamanchili. Configurable algorithms for completeexchange in 2d meshes. IEEE Transactions on Parallel and Distributed Systems,11(4):337–356, 2000.

[TC94] Rajeev Thakur and Alok N. Choudhary. All-to-all communication on meshes withwormhole routing. In Proceedings of the 8th International Symposium on ParallelProcessing, pages 561–565, Washington, DC, USA, 1994. IEEE Computer SocietyPress.

[TLGP97] Yu-Chee Tseng, Ting-Hsien Lin, Sandeep K. S. Gupta, and Dhabaleswar K.Panda. Bandwidth-optimal complete exchange on wormhole-routed 2D/3D to-rus networks: A diagonal-propagation approach. IEEE Transactions on Paralleland Distributed Systems, 8(4):380–396, 1997.

[Val90] Leslie G. Valiant. A bridging model for parallel computation. Communications ofthe ACM, 33(8):103–111, 1990.

[VFD01] Sathish S. Vadhiyar, Graham E. Fagg, and Jack J. Dongarra. Performance mode-ling for self adapting collective communications for MPI. In Los Alamos ComputerScience Institute Symposium (LACSI 2001), October 15–18, Eldorado Hotel, SantaFe, NM, 2001.

[WJ04] Frederic Wagner and Emmanuel Jeannot. Message Scheduling for Data Redistri-bution Through High Performance Networks. Rapport de recherche, INRIA, April2004.

[YW02] Yuanyuan Yang and Jianchao Wang. Near-optimal all-to-all broadcast in multidi-mensional all-port meshes and tori. IEEE Transactions on Parallel and DistributedSystems, 13(2):128–141, 2002.