{anolan, noemi}@inf.puc-rio, schulze@lncc.br Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan, noemi}@inf.puc-rio,

Slides:



Advertisements
Apresentações semelhantes
Programação de jogos MMO com DALua
Advertisements

Desempenho da Computação Paralela em Ambientes Virtualizados
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Noções de Sistemas Operacionais
Sistemas Distribuídos
Etienne C. R de Oliveira Redes Avançadas para Computação em Grade
Arquiteturas Diferentes
Chapter 4: Threads.
Algoritmo de Escalonamento para Aplicações em uma Grade Computacional Extensível aos Receptores Digitais de Televisão Bruno Guazzelli Batista Orientadora:
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Grids Computacionais: Arquiteturas, Tecnologias e Aplicações
Distributed Computing in Practice: The Condor Experience
QoS para Realidade Virtual
Silberschatz and Galvin Operating System Concepts Unidade 1: Introdução O que é um sistema operacional? Systemas simples em lote (batch) Sistemas.
Processos Conceitos Básicos.
Estruturas de Controle
Simple Network Management Protocol (SNMP)
Prof. Alexander Roberto Valdameri
Escalonamento em Grade Patrícia Kayser Vargas Mangan
Tutorial Condor Juliano Freitas da Silva
GERENCIAMENTO DE REDES
Programação Distribuída Jorge Surian Programa da Disciplina.
09/03/10 20:13 Claudio de Oliveira – 1/21.
Claudio de Oliveira – Gerência do Processador 09/03/10 20:13 Claudio de Oliveira –
Gerência de Redes Áreas Funcionais de Gerenciamento
Experiments with Strassen’s Algorithm: from sequential to parallel
Instituto de Engenharia de Sistemas e Computadores Investigação e Desenvolvimento em Lisboa technology from seed L 2 F - Spoken Language Systems Laboratory.
Mobilidade Cláudia Ribeiro.
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. SeverinoPOD XtremWeb Felipe L. Severino Programação com Objetos Distribuídos paralela e.
1 Felipe L. SeverinoPDP Enhancing Grids for Massively Multiplayer Online Computer Games Felipe L. Severino Programação com Objetos Distribuídos paralela.
Introdução a Programação Orientada a Objetos
Middleware e Sistemas Distribuídos
Sejam bem vindos! Arquitetura de Sistemas Operacionais.
Programação Distribuída e Paralela
Segurança em Grades Computacionais
Implantação de um Centro de Processamento de Alto Desempenho sobre recursos não-dedicados Andamento das atividades Abmar Barros.
SISTEMAS OPERACIONAIS
Sistemas Distribuídos
Sistemas Operacionais
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Sistemas Distribuídos
Linhas de Pesquisa FRAMESEC
Gerenciamento de Redes Utilizando Agentes Móveis
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.
Modelo GRAND: Gerenciamento de Aplicações em Ambiente de Grade Patrícia Kayser Vargas Mangan
Sistemas Distribuídos Introdução. Conceito Coleção de múltiplos processos que executam sobre uma coleção de processadores autônomos interligados em uma.
Computação L1: Infra-Estrutura Básica
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Segurança e Auditoria de Sistemas
Introdução à Computação em Grade Porto Alegre, Maio/2006 Centro Nacional de Supercomputação CESUP/RS Realização: Projeto GradeUFRGS Material pertencente.
1 Uma proposta para migração de páginas no Linux Guilherme A. A. Tesser (HP/PUCRS) Avelino F. Zorzo (PUCRS) PUCRS/HP – Porto Alegre - Brazil.
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.
Linguagem de Programação IV Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Seminário CI303 Lucas Nascimento Ferreira. Data sharing service: Propriedades Persistência Independentemente da aplicação Permitir o reutilização dos.
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROJETO FINAL
1 BSP no InteGrade II WorkShop do InteGrade c. 2 Objetivo O principal objetivo é permitir que aplicações BSP sejam executadas no InteGrade sem ou com.
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
1 Gerenciamento de Recursos em Sistemas de Grande Escala Jeferson R. Marques Fabio Kon Departamento de Ciência da Computação IME-USP
Monarc Framework para Simulações Disciplina: Programação Distribuída e Paralela Alunos: Anderson Bestteti e Rafael Zancan Frantz Professor: Cláudio Fernando.
Condor Services for the Global Grid: Interoperability between Condor and OGSA Clovis Chapman et al Proceedings of the 2004 UK e-Science All Hands.
InteGrade: Arquitetura e estado atual do código II Workshop do InteGrade (São Paulo, de Janeiro de 2004) Andrei Goldchleger
Distributed Data-Parallel Computing Using a High-Level Programming Language TL1 Programação com Objetos Distribuídos Claiton Luiz Vieira Lisboa.
Roteiro Introdução Arquitetura Características Algoritmos de Escalonamento Tipos de Grades Projetos Aplicações Conclusão Perguntas Thiago Soares de Carvalho.
Grades Computacionais Redes de Computadores II Thiago Soares de Carvalho Professores Luís Henrique M. K. Costa Otto Carlos M. B. Duarte 2007.
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
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:

