Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Framework P2P para Execução de Tarefas Bag-of-Tasks com Múltiplas Políticas de Alocação em Ambientes Distribuídos Heterogêneos

Framework P2P para Execução de Tarefas Bag-of-Tasks com Múltiplas Políticas de Alocação em Ambientes Distribuídos Heterogêneos

Aplicações em áreas como genômica comparativa, em neurociências ou de controle de tráfego aéreo têm a característica de requerem grande quantidade de processamento de modo a obterem os resultados. Muitas vezes, essas aplicações são executadas em Desktop grids, que são uma plataforma baseada em máquinas de uso geral, mas que em grande escala tem potencial de atingirem grande quantidade de processamento. As aplicações em grid são em geral aplicações complexas, que executam em um número grande e heterogêneo de nós não dedicados, disponíveis em domínios administrativos distintos. As abordagens atuais de utilização dos recursos em desktop grids são centralizadas, possuindo geralmente escalabilidade limitada. O modelo Peer-to-Peer (P2P) evoluiu simultaneamente e em paralelo aos interesses da computação em grid. Devido à característica descentralizada da arquitetura P2P, ela tem sido utilizada como solução complementar à arquitetura em grid. Observa-se, então, uma convergência entre a computação em grid e a arquitetura P2P, juntando as melhores características de cada tecnologia. Nesse contexto, a alocação de tarefas é um problema importante que visa atribuir tarefas a um conjunto de recursos, objetivando maximizar o uso dos recursos. A alocação de tarefas em ambientes descentralizados é complexa, uma vez que não há uma visão global do sistema. Nessa dissertação, propomos e avaliamos um framework flexível para alocação descentralizada de tarefas em ambiente de grid com múltiplas políticas de alocação. Além do framework, propomos e avaliamos duas políticas de alocação de tarefas baseadas em Work Stealing: Work Stealing with Replication (WSR) e Local Work Stealing with Replication (LWSR). O protótipo do framework proposto foi desenvolvido utilizando JXTA como middleware e o Chord como overlay P2P. Entretanto, o framework é flexível pois não está acoplado nem ao middleware de rede nem ao overlay P2P utilizado. Os resultados obtidos em um ambiente heterogêneo composto de 16 máquinas dispostas em dois laboratórios, executando aplicações de controle de tráfego aéreo, mostraram que o tempo de execução da aplicação pode ser sensivelmente reduzido com o nosso framework. Um speedup de 11,86 foi obtido para uma aplicação composta de 180 tarefas, reduzindo o tempo de execução seqüencial da melhor máquina de 22,35 minutos para 1,8 minutos, com 16 máquinas.

Alessandro Leite (PhD)

June 24, 2010
Tweet

More Decks by Alessandro Leite (PhD)

Other Decks in Education

