A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "{anolan, noemi}@inf.puc-rio, schulze@lncc.br Gerenciando dinamicamente a execução de tarefas com uma linguagem interpretada {anolan, noemi}@inf.puc-rio,"— Transcrição da apresentação:

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

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
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 Create Allocate & create processes Request Authentication Job Manager 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

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 Authentication is the mechanism whereby systems may securely identify their users. Authentication systems provide an answers to the questions: Who is the user? Is the user really who he/she represents himself to be? Authorization, by contrast, is the mechanism by which a system determines what level of access a particular authenticated user should have to secured resources controlled by the system.

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. ALua implements an event-driven communication mechanism based on the interpreted language Lua. ALua takes advantage of the interpreted nature of Lua to define messages as chunks of code which are executed by the receiver. ALua's communication model, in which messages are regarded as chunks of Lua code, provides support for what is called weak code mobility: the ability of an execution unit in a site to be bound dynamically to code coming from a different site (see Understanding Code Mobility for more information about code mobility). Like other distributed environments, an application in ALua is composed by a group of processes (also called agents) running in multiple hosts and communicating through a network. Unlike other distributed environments, the code of each process in ALua can be written in two languages: C and Lua.

9 Host Carga n00.par n03.par 0.2 n01.par 0.7 n02.par 0.77 n00 n01
ALua Host ALua Host RSL Globus/ALua host Tarefa ALua Host ALua Host Host Carga n00.par n03.par 0.2 n01.par 0.7 n02.par 0.77 n02 n03

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

11 Escalonador Local GRAM ALua Local Resource Manager Client control.lua
Job status/ cancel Status/ cancel request Callback Job Request (RSL) GRAM Job ID Job ID Job description control.lua submit.lua ALua Local Resource Manager Resource Manager Job status/ cancel Status /cancel request Job Queue Scheduling policies Resource requirements Job dispatcher Job scheduler Resource alocation Task Manager Monitoring information Control, status, cancel Allocate and create processes Monitor Alua Daemon Processor 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 successful GLOBUS_GRAM_PROTOCOL_JOB_STATE_ PENDING

15 Grid submission globusrun -r server.par:/jobmanager-alua '&(executable=ver00) (count=1) (jobType="mpi") (arguments=" ")' globus_gram_client_callback_allow successful GRAM Job submission successful GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE Executing os.execute('lamboot -v -ssi boot globus /tmp/hostfile0;mpirun -v -D -sa /tmp/execfile0;lamclean -v') print('To execute commanded by taskmanager:0 in :6080:4');local status=os.execute('lamboot -v -ssi boot globus /tmp/hostfile0;mpirun -v -D -sa /tmp/execfile0;lamclean -v');print('finished, to alua master status=',status);alua.send('taskmanager:0',"jobmgr.job_finished(0,' :6080:4');alua.leave(0);alua.exit()") To execute commanded by taskmanager:0 in :6080:4 LAM 7.0.6/MPI 2 C++/ROMIO - Indiana University n-1<7594> ssi:boot:base:linear: booting n0 (n44.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n1 (n48.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n2 (n40.par.inf.puc-rio.br) n-1<7594> ssi:boot:base:linear: booting n3 ( server.par.inf.puc-rio.br) Printing state Retorno ACTIVE n-1<7594> ssi:boot:base:linear: finished /home/local/anolan/ver00 running on n /home/local/anolan/ver00 running on n /home/local/anolan/ver00 running on n2 mpirun: n mpirun: n Tempo p/encontrar o Alvo=0.282 Tempo de Execucao Total=0.313 Alvo= mpirun: n killing processes, done closing files, done sweeping traces, done cleaning up registered objects, done sweeping messages, done finished, to alua master status=         :6080:4    is over proc_count is over      1       1       Im      taskmanager:0 Printing state Retorno DONE

16 Problemas Segurança Escalabilidade Desempenho
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

20 Fim


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

Apresentações semelhantes


Anúncios Google