1 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela O Simulador.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Cliente/Servidor Introdução
Advertisements

Suporte distribuído a jogos MMG em cenários com recursos limitados
1 / 35 A fine granularity load balancing technique for MMOG servers using a kd-tree to partition the space Carlos Eduardo Benevides BezerraVIII SBGames,
MPI – Comunicações Com. Colectiva esquecida Barrier não há troca de dados, apenas sincroniza os processos int MPI_Barrier( MPI_Comm, comm) T com = T lat.
{anolan, Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan,
Parte III – Engenharia de Software para Autonomic Computing Seminários 2007 – 2º Semestre Maíra Gatti.
Ambientes de Computação Empresarial e Avaliação de Custos
Capítulo 3: Relógios lógicos
Técnicas de processamento paralelo
Aluno: Ricardo Nogueira de Figueiredo
Grid Anywhere Um Middleware Extensível para Grades Computacionais
Co-projeto de Sistemas Operacionais
Junções Adaptativas em consultas Federadas sobre Linked Data
Computação de Alto Desempenho
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Alan Malta Rodrigues CMP167 – Programação com Objetos Distribuídos Instituto de Informática Universidade Federal do Rio Grande do Sul 08 de julho de 2009.
1 Felipe L. Severino Geração de Cenários para Desktop Computing Felipe L. Severino paralela e.
1 Felipe L. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
Research of Dynamic SOA Collaboration Architecture
SEMINÁRIO DE METODOLOGIA Arquitetura GRADI
Detecção de anomalias no protocolo DNS
Felipe Bogossian Luiz Felipe Maciel Renato Sampaio Rodrigo Couto
Arquiteturas de Referência
Tópicos em redes e sistemas distribuídos Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Metodologia da Pesquisa em Ciência da Computação - INE – Luís Fernando Custódio Seminário de Metodologia GPU em Ambientes Compartilhados.
Planejamento e Solucionamento de Problemas Distribuídos
A aplicação da Engenharia Semiótica no design da interface de usuário do software ASK2000 Jair C Leite Salerno Silva DIMAp - UFRN.
MapReduce Conceitos e Aplicações
Simple Locality-Aware Co- allocation in Peer-to-Peer Supercomputing Felipe Jung Vilanova Rodrigo Gheller Luque.
Computing on large scale distributed systems: experience of the XtremWeb project CMP-157 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA Prof. Cláudio Fernando Resin.
Artigos relacionados a POD: uma visão geral ao CCGRID POD – Programação de Objetos Distribuídos Professor Claudio Fernando Resin Geyer Aluno Emerson.
Modelo GRAND: Gerenciamento de Aplicações em Ambiente de Grade Patrícia Kayser Vargas Mangan
TVDesigner Uma Ferramenta para Criação de Aplicações MHP Interativas para TV Digital Orientador: Prof. Ph.D. Carlos André Guimarães Ferraz Aluno: Djaci.
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Simulação distribuída e paralela Gabriel Baracuhy Thiago Martins.
A Distributed Algorithm for Determining the Provenance of Data Paul T. Groth Information Sciences Institute University of Southern California
Introdução a Teste de Software
RUP - Cap. 4 – Processo Centrado na Arquitetura
1 / 18 Um breve estudo da adição de um quarto nível de cache em processadores multicore Carlos Eduardo Benevides BezerraWorkshop de Processamento Paralelo.
The Mobile Sensing Platform: An Embedded Activity Recognition System
Carlos Eduardo Benevides Bezerra CMP157 CMP157 – Programação Distribuída e Paralela Algoritmo de Peterson para escolha de líder 1 CMP157 – Programação.
Seminário CI303 Lucas Nascimento Ferreira. Data sharing service: Propriedades Persistência Independentemente da aplicação Permitir o reutilização dos.
Análise de Estratégias de Green Computing em Grades Oportunistas.
Performance Characterization of Descentralized Algorithms for Replica Selection in Distributed Object Systems Carlos Eduardo Benevides BezerraIvan Medeiros.
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
Agente de reputação para ART Testbed Andrew Diniz da Costa
Estudo da Plataforma XtremWeb para Grade CMP157 Computação Paralela e Disribuída Prof. Cláudio Fernando Resin Geyer Aluno: Emerson André Fedechen Apresentação.
AGRADECIMENTOS: MOTIVAÇÃO: A utilização de técnicas de controle multiváriavel avançadas como MPC já se tornou bastante difundida na indústria, porém ainda.
Prevayler 2.0 UFRGS – Instituto de Informática Programação com Objetos Distribuídos Prof° Claúdio Fernando Resin Geyer Eduardo Bauer Londero Novembro 2004.
Value type-based smart proxies: a concept for adaptable distributed applications Markus Aleksy, Ralf Gitzel ACM International Conference Proceeding Series;
Programming Pervasive and Mobile Computing Applications: the TOTA Approach MARCO MAMEI e FRANCO ZAMBONELLI Universit`a di Modena e Reggio Emilia Apresentado.
SimGrid Fernando Afonso. 2 Sumário Introdução Simulação SimGrid XtremWeb Experimentos Trabalhos futuros Conclusões.
CMP 157 Processamento Paralelo e Distribuído Prof Claudio Geyer TL 2 Análise de Artigo Marcelo Panosso Edson Berreta.
Monarc Framework para Simulações Disciplina: Programação Distribuída e Paralela Alunos: Anderson Bestteti e Rafael Zancan Frantz Professor: Cláudio Fernando.
Carlos Eduardo Benevides Bezerra CMP167 CMP167 – Programação com objetos distribuídos B P2PSE Trabalho Final: Implementação do suporte a múltiplos servidores.
FORMI Integrating Adaptive Fragments Objects into Java RMI Kapitza, Rüdiger; Domaschka, Jörg; Hauck, Franz J.; Reiser, Hans P. ;Schmidt, Holger. IEEE Distributed.
Multiparadigma das Comunicações em Java para Grid Computing Fernanda R. Ramos Luiz Felipe Marco Eiterer Profº Alcides Calsavara, Ph.D.
1 III Workshop InteGrade InteGrade IDE – Um Ambiente Integrado de Desenvolvimento para o InteGrade Eduardo Leal Guerra Orientador: Prof.
Satin: Simple and Eficient Java-based Grid Programming por Vitor Hugo Becker Rob van Nieuwpoort, Jason Maasen, Thilo Kielmann,
Comparativo GridSim x MONARC 2 Programação Distribuída e Paralela – 2006/2 Prof.: Cláudio Geyer Aluno: Anderson Bestteti.
Distributed Data-Parallel Computing Using a High-Level Programming Language TL1 Programação com Objetos Distribuídos Claiton Luiz Vieira Lisboa.
Mestrando Gabriel G. Detoni Orientador Prof. Dante Barone Controle para Futebol de Robôs Utilizando Processamento Paralelo Seminário de Andamento.
Scalable Grid Application Scheduling via Decoupled Resource Selection and Scheduling VLADIMIR GUERREIRO Publicado em: IEEE International Symposium, 2006.
Grades Computacionais Redes de Computadores II Thiago Soares de Carvalho Professores Luís Henrique M. K. Costa Otto Carlos M. B. Duarte 2007.
Arquitetura de computadores
Ilda Manuela Martins Ferreira Sessão Controlo Tese 2º Semestre 2007/2008.
Jorge Zavaleta PVM vs MPI. Introdução Objetivos do MPI Implementações e definições processos dinâmicos Contextos Operações não bloqueantes Portabilidade,heterogeneidade.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
Escalonamento e Execução de Workflows Científicos em Ambientes Multi-cluster ERAD-SP 2011 – Fórum de pós- graduação Silvio Luiz Stanzani.
Transcrição da apresentação:

1 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela O Simulador SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Prof. Dr. Cláudio Fernando Resin Geyer CMP157 – Programação distribuída e paralela paralela e

2 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Agenda Motivação  Vantagens da simulação SimGrid  Especificação da plataforma  Deployment  Módulos MSG GRAS SMPI SimDAG  Limitações Dificuldades para simular jogos MMG Implementação dos escalonadores Resultados obtidos

3 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Motivação Desenvolver aplicações concorrentes de larga escala impõe uma série de desafios:  Estimar o comportamento (tempo de execução) do código não é trivial  Experimentar aplicações de grid em ambientes reais de larga escala não é prático Requer que a aplicação esteja completamente funcional Limita o experimento ao cenário do grid em questão O tempo de experimentação pode ser muito grande É praticamente impossível repetir experimentos: grandes flutuações dos recursos

4 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Simulação Para resolver estes problemas, pode ser feita simulação por software  Tempo de simulação << Tempo de execução real  Problema: tipicamente, cada pesquisador costuma criar seu próprio simulador de aplicação  Utilização de um padrão de simulador permite comparação de resultados de diferentes trabalhos

5 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela SimGrid 1999: começou sendo desenvolvido por Henri Casanova, da UC at San Diego e Arnaud Legrand, da Escola de Lyon  Desenvolvimento do bloco mais básico: SG 2001: Arnaud construiu uma API sobre o SG, chamada de Meta-SG  Suporte a threads, comunicação assíncrona etc. 2003: Loris Marchal criou um modelo de rede adequado para grids 2006: Martin Quinson adicionou um módulo (GRAS) ao SimGrid, permitindo a implementação da aplicação real e uso do mesmo código para simulação Atualmente: é mantido em conjunto pela University of Hawai at Manoa, LIG Laboratory (Grenoble, France) and University of Nancy (France)

6 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela O SimGrid Permite especificar uma plataforma (em XML) a ser simulada  Nodos: CPU power  Links: latency e bandwidth  Rotas: entre dois nodos N1 e N2, uma seqüência de links forma a rota (deve ser especificada para cada par)  Tarefas: Custo de CPU e custo de NET Podem ser utilizados traces: descrições de como um recurso varia com o tempo Para retornar o resultado da simulação, não é necessário decorrer-se o tempo da execução real Permite gerar uma vasta gama de cenários diferentes

7 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Especificação da plataforma

8 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Deployment Especificação do papel de cada processo, assim como seus argumentos

9 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Módulos do SimGrid

10 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Módulo MSG Meta-SimGrid Módulo mais simples do SimGrid Permite efetuar simulações, sem necessariamente implementar a aplicação  Tarefas são criadas e enviadas aos escravos, sem maior detalhamento do quê fazem, especificamente Baseia-se no conceito de bag-of-tasks  Comunicação entre processos só pode ser feita através de envio de tarefas dummy com dados associados Não podem ser utilizadas em ambientes reais

11 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Módulo GRAS Grid Reality And Simulation Framework completo para desenvolvimento de aplicações para grid  Contém o simulador, para testar as aplicações  Contém funcionalidades que permitem a execução da aplicação em ambientes reais, sem mudar o código Permite que os processos se comuniquem  GRAS lida com a heterogeneidade da plataforma, convertendo os dados para o formato do destino  Permite uso de mensagens/sockets

12 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Módulo SMPI Ainda não implementado no SimGrid Permitirá o uso de códigos MPI prontos para efetuar simulações em grid Será, em resumo, uma emulação de ambiente paralelo sobre o qual poderá ser executado código MPI

13 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Módulo SimDAG Permite simulação de conjuntos de tarefas  A dependência entre tarefas é representada num DAG Primeiras versões do SimGrid se baseavam em DAGs  SG (antigo kernel) foi utilizado até o surgimento do SURF Há um vértice para cada tarefa, e um para cada comunicação, e as arestas apenas representam dependência

14 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Limitações É necessário work-around para simular sobrecarga de links  Foi usada uma composição de link_up da origem conectado a link_down do destino (e vice-versa) para que a banda de up ou down pudesse se esgotar MSG não dá suporte a comunicação entre processos (necessita de tarefas dummy) Exigência de se especificar a rota para cada par  Uma plataforma full-connected de 4000 nodos precisa de um XML de 2 GigaBytes Simulador é incapaz de processar um descritor de plataforma deste tamanho...

15 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Primeira tentativa Desejava-se simular um ambiente de jogo P2P MMG, mas isso não foi possível:  Não há suporte adequado para comunicação inter- processos no MSG (módulo de simulação pura)  MSG é baseado no bag-of-tasks  Jogos MMG tem até centenas de milhares de jogadores O simulador foi incapaz de processar arquivos de plataforma de 4000 nodos... Segunda tentativa: escalonador bag-of-tasks

16 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Implementação - Escalonador Problema:  Seja um vetor P de cpus e um vetor T de tarefas  Deseja-se designar cada tarefa a um processador, de forma a minimizar o tempo total de execução Utilizadas três abordagens:  Escalonador estático round-robin  Escalonador dinâmico  Escalonador com atribuição por ordem (com HEAP): CPUs: ordem decrescente de poder de processamento Tarefas: ordem decrescente de peso de cpu Módulo utilizado: MSG (simulação pura)

17 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Escalonador estático Percorre-se o vetor P, designando a cada cpu uma tarefa do vetor T Chegando-se ao final do P, volta-se ao início e continua-se designando tarefas a cada cpu Não é utilizado nenhum critério para decidir qual cpu deve receber qual tarefa  Apenas distribuem-se as tarefas de T ciclicamente entre os cpus em P

18 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Código-fonte: Round-Robin void scatter_tasks_rr (int number_of_tasks, m_task_t* todo, int slaves_count, m_host_t* slaves) { for (int i = 0; i < number_of_tasks; i++) { MSG_task_put (todo[i], slaves[i % slaves_count], PORT_22); } for (i = 0; i < slaves_count; i++) { MSG_task_put (MSG_task_create("finalize", 0, 0, FINALIZE), slaves[i], PORT_22); }

19 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Escalonador dinâmico Designe uma tarefa para cada cpu IDLE Enquanto todas estiverem BUSY, espere alguma ficar disponível e lhe delegue a próxima tarefa  CPUs mais rápidas receberão mais tarefas  Melhoria considerável do tempo de execução

20 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Código-fonte: Dinâmico for (i = 0; i < number_of_tasks; i++) { MSG_task_get(&request, TO_MASTER); requester = MSG_task_get_source (request); MSG_task_execute(request); //o processamento do pedido implica em um custo MSG_task_destroy(request); MSG_task_put(todo[i], requester, PORT_22); } for (i = 0 ; i < slaves_count; i++) { MSG_task_get(&request, TO_MASTER); MSG_task_execute(request); //o processamento do pedido implica em um certo custo de cpu/net requester = MSG_task_get_source (request); MSG_task_destroy(request); MSG_task_put(MSG_task_create("finalize", 0, 0, FINALIZE), requester, PORT_22); }

21 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Escalonador com HEAP Os vetores P e T são transformados em heaps, em que a raiz é o elemento com maior peso:  Para P, a raiz é a cpu mais rápida  Para T, a raiz é a tarefa mais pesada Extraia a raiz de T, designando a tarefa à raiz de P, que também será extraída  Continue extraindo Tarefas e CPUs, sempre dando a maior tarefa para a cpu mais rápida disponível  Quando uma cpu voltar a ser disponível, reinsira-a no heap de P Por causa desta reinserção, é que se utiliza HEAP e não simplesmente quicksort sobre o vetor

22 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Código-fonte: HEAP for (i = 0; i < number_of_tasks; i++) { while (MSG_task_Iprobe (TO_MASTER) || slaves_heap->last == -1) { MSG_task_get(&request, TO_MASTER); requester = MSG_task_get_source (request); heap_insert( (void*) requester, slaves_heap ); } heaviest_task = (m_task_t) heap_extractMax(tasks_heap); fastest_slave = (m_host_t) heap_extractMax(slaves_heap); MSG_task_put(heaviest_task, fastest_slave, PORT_22); } while (slaves_heap->last < slaves_count - 1) {//espera todos ficarem IDLE request = NULL; MSG_task_get(&request, TO_MASTER); requester = MSG_task_get_source (request); heap_insert( (void*) requester, slaves_heap ); } //manda FINALIZE para os escravos

23 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Tempo x Peso da Tarefa

24 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Tempo x Número de CPUs

25 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Tempo x Volume de comunicação de cada tarefa

26 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Conclusões Designar a tarefa mais pesada para o processador mais rápido aumenta consideravelmente a velocidade Ambos algoritmos dinâmicos foram muito melhores que o estático O SimGrid é um ótimo simulador, mas possui algumas restrições

27 / 27 Trabalho Final de PDP – SimGrid: apresentação e aplicação de exemplo Carlos Eduardo Benevides Bezerra Programação distribuída e paralela Referências SimGrid Site do SimGrid: CASANOVA, Henri. Simgrid: A Toolkit for the Simulation of Application Scheduling, Proc. of the 1st International Symposium on Cluster Computing and the Grid, Legrand, A. Marchal, L. Casanova, H. Scheduling distributed applications: the SimGrid simulation framework, Proc. of the 3rd International Symposium on Cluster Computing and the Grid, 2003.