{anolan, noemi}@inf.puc-rio, schulze@lncc.br Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan, noemi}@inf.puc-rio, schulze@lncc.br

Motivação Desenvolver um mecanismo para a alocação de recursos para trabalhos computacionais submetidos através da grade. Endereçamento Virtual (para clusters com endereçamento virtual, sem Globus, permitir a submissão de jobs usando um mecanismo simples e pouco pesado)

Componentes do Globus GRAM GRAM Client MDS client API calls to locate resources MDS Update MDS with resource state information GRAM client API calls to request resource allocation and process creation. Site boundary GRAM Reporter Query current status of resource Local Resource Manager Gatekeeper Create Allocate & create processes Request Authentication Job Manager Process Globus Security Infrastructure Parse Monitor & control Process RSL Library Process

Escalonadores Locais LSF (Load Sharing Facility) SGE (Sun Grid Engine) OpenPBS (Open Portable Batch System) Condor

Características comuns Oferecem checkpointing e migração de processos Balanceamento dinâmico de carga (fundamentalmente por migração de processos) Autenticação e autorização Daemon fault recovery Staging Authentication is the mechanism whereby systems may securely identify their users. Authentication systems provide an answers to the questions: Who is the user? Is the user really who he/she represents himself to be? Authorization, by contrast, is the mechanism by which a system determines what level of access a particular authenticated user should have to secured resources controlled by the system.

Requerimentos de adaptabilidade no Grid Barreiras administrativas Considerável variabilidade no uso dos recursos Aplicações de longa vida demandam atuar durante a execução (adaptação dinâmica/checkpointing?) O balanceamento da carga e a tolerância a falhas são problemas fundamentais em ambientes Grid.

Linguagens interpretadas Interatividade Adaptação: as funções podem ser acrescentadas ou redefinidas dinamicamente Portabilidade Flexibilidade

ALua Mecanismo de comunicação baseado em eventos para programação paralela e distribuída em Lua. Aplicações ALua são compostas por vários processos rodando em diferentes máquinas que se comunicam através de mensagens As mensagens são chunks de código que será executado pelo receptor. O código pode estar escrito em Lua ou C. Concorrência Single thread. As mensagens são executadas seqüencialmente em um loop de eventos. http://alua.inf.puc-rio.br ALua implements an event-driven communication mechanism based on the interpreted language Lua. ALua takes advantage of the interpreted nature of Lua to define messages as chunks of code which are executed by the receiver. ALua's communication model, in which messages are regarded as chunks of Lua code, provides support for what is called weak code mobility: the ability of an execution unit in a site to be bound dynamically to code coming from a different site (see Understanding Code Mobility for more information about code mobility). Like other distributed environments, an application in ALua is composed by a group of processes (also called agents) running in multiple hosts and communicating through a network. Unlike other distributed environments, the code of each process in ALua can be written in two languages: C and Lua.

Host Carga n00.par n03.par 0.2 n01.par 0.7 n02.par 0.77 n00 n01 ALua Host ALua Host RSL Globus/ALua host Tarefa ALua Host ALua Host Host Carga n00.par n03.par 0.2 n01.par 0.7 n02.par 0.77 n02 n03

