1 / 31

Curso de Grid Computing Globus GRAM

Curso de Grid Computing Globus GRAM. Autoria. Autores Rodrigo Real Local Instituto de Informática, UFRGS 1a versão 2003, curso projeto Dell Revisões v1,v2 Novembro de 2005 C. Geyer. Sumário. Sumário Conceitos Comandos. Bibliografia. GRAM A Globus Primer. Autor: Ian Foster (?)

Download Presentation

Curso de Grid Computing Globus GRAM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Curso de Grid ComputingGlobus GRAM

  2. Autoria • Autores • Rodrigo Real • Local • Instituto de Informática, UFRGS • 1a versão • 2003, curso projeto Dell • Revisões • v1,v2 • Novembro de 2005 • C. Geyer

  3. Sumário • Sumário • Conceitos • Comandos

  4. Bibliografia • GRAM • A Globus Primer. Autor: Ian Foster (?) • www.globus.org/toolkit/docs/4.0/key/GT4_Primer_0.6.pdf • Seção 4 • Docs • http://www.globus.org/toolkit/docs/4.0/execution/ • Apresentações • http://www.globus.org/toolkit/presentations/ • GT2.4 • http://www-unix.globus.org/api/c-globus-2.4/globus_gram_documentation/html/

  5. GRAM: conceitos básicos • Ferramentas para gerência de execuções • Disparo • Monitoramento • Gerência • Escalonamento • Coordenação de computações remotas • GRAM: Resource Allocation and Management service • Interface como mecanismo básico para as funções acima • Usualmente instalado junto com outros serviços para delegação, monitoramento e gerência

  6. GRAM: conceitos básicos • Ferramentas associadas • Escalonadores para clusters ou redes locais • OpenPBS, Condor, Torque, SGE, LSF, ... • Interfaces para computadores remotos e modelos de programação • Condor-G, DAGMan, MPICH-G2, GriPhyN VDS, Nimrod-G • Metaescalonadores • Maui, CSF • GRAM não é um escalonador

  7. GRAM: conceitos básicos • Tabela 2 no [GT4 Primer]: componentes do GT4 • Maturidade dos componentes • 3: instalado em muitas grades • 2: instalado várias vezes (“prometedor”) • 1: poucas vezes instalado • Tipos conforme obrigatoriedade • T: faz parte do “Core Toolkit” do GT4 • C: componente adicional, membro do GT4 • Y: de 3os, compatível com GT4 • N: de 3os, ainda não compatível, mas pretende-se

  8. GRAM: conceitos básicos • GRAM e WS • GT4 oferece um conjunto de WS para • Submeter jobs • Monitorar execução de jobs • Cancelar jobs • GRAM • Nome usualmente dado ao conjunto acima de WS • Ou WS-GRAM para distinguir dos predecessores • Uso de técnicas de WSRF e notificação WS • WSRF: • WS Resource Framework • Trabalho conjunto Globus e IBM • GRAM deve evoluir conforme evolução de padrões, ...

  9. Revisão do Gerenciamento de Recursos • RSL é usada para comunicar os requisitos; • A API do GRAM permite que programas sejam iniciados em recursos remotos; • Uma arquitetura em camadas permite o uso de resource brokers especializados e de co-allocadores (e.g. DUROC).

  10. MDS: Grid Index Info Server Client MDS: Grid Resource Info Server Globus Security Infrastructure Local Resource Manager Gatekeeper Os componentes do GRAM Obs:GT2 MDS client API calls to locate resources Site boundary MDS client API calls to get resource info GRAM client API calls to request resource allocation and process creation. Query current status of resource GRAM client API state change callbacks Allocate & create processes Request Job Manager Create Process Parse Monitor & control Process RSL Library Process

  11. As APIs de Gerenciamento de Recursos APIs para RSL, GRAM, e DUROC: globus_rsl globus_gram_client globus_gram_myjob globus_duroc_control globus_duroc_runtime Obs: Duroc foi desativado (ao menos no GT4)

  12. Resource Specification Language Grande parte do poder do GRAM está na RSL Linguagem comum para especificação de requisição de jobs Serviço do GRAM traduz esta especificação comum na especificação de um escalonador específico (PBS, Condor, etc) GRAM usa um conjunto da RSL composto de pares (atributo=valor) E.g. &(executable=''bin/ls'')(arguments=''-l'') GRAM service understands a well defined set of attributes

  13. GRAM: exemplos O cliente GRAM globus-job-run integra serviço do GASS para staging de executáveis e para redirecionamento de I/O, através da linha de comando ao invés de usar a RSL. GASS: Global Access to Secondary Storage % globus-job-run dijsktra.inf.ufrgs.br /bin/ls % globus-job-run dijsktra.inf.ufrgs.br –s myprog % globus-job-run dijsktra.inf.ufrgs.br \ –s myprog –stdin –s in.txt –stdout –s out.txt

  14. GRAM: exemplos O globusrun é um cliente mais integrado à proposta Globus e permite o uso de expressões mais complexas utilizando a RSL % globusrun –r dijsktra.inf.ufrgs.br –f myjob.rsl % globusrun –r dijsktra.inf.ufrgs.br \ ‘&(executable=myprog)’

  15. globus_gram_client globus_gram_client_job_request() Submete um trabalho para um recurso remoto Entrada: String de contato com o gerenciador de recursos RSL especificando o trabalho a ser executado String de contato para notificações (Callback) Saída: String de contato com o trabalho (job contact)

  16. Acessando o Gatekeeper globus_gram_client_job_request() necessita de uma string de contato com o gerenciador de recursos para localizar o gatekeeper hostname[:port][/service][:subject] Hostname - gatekeeper Port – porta na qual o gatekeeper está escutando (default: 2119) Service – serviço do gatekeeper a ser invocado (default: jobmanager) Subject – nome certificado do gatekeeper (default: “…/cn=host/hostname”

  17. Job Contact globus_gram_client_job_request() returna um job contact String Opaca Outras funções globus_gram_client_*() usam o job contact para encontrar o correto gerenciador de jobs para o qual as requisições devem ser encaminhadas Esta string pode ser passada entre os processos, mesmo que em diferentes máquinas

  18. globus_gram_client globus_gram_client_job_status() Verifica o estado do job UNSUBMITTED, PENDING, ACTIVE, FAILED, DONE, SUSPENDED Pode também acessar o estado dos jobs através de callbacks globus_gram_client_callback_{allow,disallow,check}() globus_gram_client_job_cancel() Cancela/mata um job pendente ou ativo

  19. globus_gram_client • globus_gram_client_job_signal() • Controla o jobmanager • COMMIT_REQUEST* • Submete um job • COMMIT_END* • Encerra e libera os recursos de um job • COMMIT_EXTEND* • Aguarda n segundos para jobs com(two_phased=yes)

  20. globus_gram_client globus_gram_client_job_signal(), (cont.) STDIO_UPDATE Permite que o cliente envie uma RSL que altere os atributos de I/O do job stdout, stderr, stdout_position, stderr_position, remote_io_url STDIO_SIZE Verifica se o stream de I/O foi completamente recebido STOP_MANAGER Solicita ao gerenciador que se encerre, mas deixe o job executando

  21. Callbacks de Alterações de Estado Um job gerenciado pelo GRAM pode estar em um dos estados: Unsubmitted, Pending, Active, Failed, Done, Suspended

  22. Callbacks de Alterações de Estado • O cliente GRAM pode se registrar para chamadas assíncronas de alterações de estado (callbacks) • Registro pode ser feito durante a submissão • globus_gram_client_job_request() • O registro pode ser feito também após a submisão, usando o job contact • globus_gram_client_job_callback_register()

  23. globus_gram_client globus_gram_client_callback_allow()globus_gram_client_callback_disallow()globus_gram_client_callback_check() Cria/Destrói a porta do cliente que escuta os callbacks de mudanças de estado Cria callback para uma função local na mudança de estado

  24. globus_gram_client • globus_gram_client_job_callback_register()globus_gram_client_job_callback_unregister() • Registra com o job manager para o recebimento de callbacks

  25. Revisão do DUROC Alocação simultânea de um conjunto de recursos Manipulada pela co-alocação otimista baseada em nodos livres, ou predição das filas No futuro deverá ser adicionado suporte para reservas O globusrun deverá ser capaz de co-alocar requisições múltiplas (multi-request) usando o Dynamically Updated Request Online Co-allocator (DUROC)

  26. Uma Co-alocação com múltiplas requisições Different resource managers Different counts Different executables +( & (resourceManagerContact= *** “flash.isi.edu:2119/jobmanager-lsf:/O=Grid/…/CN=host/flash.isi.edu”) (count=1) (label="subjob A") (executable= my_app1) ) ( & (resourceManagerContact= ***“sp139.sdsc.edu:2119:/O=Grid/…/CN=host/sp097.sdsc.edu") (count=2) (label="subjob B") (executable=my_app2) )

  27. globus_duroc_control Submissão de uma multi-request Edição de uma requisição pendente Inicialização da computação Biblioteca Bootstrap Monitor and control collection

  28. globus_duroc_runtime globus_duroc_runtime_barrier() Todos processos em um job DUROC devem fazer esta chamada Deve esperar até o módulo de controle do DUROC liberar todos processos globus_duroc_runtime_inter_subjob_*() globus_duroc_runtime_intra_subjob_*()

  29. Arquivo do Gerenciador de Jobs GRIS Client Job status Jobmanager Gatekeeper JOB UP Scheduler Desc. Exe=x Args=y Env=z UP Staged EXE stdout Staged stdin stderr monitoring Submission X509_USER_PROXY GASS_CACHE

  30. Resource Broker O Globus Toolkit não inclui um resource broker ou um metascheduler! Resource brokers disponíveis atualmente: Condor-G, DRM, PUNCH, Nimrod/G, Cactus, AppLeS,

  31. Curso de Grid Computing

More Related