Transcript

  1. Universidade de Brasília Instituto de Ciências Exatas Departamento de Ciência

    da Computação Framework P2P para Execução de Tarefas Bag-of-Tasks com Múltiplas Políticas de Alocação em Ambientes Distribuídos Heterogêneos Alessandro Ferreira Leite Dissertação apresentada como requisito parcial para conclusão do Mestrado em Informática Orientadora Profa. Dra. Alba Cristina Magalhães Alves de Melo Brasília 24/06/2010
  2. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  3. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  4. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Muitas aplicações recentes exigem grande quantidade de trabalho computacional para encontrar soluções adequadas. Alinhamento de seqüências biológicas, simulações meteorológicas, exploração de petróleo, simulações de cenários aéreos, entre outras. Muitas vezes, essas aplicações são executadas em Desktop grids. As aplicações em grid são em geral aplicações complexas, que executam em um número grande e heterogêneo de nós não dedicados. Alessandro Ferreira Leite 4/65
  5. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Geralmente, as abordagens atuais de utilização dos recursos em desktop grids são centralizadas. Dentre as arquiteturas distribuídas propostas nas últimas décadas, sobressai-se a arquitetura peer-to-peer (P2P). A arquitetura P2P é uma arquitetura de sistema distribuído onde não existe controle centralizado. Nesse caso, os nós se auto-organizam em uma estrutura que permita a comunicação entre as mesmas e respondem às requisições sem a intervenção de um servidor central. Alessandro Ferreira Leite 5/65
  6. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Devido à característica descentralizada da arquitetura P2P, ela tem sido utilizada como solução complementar à arquitetura em grid. Observa-se, uma convergência entre a computação em grid e a arquitetura P2P, juntando as melhores características de cada tecnologia. Em tais ambientes, a alocação de tarefas é um problema importante que visa atribuir tarefas a um conjunto de recursos, objetivando maximizar o uso dos recursos. A alocação de tarefas em ambientes descentralizados é complexa, já que não existe visão global do sistema. Alessandro Ferreira Leite 6/65
  7. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Devido as características das aplicações em grid, essas aplicações são geralmente compostas por tarefas independentes e não-comunicantes, ditas Bag-of-Tasks(BoT). A execução de aplicações Bag-of-Tasks segue geralmente a abordagem centralizada. Técnicas de descentralização têm sido empregadas para execução dessas aplicações. Muitos resultados até então, são simulações ou então, empregam uma política de alocação. Alessandro Ferreira Leite 7/65
  8. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Objetivos Propor e avaliar um framework exível para alocação descentralizada de tarefas em ambiente de grid com múltiplas políticas de alocação. Além do framework, propomos e avaliamos duas variantes de políticas de alocação de tarefas baseadas em Work Stealing: Work Stealing with Replication (WSR) e Local Work Stealing with Replication (LWSR). Alessandro Ferreira Leite 8/65
  9. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Introdução Contribuições Um framework exível para alocação descentralizada de tarefas em ambiente de grid: o framework proposto apresenta uma arquitetura exível de modo que é totalmente desacoplado do middleware e do overlay P2P. Políticas de Work Stealing com replicação para ambiente descentralizado: duas variantes da política de Work Stealing foram propostas: Work Stealing With Replication (WSR) e Local Work Stealing With Replication (LWSR). Alessandro Ferreira Leite 9/65
  10. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) Organização dos

    sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service 3 Políticas de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais
  11. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Organização dos sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service Ambientes Peer-to-Peer(P2P) Peer-to-peer (P2P) (Stephanos and Spinellis, 2004) Um sistema peer-to-peer (P2P) é um sistema distribuído consistindo de nodos interconectados capazes de se auto-organizarem em topologias de rede com o objetivo de compartilhar recursos sem necessitar da intermediação ou suporte de uma entidade central. Alessandro Ferreira Leite 11/65
  12. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Organização dos sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service Organização dos sistemas P2P Um sistema P2P quanto à organização pode ser classicado como: 1 Estruturado; 2 Não-estruturado; Alessandro Ferreira Leite 12/65
  13. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Organização dos sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service Sistemas P2P Não Estruturados As ligações dos nós são estabelecidas de forma arbitrária à medida que os nós entram e saem da rede. Os mecanismos de busca empregados variam de método de força bruta, como inundação da rede, aos métodos mais sosticados como: Caminhada aleatória, índices de roteamento. Uso de TTL nas operações de pesquisa; Tempo na ordem de O(n). Alessandro Ferreira Leite 13/65
  14. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Organização dos sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service Sistemas P2P Estruturados Os nós são organizados de acordo com uma topologia especíca. Nessa arquitetura, a topologia de rede é determinada através de um esquema de alocação de chaves à identicadores dos nós. Uso do overlay para executar a operação de pesquisa. Tempo na ordem de O(logn). Alessandro Ferreira Leite 14/65
  15. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Organização dos sistemas P2P Chord A framework for P2P Application Development PIAX - P2P Agent Plataform for Ubiquitous Service Ambientes para Aplicações P2P Framework P2P Um framework de aplicações P2P é um mecanismo para ajudar o desenvolvedor a construir aplicações P2P, fornecendo camadas de abstração que ocultem do desenvolvedor, ou pelo menos não exija o seu conhecimento, a complexidade inerente a tecnologia P2P. Alessandro Ferreira Leite 16/65
  16. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos Alocação de Tarefas Centralizadas Alocação de Tarefas Distribuídas 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  17. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Classes de Tarefas Parameter Sweep São, em geral, aplicações totalmente independen- tes, desenvolvidas para explorar um grande espaço de possibilidades de resolução de um problema. Bag-of-Tasks Podem ser entendidas como sendo um tipo de generalização das aplicações do tipo Parameter Sweep, mas não há garantias de que as tarefas que compõem a aplicação executem o mesmo tipo de processamento. Workow São as aplicações compostas por um conjunto de tarefas que devem ser executadas segunda uma or- dem parcialmente determinada por dependência de controle e de dados. Alessandro Ferreira Leite 20/65
  18. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Políticas de Alocação As políticas de alocação de tarefas visam atribuir tarefas a recursos (nós) de acordo com um critério de otimização. Maximizar o uso de recursos, minimizar o tempo de execução, balanceamento de carga. É um problema NP-Completo. Alessandro Ferreira Leite 21/65
  19. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Alocação de Tarefas Centralizadas A alocação de tarefas consiste na distribuição de N tarefas por um mestre m aos S escravos s1, . . . , sn responsáveis por executar as tarefas designadas. Alessandro Ferreira Leite 22/65
  20. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Políticas de Alocação Centralizadas Fixed (Static Scheduling) As tarefas são distribuídas uniformemente entre os nós escravos. A(N, S) = N S Adequada para sistemas homogêneos,com recursos dedicados, que não apresentem variações de comportamento em tempo de execução. Alessandro Ferreira Leite 23/65
  21. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Políticas de Alocação Centralizadas Self Scheduling (SS) As tarefas são distribuídas à medida que os nós escravos solicitam ao mestre, até que todas tenham sido totalmente executadas. A(N, S) = 1, se a la não está vazia. O máximo tempo ocioso é limitado pelo tempo de processamento de uma tarefa. Alessandro Ferreira Leite 24/65
  22. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Políticas de Alocação Centralizadas Política Work Stealing (Blumofe and Leiserson, 1999) Estratégia muito popular de alocação de tarefas, proposta inicialmente, para multiprocessadores com memória compartilhada, no contexto de aplicações multi-threads que podem ser expressas como um Grafo Acíclico Dirigido (DAG). Em Work Stealing, cada processador tem uma la duplamente encadeada (dequeue) e, quando um processador ca ocioso, ele rouba uma tarefa de algum processador escolhido aleatoriamente, removendo a tarefa roubada do nal da la do processador escolhido, desde que a la não esteja vazia. Alessandro Ferreira Leite 25/65
  23. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Políticas de Alocação Centralizadas Work Stealing (Blumofe and Leiserson, 1999) Apresenta resultados teóricos importantes, tais como, limite superior do tempo de execução e o número limitado de tentativas de roubos. Existem algumas propostas para sistemas distribuídos (Kumar et al., 1994), e propostas para sistemas distribuídos com PGAS (Dinan et al., 2009), (Blumofe and Lisiecki, 1997). Alessandro Ferreira Leite 26/65
  24. Quadro Comparativo Ref Estrutura Sist. Alocação Aplicação [R05] Hierárquico /

    Descentralizado P2P Fixed BoT [C05] Hierárquico / Descentralizado Grid SS, prefetch BoT [A06] Hierárquico / Descentralizado P2P Fixed BoT [S06] Centralizado Grid Múltiplas, user-dened BoT [B06] Estruturado / n- cycle P2P Random Walk, WSF BoT [S08] Hierárquico / Descentralizado P2P Qos Based BoT [M09] Estruturado / Skip grap P2P SS BoT Framework Estruturado / Múltiplos Grid Múltiplas, user-dened BoT
  25. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  26. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Fluxo em Rede Um uxo em rede pode ser denido como um grafo orientado G = (V , E), com dois vértices especiais, origem (s) e destino (t). Associado a toda aresta (u, v) ∈ E temos uma função de capacidade c tal que c > 0, representa o uxo máximo admissível. Alessandro Ferreira Leite 31/65
  27. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Fluxo em Rede 1 Problema do caminho mais curto. Qual o menor caminho para atravessar uma rede saindo de um ponto (origem) e chegando em outro (destino) com o menor custo possível? 2 Problema do uxo máximo. Em uma rede com arestas limitada pela capacidade do uxo, como obter o maior uxo admissível entre dois pontos da rede sem violar a sua capacidade? 3 Problema do custo mínimo. Admita que foi atribuído um custo por unidade de uxo em uma rede com capacidade nas arestas e que deseja-se enviar alguma unidade de material que encontra-se em um ou mais pontos da rede para algum outro ponto da rede. Como esse material pode ser enviado com o menor custo possível? Alessandro Ferreira Leite 32/65
  28. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Algoritmos de Fluxo Máximo De maneira geral, os algoritmos de uxo máximo podem ser divididos em duas classes que são: 1 Algoritmos dos caminhos de incremento. 2 Algoritmos de pré-uxo. Alessandro Ferreira Leite 33/65
  29. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Algoritmos de Fluxo Máximo Algoritmos dos Caminhos de Incremento Os algoritmos dos caminhos de incremento trabalham com o aumento do uxo baseado na aresta de menor capacidade, enviando uxo da origem ao destino. Algoritmos: 1 Método de Ford-Fulkerson (Ford and Fulkerson, 1956) 2 Edmond-Karp (Edmonds and Karp, 1972) 3 Dinic (Dinic, 1970) Alessandro Ferreira Leite 34/65
  30. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Algoritmos de Fluxo Máximo Algoritmos dos Caminhos de Incremento Alessandro Ferreira Leite 35/65
  31. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Algoritmos de Fluxo Máximo Algoritmos dos Caminhos de Incremento Alessandro Ferreira Leite 36/65
  32. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Communication Layer P2P Layer Task Layer Política de Work Stealing 6 Resultados Experimentais
  33. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Projeto do Framework Objetivos: 1 Ser exível o suciente para que possa ser instanciado independente do overlay e do middleware de rede; 2 Comportar a adição de novas políticas de execução de tarefas de forma plugável; 3 Abstrair a complexidade inerente a arquitetura alvo, para que o desenvolvedor não tenha que lidar com complexidade de baixo nível; 4 Forneçer um ambiente descentralizado para execução de tarefas Bag-of-Taks em ambiente distribuído heterogêneo como desktop grid. Alessandro Ferreira Leite 38/65
  34. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Projeto do Framework Ser exível o suciente para que possa ser instanciado independente do overlay e do middleware de rede. Deniu-se uma interface que abstrai o overlay utilizado, de modo que se possa por exemplo, utilizar o Chord como overlay P2P e o JXTA (JXTA, 2003) como middleware de rede ou CAN com Skip graphs. Alessandro Ferreira Leite 39/65
  35. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Projeto do Framework Comportar a adição de novas políticas de execução de tarefas de forma plugável. As políticas de alocação de tarefas são visualizadas pelo framework como plugins. A implementação da política de alocação que deve ser utilizada pode ser informada pela aplicação, via parâmetro de conguração. Alessandro Ferreira Leite 40/65
  36. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Projeto do Framework Abstrair a complexidade inerente a arquitetura alvo, para que o desenvolvedor não tenha que lidar com complexidade de baixo nível. O framework oferece um formato de mensagem independente do middleware utilizado; O desenvolvedor não precisa conhecer a forma de comunicação empregada por cada middleware P2P. Não há acoplamento da aplicação com o middleware de rede. Alessandro Ferreira Leite 41/65
  37. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Communication Layer A Communication Layer é responsável por abstrair o middleware de rede do restante do framework, provendo um formato de mensagem independente do middleware utilizado. Toda a comunicação da aplicação com a plataforma P2P é realizada por essa camada. Alessandro Ferreira Leite 43/65
  38. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing P2P Layer O objetivo dessa camada é abstrair o overlay P2P. Essa independência é obtida porque a camada publica operações sucientemente genéricas aos outros módulos, ou seja, não expõe informações referentes à infra-estrutura P2P empregada. Dispõe de operações para vericar a consistência da estrutura que são chamadas periodicamente. Alessandro Ferreira Leite 44/65
  39. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing P2P Layer Operações da Interface da Camada P2P. Operação Descrição create Cria a estrutura P2P join Realiza o join de um novo nó na estrutura P2P insert Insere um novo recurso (tarefa) com um identica- dor (key) em um nó n registry Registra os eventos os quais um nó esteja interes- sado leave Desconecta o nó da estrutura P2P Alessandro Ferreira Leite 45/65
  40. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Implementação do Chord A especicação do Chord foi implementada, incluindo as funções de manutenção. No Chord as chaves são calculadas a partir do conteúdo das tarefas, utilizando o algoritmo SHA-1. Não há a necessidade de um nó de bootstrap. Alessandro Ferreira Leite 46/65
  41. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Task Layer Submissão de tarefas Todo nó aceita as tarefas submetidas para execução e as coloca em sua la. Quando uma tarefa é submetida para execução, um evento é criado e o nó onde a tarefa é inserida é avisado pelo overlay. Toda tarefa possui duas ligações: 1 Uma para o nó que submeteu (sentido da informação). 2 Outra para o nó a qual está alocada. Todo nó quando não tem tarefa para executar, e uma política de work stealing está habilitada, consulta algum nó por tarefas para execução, e existindo, obtém uma cópia e executa. Alessandro Ferreira Leite 47/65
  42. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Task Layer O objetivo do Task Allocation é instanciar a política de alocação de tarefa e por alocar as tarefas nos nós; Esse sub-módulo fornece uma interface que deve ser implementada pela políticas de alocação de tarefa denidas pelo usuário, por padrão disponibiliza a política push based; Novas implementações não implicam em mudança na arquitetura, uma vez que a denição de qual política utilizar é feita via parâmetro de aplicação. Alessandro Ferreira Leite 48/65
  43. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Task Executor Controla todo o processo de execução das tarefas. Engloba desde o placement da tarefa na la do nó a noticação do submitter sobre a conclusão da tarefa; As tarefas são executadas na ordem FIFO, uma de cada vez, até a la car vazia; É responsabilidade desse módulo controlar o estado das tarefas e por noticar os interessados, no instante da mudança. Alessandro Ferreira Leite 49/65
  44. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Task Executor Alessandro Ferreira Leite 50/65
  45. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Política de Work Stealing Duas políticas de work stealing foram implementadas Work Stealing With Replication; Local Work Stealing With Replication. Essas políticas se distinguem apenas na escolha do nó a ser consultado por tarefas a serem executadas; Na política Work Stealing With Replication o nó a ser consultado é escolhido aleatoriamente entre todos os nós do sistema. Na política Local Work Stealing With Replication o nó a ser consultado é denido randomicamente dentre aqueles que estão a um salto (hop) do nó ocioso. Alessandro Ferreira Leite 51/65
  46. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Communication Layer P2P Layer Task Layer Política de Work Stealing Política de Work Stealing Figura: Work stealing com replicação. Alessandro Ferreira Leite 52/65
  47. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  48. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Resultados Experimentais 1 desktop grid com 16 máquinas heterogêneas, distribuídas em dois laboratórios: labPos e translab. O protótipo foi desenvolvido em Java 1.6, JXTA JSE 2.4.1 e MySQL 5.0. Nó CPU RAM HD NB 1.6 GHz 2 GB 120 GB TL01-03 2.66 GHz 4 GB 300 GB TL04-05 1.6 GHz 2 GB 140 GB P03 2.53 GHz 2 GB 150 GB P04-06, P10-13 1.3 GHz 2 GB 40 GB Alessandro Ferreira Leite 54/65
  49. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Resultados Experimentais Nós utilizados em cada execução. Número de Nós Nó 1 tl-01 2 nb, p-11 4 nb, p-04, p-05, p-12 8 nb, p04-06, p10-12, tl-01 16 nb, tl01-06, p03-07, p10-13 Alessandro Ferreira Leite 55/65
  50. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Resultados Experimentais As aplicações executadas eram algoritmos de uxo de rede(Edmonds-Karp, Dinic e FIFO-Preow-Push) para balanceamento de uxo aéreo. Os dados utilizados foram movimentos aéreos dos dias 30 abril e 2 de maio de 2008, representando respectivamente, dias de baixo e alto movimento. A aplicação foi executada em 1, 2, 4, 8 e 16 nós. As aplicações eram formadas por 90, 180 e 270 tarefas. Cada tarefa representa a execução de algum dos algoritmos de uxo máximo. Alessandro Ferreira Leite 56/65
  51. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Ferramenta de Monitoramento de Execução Para acompanhar a execução das tarefas foi desenvolvida uma ferramenta de monitoramento que fornece informações como: 1 Quantas e quais tarefas já foram executadas; 2 As tarefas que estão aguardando execução; 3 O tempo gasto na execução de cada tarefa; 4 O número de tarefas roubadas por cada nó; 5 O tempo total gasto na execução da aplicação Alessandro Ferreira Leite 60/65
  52. Sumário 1 Introdução e Objetivos 2 Ambientes Peer-to-Peer(P2P) 3 Políticas

    de Alocação de Tarefas em Ambientes Distribuídos 4 Fluxo em Rede 5 Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado 6 Resultados Experimentais 7 Conclusão e Trabalhos Futuros
  53. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Conclusão e Trabalhos Futuros Foi apresentado o projeto e a avaliação de um framework exível para alocação descentralizada de tarefas em ambiente de grid, além de duas variantes da política de work stealing: Work Stealing With Replication (WSR) e Local Work Stealing With Replication (LWSR). O framework proposto foi implementado utilizando o JXTA como middleware P2P e o Chord como overlay P2P. Além do framework e das políticas, desenvolvemos a especicação do Chord em Java, e também, uma ferramenta para monitorar a execução das aplicações, a qual possibilita controlar visualmente a execução das aplicações. Alessandro Ferreira Leite 63/65
  54. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Conclusão e Trabalhos Futuros Para a coleta e análise dos dados experimentais utilizamos um desktop grid heterogêneo composto de 16 máquinas distribuídas em dois laboratórios. Desenvolvemos uma aplicação para balanceamento de tráfego aéreo, utilizando dados reais de movimentos aéreos dos dias dias 30 de abril e 02 de maio de 2008 fornecidos pelo Primeiro Centro Integrado de Defesa Aérea e Controle de Tráfego Aéreo (CINDACTA I), composta por 90, 180 ou 270 tarefas, de modo a analisar o comportamento das políticas de work stealing quando contrastadas com a execução das tarefas sem o uso de work stealing. Alessandro Ferreira Leite 64/65
  55. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Conclusão e Trabalhos Futuros Os trabalhos futuros a serem realizados de modo a dar continuidade às atividades desenvolvidas nesse trabalho são: 1 Incorporar novas políticas de alocação de tarefas ao protótipo; 2 Testar o protótipo em um ambiente composto por mais laboratórios geogracamente distribuídos; 3 Incorporar mecanismos de tolerância a falhas ao framework, como por exemplo, checkpoints; 4 Investigar a escalabilidade do framework, identicando quais parâmetros contribuem para o custo de um roubo de tarefas 5 Realizar experimentos em uma rede distribuída de grande porte como PlanetLab. Alessandro Ferreira Leite 65/65
  56. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Blumofe, R. D. and Leiserson, C. E. (1999). Scheduling multithreaded computations by work stealing. J. ACM , 46(5):720748. Blumofe, R. D. and Lisiecki, P. A. (1997). Adaptive and reliable parallel computing on networks of workstations. In ATEC '97: Proceedings of the annual conference on USENIX Annual Technical Conference , pages 1010, Berkeley, CA, USA. USENIX Association. Bölöni, L., Turgut, D., and Marinescu, D. C. (2006). Task distribution with a random overlay network. Future Gener. Comput. Syst. , 22(6):676687. Dinan, J., Larkins, D. B., Sadayappan, P., Krishnamoorthy, S., and Nieplocha, J. (2009). Scalable work stealing. In SC '09: Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis , pages 111, New York, NY, USA. ACM. Dinic, E. A. (1970). Algorithm for solution of a problem of maximum ow in a network with power estimation. Sovietic Mathematics Docklady , 11(5):12771280. Edmonds, J. and Karp, R. M. (1972). Theoretical improvements in algorithmic eciency for network ow problems. J. ACM , 19(2):248264. Ford, L. R. and Fulkerson, D. R. (1956). Maximal ow through a network. Naval Research Logistics Quarterly , 8:399404. Fujiwara, K., Teranishi, Y., Takeuchi, S., Harumoto, K., and Nishio, S. (2008). An implementation of lightweight message transport mechanism for p2p agent platform on ad-hoc networks. In SAINT '08: Proceedings of the 2008 International Symposium on Applications and the Internet , pages 361364, Washington, DC, USA. IEEE Computer Society. JXTA (2001-2003). v2.0 protocols specication sun microsystems, the internet society. http://www.jxta.org. Kumar, V., Grama, A. Y., and Vempaty, N. R. (1994). Scalable load balancing techniques for parallel computers. J. Parallel Distrib. Comput. , 22(1):6079. Alessandro Ferreira Leite 65/65
  57. Sumário Introdução e Objetivos Ambientes Peer-to-Peer(P2P) Políticas de Alocação de

    Tarefas em Ambientes Distribuídos Fluxo em Rede Projeto do Framework de Execução de Tarefas em Ambiente Distribuído e Descentralizado Resultados Experimentais Conclusão e Trabalhos Futuros Referências Mendes, H., Weigang, L., Boukerche, A., and Melo, A. C. M. A. (2009). Bag-of-tasks self-scheduling over range-queriable search overlays. In 6th IFIP International Conference on Network and Parallel Computing , volume 6, pages 109116. Stephanos and Spinellis, D. (2004). A survey of peer-to-peer content distribution technologies. ACM Comput. Surv. , 36(4):335371. Stoica, I., Morris, R., Liben-Nowell, D., Karger, D. R., Kaashoek, M. F., Dabek, F., and Balakrishnan, H. (2003). Chord: a scalable peer-to-peer lookup protocol for internet applications. IEEE/ACM Trans. Netw. , 11(1):1732. Walkerdine, J., Hughes, D., Rayson, P., Simms, J., Gilleade, K., Mariani, J., and Sommerville, I. (2008). A framework for p2p application development. Comput. Commun. , 31(2):387401. Alessandro Ferreira Leite 65/65