Grid submission globusrun -r server.par.inf.puc-rio.br:/jobmanager-alua '&(executable=ls) (count=2)'

Escalonador Local GRAM ALua Local Resource Manager Client control.lua Job status/ cancel Status/ cancel request Callback Job Request (RSL) GRAM Job ID Job ID Job description control.lua submit.lua ALua Local Resource Manager Resource Manager Job status/ cancel Status /cancel request Job Queue Scheduling policies Resource requirements Job dispatcher Job scheduler Resource alocation Task Manager Monitoring information Control, status, cancel Allocate and create processes Monitor Alua Daemon Processor Processor

Notification engine (Lua Monitor) Sistema de monitoração extensivel escrito em Lua Baseado em Propriedades: parâmetros a serem observados, Aspectos: permite especificar determinado comportamento da propriedade, Observadores: especifica as propriedades/aspectos de interesse e um callback para receber notificações da ocorrência do evento.

Lua Monitor Exemplo: LuaMonitor:attachEventObserver({ notifyEvent=function(self, event) alua.send(taskManager,[[alarm()]])}, "CPUIncrease","$CPU:Increasing")

Grid submission globusrun -r server.par.inf.puc-rio.br:/jobmanager-alua '&(executable=ls) (count=1)' globus_gram_client_callback_allow successful lua submit.lua exec 1 ls GRAM Job submission successful GLOBUS_GRAM_PROTOCOL_JOB_STATE_ PENDING

Grid submission globusrun -r server.par:/jobmanager-alua '&(executable=ver00) (count=1) (jobType="mpi") (arguments="11 1 0 0 0 285615")' globus_gram_client_callback_allow successful GRAM Job submission successful GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE Executing os.execute('lamboot -v -ssi boot globus /tmp/hostfile0;mpirun -v -D -sa /tmp/execfile0;lamclean -v') print('To execute commanded by taskmanager:0 in 139.82.36.124:6080:4');local status=os.execute('lamboot -v -ssi boot globus /tmp/hostfile0;mpirun -v -D -sa /tmp/execfile0;lamclean -v');print('finished, to alua master status=',status);alua.send('taskmanager:0',"jobmgr.job_finished(0,'139.82.36.124:6080:4');alua.leave(0);alua.exit()") To execute commanded by taskmanager:0 in 139.82.36.124:6080:4 LAM 7.0.6/MPI 2 C++/ROMIO - Indiana University n-1<7594> ssi:boot:base:linear: booting n0 (n44.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n1 (n48.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n2 (n40.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n3 ( server.par.inf.puc-rio.br) Printing state Retorno ACTIVE n-1<7594> ssi:boot:base:linear: finished 31471 /home/local/anolan/ver00 running on n0 31633 /home/local/anolan/ver00 running on n1 31782 /home/local/anolan/ver00 running on n2 mpirun: n2 31782 0 0 mpirun: n1 31633 0 0 Tempo p/encontrar o Alvo=0.282 Tempo de Execucao Total=0.313 Alvo=240136 mpirun: n0 31471 0 0 killing processes, done closing files, done sweeping traces, done cleaning up registered objects, done sweeping messages, done finished, to alua master status=        0 139.82.36.124:6080:4    is over proc_count is over      1       1       Im      taskmanager:0 Printing state Retorno DONE

Problemas Segurança Escalabilidade Desempenho Execução no loop de eventos não tem autenticação Jobs executados com os direitos do Resource Manager Escalabilidade Interconexão dos daemons Desempenho Linguagem interpretada (troca por mais flexibilidade). (Precisa avaliação quantitativa das perdas reais no modelo de programação dual!)

Resultados experimentais

Conclusões e Trabalhos futuros Console Permitir comunicações entre processos executando em diferentes sites Escalonamento global (Meta escalonamento) Testar com aplicações reais

Mais informações “Managing jobs with an interpreted language for dynamic adaptation”, MGC2005 http://alua.inf.puc-rio.br

Fim