1 / 20

Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada

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.

cheri
Download Presentation

Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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)

  3. 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

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

  5. 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

  6. 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.

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

  8. 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.

  9. ALua Host ALua Host ALua Host ALua Host Globus/ALua host n00 n01 RSL Tarefa n02 n03

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

  11. 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

  12. 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.

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

  14. 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

  15. 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

  16. 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!)

  17. Resultados experimentais

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

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

  20. Fim

More Related