BÖLÜM 1: ʺÖTEKİʺ ÜZERİNE KAVRAMSAL BİR ÇERÇEVE
1.7. Teoloji ve ʺÖtekiʺ:
Neste cap´ıtulo vimos alguns algoritmos estudados em [GPT05] para o problema de troca
completa de mensagens de diferentes tamanhos para ambientes homogˆeneos, ou seja, am- bientes em que a latˆencia e a largura de banda ´e igual para qualquer par de processador. Analisamos o comportamento deles de acordo com os valores de β, γ e da distribui¸c˜ao das mensagens para encontrar um algoritmo mais eficiente. Estes algoritmos podem ser utilizados normalmente em ambientes heterogˆeneos. No entanto, devido `as diferen¸cas do comportamento das comunica¸c˜oes, o desempenho destes algoritmos n˜ao ser´a o mesmo. No cap´ıtulo seguinte, analisaremos adapta¸c˜oes feitas nestes algoritmos para considerar a heterogeneidade da rede.
Cap´ıtulo 3
Algoritmos para Ambientes
Heterogˆeneos
Neste cap´ıtulo introduziremos outro parˆametro no modelo. A id´eia principal ´e que as comunica¸c˜oes n˜ao possuem as mesmas caracter´ısticas para todos os pares de computadores.
Neste caso, teremos um valor diferente para o tempo de latˆencia βi,j e largura da banda γ1i,j
para cada par pi e pj de processadores. Portanto, neste modelo, o tempo de comunica¸c˜ao de
uma mensagem de tamanho w do processador pi para pj ´e βi,j+ wγi,j.
Na se¸c˜ao seguinte nos concentraremos nos estudos do problema em ambientes multi- aglomerados, j´a publicados, que servir˜ao como base para o nosso trabalho. Nestes ambientes aglomerados de computadores est˜ao interligados formando aglomerados maiores. A seguir, falaremos do problema de redistribui¸c˜ao. Um problema particular da troca completa onde dois aglomerados est˜ao ligados por um backbone e os processadores de um aglomerado enviam mensagens para os processadores do outro aglomerado. Finalizaremos o cap´ıtulo com uma pequena discuss˜ao 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 j´a existentes. Geralmente, o tempo de comunica¸c˜ao entre computadores de um mesmo aglomerado n˜ao depende dos processadores envolvidos. En- tretanto, a comunica¸c˜ao entre computadores de diferentes aglomerados tende a ser mais lento.
Esta se¸c˜ao fornecer´a algoritmos apresentados em [Gol02], que s˜ao personalizados para a troca
de mensagens para este caso.
Com o objetivo de modelar uma rede multi aglomerados (MCN), ser´a introduzido um
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 23
modelo mais simplificado onde existem apenas dois n´ıveis de conex˜oes. Os aglomerados s˜ao conectados entre si obtendo o MCN. Existem apenas dois tipos de comunica¸c˜ao, uma local
e outra entre aglomerados diferentes. A figura 3.1 mostra um exemplo de uma rede multi
aglomerados 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 =
n
pi
0, ..., pini−1
o
. O conjunto de processadores de todo o sistema ´e definido por {p0, ..., pn−1}, onde n = PCL−1i=0 ni, e pij ´e o j-´esimo processador do
aglomerado i e corresponde ao processador pk, k =Pi−1l=0ni+ j.
Cada um dos aglomerados ´e tratado como um ambiente homogˆeneo. Portanto, o tempo de comunica¸c˜ao entre computadores pertencentes ao mesmo aglomerado ser´a tratado da mesma
maneira como nos ambientes homogˆeneos. Logo, o tempo para o processador pi enviar uma
mensagem de tamanho wi,j para o processador pj, pi e pj pertencentes ao mesmo aglomerado,
´e βl+ wi,jγl. Quando pi e pj est˜ao em aglomerados distintos, o tempo de troca ser´a βd+ wi,jγd.
Os algoritmos apresentados na se¸c˜ao anterior podem ser usados sem necessidade de al- tera¸c˜oes. Por´em, devido `as diferen¸cas de comunica¸c˜ao locais e distantes, o desempenho dos algoritmos ser´a degradado. Nesta se¸c˜ao duas estrat´egias para escalonamento em MCN ser˜ao apresentadas. A primeira tenta adaptar os algoritmos anteriores para considerar as comu- nica¸c˜oes locais e distantes. A segunda realiza uma comunica¸c˜ao em n´ıveis. Reservaremos tamb´em uma se¸c˜ao para falar sobre o MagPIe: uma implementa¸c˜ao das primitivas de comu- nica¸c˜ao coletivas do MPI para este tipo de rede MCN com 2 n´ıveis.
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 24
3.1.1
Adaptando os Algoritmos
• Padr˜ao Fixo e Hipercubos
Como esses dois algoritmos n˜ao utilizam o conhecimento global do tamanho das mensa- gens para definir o escalonamento, s´o ´e poss´ıvel utilizar a informa¸c˜ao da velocidade dos links. Ent˜ao, para melhorar o desempenho em rela¸c˜ao ao algoritmo original, seria con- veniente agrupar as mensagens locais em fases de comunica¸c˜ao diferentes das mensagens distantes.
• Max-Min e Max-Weight
Os algoritmos de padr˜ao central utilizam informa¸c˜oes dos tamanhos das mensagens ent˜ao ´e poss´ıvel adapt´a-los introduzindo um custo adicional para mensagens a serem transmi- tidas entre aglomerados. Para isso, ´e necess´ario considerar as diferen¸cas nos parˆametros de comunica¸c˜ao. Ao inv´es de utilizar a matriz de comunica¸c˜ao W para calcular os emparelhamentos, utilizaremos uma matriz de tempo esperado. Se uma mensagem de
tamanho w ser´a enviada dentro do aglomerado, o custo de comunica¸c˜ao ser´a βl+ wγl. Se
esta mensagem envolve uma comunica¸c˜ao distante, ent˜ao o custo de comunica¸c˜ao ser´a
βd+ wγd. O algoritmo ´e mostrado abaixo:
construa a matriz de tempo esperado T a partir de W
enquanto existe mensagens n~ao vazias em W fa¸ca
encontre a fase de comunica¸c~ao MT em T
use o padr~ao de comunica¸c~ao MT para construir MW
subtraia deW as mensagens em MW
• Uniforme
A substitui¸c˜ao da matriz de comunica¸c˜ao pela matriz de tempo esperado utilizada ante- riormente para os algoritmos Max-Min e Max-Weight n˜ao pode ser aplicada diretamente no algoritmo Uniforme. Para permitir o uso da mesma id´eia seria necess´ario conhecer o
n´umero 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 id´eia
´e reconstruir a matriz de tempo esperado depois de cada fase de comunica¸c˜ao. Em cada fase de comunica¸c˜ao, cada transmiss˜ao dentro do aglomerado usa comunica¸c˜ao local, e transmiss˜oes entre aglomerados diferentes utilizam comunica¸c˜ao distante. As dife- ren¸cas dessas comunica¸c˜oes devem ser consideradas na fase de normaliza¸c˜ao. Seja t o menor tempo de transmiss˜ao em uma fase de comunica¸c˜ao, existem dois limites supe-
riores no tamanho das mensagens, wl e wd para comunica¸c˜ao local e distante tal que
t = βl+ wlγl = βd+ wdγd. Logo, o tamanho das mensagens locais ´e limitado por wl e
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 25
construa a matriz de tempo esperado T a partir de W
enquanto existe mensagens n~ao vazias em W fa¸ca
encontre a fase de comunica¸c~ao MT em T
use o padr~ao de comunica¸c~ao MT para construir MW
normalizeMW
envie as mensagens deMW
subtraia deW as mensagens em MW
reconstrua T a partir de MT
3.1.2
Algoritmos de dois n´ıveis
A principal id´eia ´e resolver o problema n´ıvel por n´ıvel. Primeiro, as mensagens s˜ao trocadas dentro de cada aglomerado, centralizando em apenas um processador (representante) as men- sagens a serem enviadas para outros aglomerados. Ap´os isso, os processadores representantes de cada aglomerado trocam as mensagens (distantes) entre si. Com isso, cada processador re- presentante ter´a todas as mensagens vindas de outros aglomerados destinadas a processadores de seu pr´oprio aglomerado. Finalmente, esses processadores realizam uma difus˜ao (broadcast) enviando as mensagens para o destino final.
troca de mensagens locais em cada aglomerado troca de mensagens distantes entre os aglomerados
distribui¸c~ao das mensagens em cada aglomerado
Qualquer um dos algoritmos apresentados para ambientes homogˆeneos pode ser utilizado nos dois primeiros passos. A melhor escolha depende, como no ambiente homogˆeneo, dos parˆametros de comunica¸c˜ao.
3.1.3
Resultados Obtidos
Simula¸c˜oes realizadas em [Gol02] mostram que os algoritmos propostos nesta se¸c˜ao para
a 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 rede
multi-aglomerado depende principalmente dos parˆametros das comunica¸c˜oes distantes. Para baixas latˆencias, o algoritmo Uniforme adaptado tem melhor desempenho. Quando a latˆencia das comunica¸c˜oes distantes ´e alta, os algoritmos para hipercubo adaptado e o algoritmo de dois n´ıveis s˜ao melhores op¸c˜oes. Se os tamanhos das mensagens s˜ao muito grandes, o algoritmo para hipercubo torna-se mais custoso.
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 26
3.1.4
MagPIe
O crescimento de grades computacionais torna poss´ıvel rodar programas paralelos em grande escala e geograficamente distribu´ıdos. Infelizmente, escrever aplica¸c˜oes paralelas ´e um trabalho dif´ıcil. Em particular, programadores precisam reestruturar seus programas para lidar com diferen¸cas nos processadores e nas velocidades da rede com o objetivo de minimizar
o tr´afego sobre links lentos. A biblioteca MagPIe [KHB+99] tenta resolver o problema imple-
mentando as primitivas de comunica¸c˜oes coletivas do MPI otimizadas para grades computa- cionais. MagPIe foi desenvolvido para uma rede multi-aglomerado de 2 n´ıveis, pois considera que grades de computadores s˜ao formados por muitos computadores paralelos conectados pela internet. O desempenho de uma opera¸c˜ao de comunica¸c˜ao coletiva neste ambiente ´e domi- nado pelo tempo gasto nos links de aglomerados diferentes. MagPIe utiliza 2 condi¸c˜oes para otimizar o tempo total de comunica¸c˜ao:
1. Todo caminho de comunica¸c˜ao de uma mensagem utilizado pelo algoritmo cont´em no m´aximo 1 link distante (de aglomerados diferentes);
2. Nenhuma mensagem ´e enviada mais de 1 vez para um mesmo aglomerado.
A condi¸c˜ao 1 garante que a latˆencia das ´areas distantes contribui no m´aximo 1 vez no tempo total de comunica¸c˜ao. A condi¸c˜ao 2 nos previne de desperdi¸car largura de banda de ´areas distantes.
Os algoritmos de comunica¸c˜ao coletiva utilizados no MagPIe s˜ao parametrizados na dife-
ren¸ca entre o tempo de completar o envio de uma mensagem (ts) e o tempo de recep¸c˜ao (tr)
desta mensagem. Como a comunica¸c˜ao ´e ass´ıncrona, o tempo para completar um envio ts ´e o
tempo da mensagem ser inserida totalmente dentro da rede e depende apenas do tamanho da
mensagem. O tempo tr, adicionalmente, depende da latˆencia e da largura de banda da rede.
Se tr− ts ´e pequeno, ent˜ao a ´arvore de comunica¸c˜ao ´otima de uma difus˜ao (broadcast) ´e uma
´arvore binomial. Se esta diferen¸ca ´e grande, ent˜ao a ´arvore ´otima ´e de apenas um n´ıvel (flat tree). ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ ✍✌ ✎☞ 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
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 27
Em aglomerados diferentes, a latˆencia domina a largura de banda para mensagens peque-
nas e m´edias, ou seja tr >> ts. Consequentemente, a ´arvore flat ´e a melhor infra-estrutura
de interconex˜ao 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 n´os dentro de um mesmo aglomerado. O ponto exato entre o uso de uma ´arvore de 1 e n n´ıveis de-
pende dos valores atuais da latˆencia, largura de banda, n´umero de aglomerados e tamanho
das mensagens.
A estrutura geral dos algoritmos utilizados no MagPIe ´e separada em dois tipos. Em algo- ritmos assim´etricos, um processo dedicado chamado root age como remetente e destinat´ario. Em algoritmos sim´etricos, todos os processos enviam e recebem mensagens. Nos algoritmos assim´etricos, o root tamb´em age como coordenador do aglomerado. Em todos os outros aglo- merados dos algoritmos assim´etricos e em algoritmos sim´etricos, o coordenador ´e escolhido
arbitrariamente (Figura 3.4).
Figura 3.4: Grafos de comunica¸c˜ao no MagPIe
A opera¸c˜ao MPI Barrier sincroniza um grupo de processos: nenhum dado ´e trocado nesta opera¸c˜ao. Como esta ´e uma opera¸c˜ao sim´etrica, o algoritmo MagPIe a implementa em 3 passos: uma redu¸c˜ao (gather ) local de mensagens vazias para o coordenador utilizando uma ´arvore bin´aria, uma troca completa utilizando uma flat tree e finalmente uma difus˜ao utilizando ´arvore bin´aria.
CAP´ITULO 3. ALGORITMOS PARA AMBIENTES HETEROG ˆENEOS 28
Em MPI Bcast, o processo root envia um vetor de dados para todos os outros processos. Esta opera¸c˜ao ´e o caso mais simples de um algoritmo assim´etrico um-para-muitos e sua imple- menta¸c˜ao no MagPIe consiste em 2 passos: o root envia para os n´os coordenadores utilizando uma flat tree e estes realizam uma difus˜ao dentro de seus aglomerados utilizando ´arvores binomiais. MPICH implementa a difus˜ao em uma ´arvore binomial.
MPICH implementa o algoritmo de difus˜ao personalizada scatter de um modo mais simples poss´ıvel no qual o n´o root envia diretamente peda¸cos dos dados para os respectivos n´os. MagPIe utiliza o mesmo algoritmo pois uma ´arvore de um n´ıvel nesta opera¸c˜ao gera apenas uma simples latˆencia e nenhum dado ´e enviado desnecessariamente.
Em MPI AllGather, um algoritmo baseado em coordenadores pode melhorar o desempenho da comunica¸c˜ao pois todos os processos recebem o mesmo dado, como no MPI Bcast. No algoritmo MagPIe, os coordenadores primeiro colhem os dados localmente armazenando em um vetor parcial. Ap´os esta fase, uma troca destes vetores parciais entre os aglomerados ´e realizada completando o vetor de dados. Finalmente um broadcast transmite o vetor localmente.
A implementa¸c˜ao no MagPIe da comunica¸c˜ao coletiva de troca completa de mensagens de diferentes tamanhos MPI Alltoallv n˜ao utiliza um algoritmo de escalonamento para realizar as trocas de mensagens. Na atual implementa¸c˜ao, os processos apenas realizam todos os envios de suas mensagens de forma n˜ao-bloqueante seguido de uma chamada de MPI Waitall. Deste modo, os conhecimentos da topologia de multi-aglomerados e dos tamanhos das mensagens n˜ao s˜ao considerados para gerar um escalonamento para a troca completa. Considerando que a capacidade de transmiss˜ao dos processadores segue o modelo 1-port e que a ordem do envio das mensagens segue a ordem de chamadas do m´etodo MPI Isend, ent˜ao podemos considerar que a troca completa no MagPIe ´e implementada utilizando o Algoritmo de Padr˜ao Fixo do
ambiente homogˆeneo. O c´odigo-fonte do m´etodo MPI Alltoallv obtido em [alb06] se encontra
no apˆendice C.