Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada
description
Transcript of 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,
2 de 20
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 de 20
Componentes do Globus GRAM
Globus SecurityInfrastructure
Job Manager
GRAM client API calls to request resource allocation
and process creation.
MDS client API callsto locate resources
Query current statusof resource
Create
RSL Library
Parse
RequestAllocate &
create processes
Process
Process
Process
Monitor &control
Site boundary
GRAM Client MDS
Gatekeeper
GRAM Reporter
Local Resource Manager
Update MDS with resource state information
Authentication
4 de 20
Escalonadores Locais
• LSF (Load Sharing Facility)
• SGE (Sun Grid Engine)
• OpenPBS (Open Portable Batch System)
• Condor
5 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
6 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.
7 de 20
Linguagens interpretadas
• Interatividade
• Adaptação: as funções podem ser acrescentadas ou redefinidas dinamicamente
• Portabilidade
• Flexibilidade
8 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.
9 de 20
Globus/ALua host
ALua Host
ALua Host ALua Host
ALua Host
Tarefa
RSL
Host Carga
n00.par 0
n03.par 0.2
n01.par 0.7
n02.par 0.77
n00 n01
n02 n03
10 de 20
Grid submission
• globusrun -r server.par.inf.puc-rio.br:/jobmanager-alua '&(executable=ls) (count=2)'
11 de 20
Escalonador Local
submit.lua
Job Queue
Task Manager
GRAM
Job dispatcher
Monitoring information
Job description
Allocate and create processes
Control, status, cancel
Processor
Resource alocation
Job scheduler
control.lua
Job status/ cancel
Job Request (RSL)Callback
Client
Job status/ cancel
Status/ cancel request
Job ID
Status /cancel request
Resource Manager
Resourcerequirements
Scheduling policies
ALua Local Resource Manager
Monitor
Alua Daemon
Monitor
Alua Daemon
Monitor
Alua Daemon
Processor
Job ID
12 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.
13 de 20
Lua Monitor
• Exemplo:
LuaMonitor:attachEventObserver({notifyEvent=function(self, event) alua.send(taskManager,[[alarm()]])},"CPUIncrease","$CPU:Increasing")
14 de 20
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
15 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 successfulGRAM Job submission successfulGLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDINGGLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVEGLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE
16 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!)
17 de 20
Resultados experimentais
18 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
19 de 20
Mais informações
• “Managing jobs with an interpreted language for dynamic adaptation”, MGC2005
• http://alua.inf.puc-rio.br
20 de 20
Fim