• Nenhum resultado encontrado

10.2 Traceback em Múltiplas GPUs

10.3.5 Análise do uso do Buffer (Estágio 1)

A Figura 10.4 apresenta o uso do buffer de saída do estágio 1 (Seção 9.2) utilizando dife- rentes tons de vermelho. Cada coluna em vermelho indica um alto uso do buffer, resultado de uma taxa de desbalanceamento entre as GPUs. Quando uma GPU está mais lenta que a GPU à sua esquerda, seu buffer começa a ser preenchido até que, eventualmente, ele fique completamente cheio, cascateando a lentidão para as GPUs anteriores. Por exemplo, no chr16 com IST (Figura 10.4(f)) existem linhas vermelhas próximas às GPUs centrais, indicando um desbalanceamento nestas GPUs. Este comportamento produziu uma diferença de 6% (55s) no tempo do estágio 1, comparando o tempo de execução do PT com o IST (Tabela 10.3). No chr13, tanto o IST (Figura 10.4(d)) como o PT (Figura 10.4(c)) apresentaram desbalanceamentos. Nestes casos, entretanto, o tempo de execução do estágio 1 do IST e do PT foi praticamente o mesmo, com apenas 1% de diferença.

Conforme discutido anteriormente, o IST e o PT executam o mesmo código do estágio 1 e as diferenças do tempo de execução deste estágio não estão relacionadas com a es- tratégia de traceback. O desbalanceamento pode ter sido causado pelos seguintes fatores: 1) sequências com regiões muito similares, gerando atualizações frequentes nas variáveis que armazenam o melhor escore e causando um pequeno overhead devido à execução des- tas instruções adicionais na GPU; 2) utilização concorrente de recursos com outras tarefas no cluster, o que pode gerar uma perda de desempenho no sistema de arquivo ou um au- mento da latência de rede. Visto que o primeiro fator depende somente do conteúdo das sequências, este tipo de desbalanceamento deve ser reproduzível entre execuções iguais. Entretanto, o segundo fator é normalmente irreproduzível. Adicionalmente, o segundo fator tende a produzir impacto durante um maior tempo da execução, considerando que a concorrência entre tarefas é um fator sistêmico. Com essas considerações e analisando as linhas de tempo obtidas, podemos inferir que a maioria dos cenários de desbalanceamento foram causados por fatores irreproduzíveis, formados pela concorrência de recursos dentro do cluster.

10.4

Conclusão do Capítulo

O CUDAlign 4.0 permitiu a obtenção do alinhamento completo em múltiplas GPUs de maneira eficiente. Por meio dos mecanismo de traceback propostos para múltiplos nós (PT - Pipelined Traceback e IST - Incremental Speculative Traceback), foi possível obter o alinhamento completo de todos os cromossomos homólogos entre o homem e o chimpanzé, totalizando mais que 500 trilhões de células processadas. O método IST foi capaz de acelerar em até 21× o tempo do traceback em comparação com o método PT. Utilizando

384 GPUs, foi possível obter um pico de desempenho de 10,37 TCUPS, acima do maior valor encontrado na literatura (Tabela 4.1). Este desempenho poderia ser ainda maior em um cenário ideal onde todas as GPUs tivessem exatamente o mesmo desempenho, sem nenhum tipo de contenção conforme foi observado no cluster utilizado para os testes (Seção 10.3.5). Visto que os efeitos observados nesse ambiente são muito difíceis de serem produzidos, método de balanceamento dinâmico de carga seria extremamente útil para corrigir eventuais problemas de contenção. Proporemos este método no Capítulo 11, onde verificaremos a eficácia do balanceamento dinâmico por meio de simulações.

Capítulo 11

Balanceamento de Wavefront em

Múltiplas GPUs

Conforme visto no Capítulo 10, pequenas diferenças nas capacidades de processamento das GPUs podem causar variações no uso dos buffers até que, eventualmente, a execução seja bloqueada à espera de dados ou de espaço livre nos buffers. Nesta situação, o bloqueio na comunicação causará lentidão nos demais nós, gerando um efeito em cascata capaz de comprometer o desempenho de toda a execução do wavefront. No nosso contexto, dizemos que o wavefront está balanceado se todos os nós de processamento estiverem calculando a mesma quantidade de linhas por segundo, de maneira que não ocorra nenhum bloqueio na execução.

O objetivo deste capítulo é propor e avaliar uma solução baseada em agentes capaz de executar balanceamento dinâmico de carga durante o processamento do wavefront multinodo, com base em um conjunto de métricas. A avaliação do método é feita por meio de simulações, considerando cenários controlados de desbalanceamento de carga. Tanto a proposta como sua avaliação foram publicadas em [39].

