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

20
Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan, noemi}@inf.puc- rio, [email protected]

description

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. - PowerPoint PPT Presentation

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

Page 1: 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,

[email protected]

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

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)

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

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

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

4 de 20

Escalonadores Locais

• LSF (Load Sharing Facility)

• SGE (Sun Grid Engine)

• OpenPBS (Open Portable Batch System)

• Condor

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

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

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

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.

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

7 de 20

Linguagens interpretadas

• Interatividade

• Adaptação: as funções podem ser acrescentadas ou redefinidas dinamicamente

• Portabilidade

• Flexibilidade

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

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.

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

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

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

10 de 20

Grid submission

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

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

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

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

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.

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

13 de 20

Lua Monitor

• Exemplo:

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

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

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

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

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

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

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

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

17 de 20

Resultados experimentais

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

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

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

19 de 20

Mais informações

• “Managing jobs with an interpreted language for dynamic adaptation”, MGC2005

• http://alua.inf.puc-rio.br

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

20 de 20

Fim