Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan, noemi}@inf.puc-rio, [email protected] 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) 2 de 20 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 Authentication Globus Security Infrastructure Create Request Job Manager Parse RSL Library Monitor & control Allocate & create processes Process Process Process 3 de 20 Escalonadores Locais • • • • LSF (Load Sharing Facility) SGE (Sun Grid Engine) OpenPBS (Open Portable Batch System) Condor 4 de 20 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 5 de 20 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. 6 de 20 Linguagens interpretadas • Interatividade • Adaptação: as funções podem ser acrescentadas ou redefinidas dinamicamente • Portabilidade • Flexibilidade 7 de 20 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. 8 de 20 n00 n01 ALua Host RSL ALua Host Tarefa Globus/ALua host Host Carga n00.par 0 n03.par 0.2 n01.par 0.7 n02.par 0.77 ALua Host n02 ALua Host n03 9 de 20 Grid submission • globusrun -r server.par.inf.pucrio.br:/jobmanager-alua '&(executable=ls) (count=2)' 10 de 20 Escalonador Local Client Status/ cancel request Callback Job status/ cancel Job Request (RSL) GRAM Job ID Job ID control.lua Job description submit.lua Resource Manager Job Queue Job status/ cancel Status /cancel request Scheduling policies ALua Local Resource Manager Resource requirements Job scheduler Job dispatcher Resource alocation Task Manager Control, status, cancel Allocate and create processes Alua Daemon Alua Daemon Alua Daemon Monitor Processor Processor Monitor Monitor Monitoring information 11 de 20 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. 12 de 20 Lua Monitor • Exemplo: LuaMonitor:attachEventObserver({ notifyEvent=function(self, event) alua.send(taskManager,[[alarm()]])}, "CPUIncrease","$CPU:Increasing") 13 de 20 Grid submission • globusrun -r server.par.inf.pucrio.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_STA TE_ PENDING 14 de 20 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_P ENDING GLOBUS_GRAM_PROTOCOL_JOB_STATE_A CTIVE GLOBUS_GRAM_PROTOCOL_JOB_STATE_D ONE 15 de 20 Problemas • Segurança – 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!) 16 de 20 Resultados experimentais 17 de 20 Conclusões e Trabalhos futuros • Console • Permitir comunicações entre processos executando em diferentes sites • Escalonamento global (Meta escalonamento) • Testar com aplicações reais 18 de 20 Mais informações • “Managing jobs with an interpreted language for dynamic adaptation”, MGC2005 • http://alua.inf.puc-rio.br 19 de 20 Fim 20 de 20