Title: Gerenciando dinamicamente a execu
1Gerenciando dinamicamente a execução de tarefas
com uma linguagem interpretada
- anolan, noemi_at_inf.puc-rio,
- schulze_at_lncc.br
2Motivaçã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)
3Componentes 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
Job Manager
Authentication
Process
Globus Security Infrastructure
Parse
Monitor control
Process
RSL Library
Process
4 Escalonadores Locais
- LSF (Load Sharing Facility)
- SGE (Sun Grid Engine)
- OpenPBS (Open Portable Batch System)
- Condor
5Caracterí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
6Requerimentos 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.
7Linguagens interpretadas
- Interatividade
- Adaptação as funções podem ser acrescentadas ou
redefinidas dinamicamente - Portabilidade
- Flexibilidade
8ALua
- 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.
9n00
n01
RSL
Tarefa
Host Carga
n00.par 0
n03.par 0.2
n01.par 0.7
n02.par 0.77
n02
n03
10Grid submission
- globusrun -r server.par.inf.puc-rio.br/jobmanager
-alua '(executablels) (count2)'
11Escalonador Local
Client
GRAM
submit.lua
control.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
12Notification 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.
13Lua Monitor
- Exemplo
- LuaMonitorattachEventObserver(notifyEventfu
nction(self, event)
alua.send(taskManager,alarm()),"CP
UIncrease","CPUIncreasing")
14Grid submission
- globusrun -r server.par.inf.puc-rio.br/jobmanager
-alua '(executablels) (count1)'globus_gram_cli
ent_callback_allow successful - lua submit.lua exec 1 ls
- GRAM Job submission successfulGLOBUS_GRAM_PROTOCO
L_JOB_STATE_ PENDING
15Grid submission
- globusrun -r server.par/jobmanager-alua
'(executablever00) (count1) (jobType"mpi")
(arguments"11 1 0 0 0 285615")'globus_gram_clien
t_callback_allow successfulGRAM Job submission
successfulGLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING
GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVEGLOBUS_GRAM_
PROTOCOL_JOB_STATE_DONE
16Problemas
- 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!)
17Resultados experimentais
18Conclusões e Trabalhos futuros
- Console
- Permitir comunicações entre processos executando
em diferentes sites - Escalonamento global (Meta escalonamento)
- Testar com aplicações reais
19Mais informações
- Managing jobs with an interpreted language for
dynamic adaptation, MGC2005 - http//alua.inf.puc-rio.br
20Fim