A Seção 11.1 apresenta o projeto do sistema multiagentes. As Seções 11.2, 11.3 e 11.4 apresentam métricas que são utilizadas pelas abordagens de tomada de decisão dos agentes. A Seção 11.5 avalia, por meio de simulações, as abordagens propostas. Por fim, a Seção 11.6 apresenta uma discussão sobre o capítulo.

11.1

Projeto do Sistema Multiagentes

O projeto de um agente deve considerar quatro propriedades que formam o acrônimo PAGE, composto dos termos em inglês Percepts (Percepções), Actions (Ações), Goals (Objetivos) e Environment (Ambiente) [140]. As percepções descrevem os dados que um agente pode obter do ambiente. As ações são os comandos que um agente pode executar para alterar o ambiente. Os objetivos são as motivações que levam os agentes a executarem ações em direção a uma meta. O ambiente é onde o agente reside. Todas essas propriedades definem o “raciocínio” de um agente. Uma definição apropriada do PAGE é muito importante para compreender os objetivos dos agentes e sobre como será a interação entre eles e com o ambiente.

A Figura 11.1 apresenta a visão geral da arquitetura do sistema multiagentes pro- posto, onde cada nó N1, N2, ..., Nké composto por um agente reflexivo chamado de agente

Balancer Executor Balancer Executor Balancer Executor

N

1

N

2

N

3 I1 O1 I2 O2 I3 O3 B uff er B uff er B uff er B uff er B uff er B uff er

Figura 11.1: Arquitetura do sistema multiagentes proposto.

executor e um agente baseado em objetivo chamado de agente balanceador, conforme a classificação de agentes de [140]. Na Tabela 11.1 é descrito o PAGE dos agentes executor e balanceador.

Tabela 11.1: Percepções, ambiente, objetivos e ações (PAGE) dos agentes propostos Agente Executor Agente Balanceador

Objetivos: Mantém e avalia a execução do processo

Objetivos: Otimiza a distribuição de co- lunas para reduzir o tempo de execução Ambiente: O sistema operacional e a

rede de comunicação. Este ambiente é parcialmente observável, estocástico, se- quencial, dinâmico e contínuo.

Ambiente: O sistema multiagentes. O ambiente é parcialmente observável, esto- cástico, sequencial, dinâmico e contínuo. Percepções:

1. número de linhas processadas por segundo;

2. número de células aguardando no buffer;

3. tempo ocioso aguardando dados;

Percepções:

1. estatísticas do agente executor; 2. inteções dos outros agentes balance-

adores;

Ações:

1. Reiniciar o processo quando uma nova distribuição de colunas for re- quisitada.

Ações:

1. manter a distribuição de colunas; 2. balancear a distribuição de colunas;

O agente executor é responsável por executar o algoritmo de wavefront e por manter o buffer de comunicação entre os nós. No início da execução, cada agente executor fica responsável por calcular um conjunto de colunas da matriz de programação dinâmica. O agente executor mensura o desempenho do cálculo da matriz de programação dinâmica e o estado dos buffers. O agente executor deve, periodicamente, identificar o número de linhas processadas por segundo, o número de células armazenadas nos buffers e o tempo desperdiçado aguardando dados ou espaço nos buffers (tempo de bloqueio). Decidimos que o agente executor não obterá estas estatísticas durante o começo ou final do processa- mento, pois as medições não serão acuradas por causa do preenchimento e esvaziamento do wavefront.

O agente balanceador é responsável por analisar o estado do agente executor e por identificar se é melhor manter ou rebalancear a distribuição de colunas. Se um dos balan- ceadores decidir rebalancear, ele irá negociar com todos os outros agentes para redistribuir as colunas e reduzir o tempo total de processamento. A redistribuição é feita conside- rando pesos dinâmicos em cada nó. O agente utiliza as ideias do modelo Belief-Desire- Intention/BDI (Crenças-Desejos-Intenções) [141] para separar o processo de deliberação do processo de redistribuição.

Propomos duas estratégias a serem utilizadas pelos agentes balanceadores para identifi- cação da necessidade de rebalanceamento: 1) estratégia global, onde os agentes conhecem o estado de todos os outros agentes; 2) estratégia local, onde os agentes somente pos- suem conhecimento sobre os seus próprios estados. A diferença entre as duas estratégias será explicada nas Seções 11.2 a 11.4, onde estão definidas as métricas de execução do agente executor, as métricas de balanceamento avaliadas pelas estratégias global e local, o mecanismo de pesos e as fases de negociação dos agentes balanceadores.

Documentos relacionados