200 likes | 320 Views
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.
E N D
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 MDS client API calls to locate resources GRAM Client 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 Parse Globus Security Infrastructure 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
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.
ALua Host ALua Host ALua Host ALua Host Globus/ALua host n00 n01 RSL Tarefa n02 n03
Grid submission • globusrun -r server.par.inf.puc-rio.br:/jobmanager-alua '&(executable=ls) (count=2)'
Status/ cancel request Job status/ cancel Job Request (RSL) Callback Job ID Job ID Job description Status /cancel request Job status/ cancel Alua Daemon Alua Daemon Alua Daemon Processor Monitor Monitor Monitor Escalonador Local Client GRAM control.lua submit.lua ALua Local Resource Manager Resource Manager Job Queue Scheduling policies Resource requirements Job scheduler Job dispatcher Resource alocation Monitoring information Task Manager Allocate and create processes Control, status, cancel 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 successfulGLOBUS_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 successfulGRAM Job submission successfulGLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDINGGLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVEGLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE
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!)
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