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
Download

Slide 1 - PUC-Rio