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

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

Curso de Grid Computing

Apresentações semelhantes


Apresentação em tema: "Curso de Grid Computing"— Transcrição da apresentação:

1 Curso de Grid Computing

2 Sumário Introdução ao Globus RSL Objetivos e links Globus Toolkit
Serviços Arquitetura Versões RSL Introdução Sintaxe RSL Caracteres Especiais RSL Semânticas de Substituição RSL Atributos RSL Exemplos RSL

3 Autoria Autores Rodrigo Real, Luciano Cavalheiro, Alberto Egon (RSL) Local Instituto de Informática, UFRGS 1a versão 2003, curso projeto Dell Revisões v2 Novembro de 2005 C. Geyer

4 Globus: o que é? Objetivos Locais Ian Foster e Carl Kesselman
Modelo, arquitetura, protocolos, API, ... Protótipo: Globus (Metacomputing) Toolkit Avaliação de aplicações reais GUSTO (testbed) Locais Argonne, DOE, Chicago Caltech e USC (Los Angeles, CA) Ian Foster e Carl Kesselman Um dos mais usados e referenciados Confunde-se com Grid (arquitetura) Projetos europeus: uso do Globus

5 Globus: o que é? Alguns princípios Objetivos de 1998
Desenvolver um toolkit para grades Instalar com o toolkit uma grade (“grande”) para testes GUSTO Desenvolver, instalar e testar (o principal) aplicações reais na grade de teste Palavras chaves (1998) Acesso pervasivo Adaptação aos aspectos dinâmicos da grade Pelo mw e/ou pela aplicação APIs não opacas (não transparentes): translúcidas Diferenças entre local e remoto

6 Globus: links Links do Globus www.globus.org
Geral Globus Toolkit 4.0 Release Manuals Apresentações Classificadas por tema, com resumo guide_gt3.html Dicas para migração do GT 3 para GT 4

7 Globus Toolkit O Globus Toolkit é
um conjunto de serviços de software destinados à construção de Grids computacionais e aplicações para Grid

8 Globus Toolkit O toolkit trabalha com questões de segurança,
descoberta de informações, gerenciamento de recursos, gerenciamento de dados, comunicações, detecção de falhas e portabilidade.

9 Resumo dos serviços Globus

10 Globus: arquitetura (v2/3)
aplicações paralelas/distribuídas (ex. SF-Express) Globus Metacomputing Toolkit (GMT) Gerência de recursos (GRAM - DUROC, RSL) Acesso remoto a dados (GASS, GridFTP, RIO) Gerência de executáveis (GEM) Segurança e autenticação (GSI) Informação (MDS,GRIS, GIIS) Monitoramento (HBM) Comunicação (Nexus) Internet/Rede de comunicação cluster GUSTO NASA IPG NPACI Data Grid

11 Globus: Serviços Localização e alocação de recursos Autenticação
Serviço de Informações Acesso a Dados Comunicação Criação de Processos Monitoramento de Processos

12 Globus: Serviços Principais grupos de serviços Conforme GT4_Primer
Versão de maio de 2005 Em andamento (draft) Grupos de serviços Gerência de execução: GRAM e relacionados Gerência de dados: GridFTP, ... Monitoramento e descoberta: MDS4 Segurança: GSI, ...

13 Globus: histórico Versões Relacionamentos com outros mw v1
v2: muito citada e usada v3: introduz Web Services v4: recomendada no lugar da v3 Relacionamentos com outros mw Muitos trabalhos em andamento Muitos trabalhos de 3os Documentação com “buracos” Muitas siglas

14 Globus: histórico Organizações Hoje vários chapéus Principal Outros
Globus Alliance “acadêmico”, pesquisa Outros Comerciais, industriais

15 Resource Specification Language (RSL)

16 Roteiro Introdução Sintaxe RSL Caracteres Especiais RSL
Semânticas de Substituição RSL Atributos RSL Exemplos RSL

17 Introdução Globus Resource Specification Language (RSL):
Linguagem para descrever jobs e os recursos utilizados para executá-los Usada por vários componentes do Globus Resource Allocation and Management (GRAM) e do Dynamically Updated Request Online Co-allocator (DUROC) GRAM é o componente para submissão de um único job para um jobmanager específico

18 Introdução Globus Resource Specification Language (RSL):
Fornece uma sintaxe genérica (''esqueleto'') para compor descrições de recursos Sintaxe similar à do MDS/LDAP Cada atributo na descrição serve como um parâmetro para controlar o comportamento dos recursos Operadores suportados <, <=, =, >=, >, !=

19 Sintaxe Em relação à sintaxe da linguagem, existem 3 estruturas diferentes: Relation: associa o nome de um atributo a um valor Compound Requests: conjunto de relações simples compostas em um único comando Value Sequences: seqüência de valores

20 Sintaxe Relation: Principal (e também o mais simples) componente da sintaxe RSL Associa o nome de um atributo a um valor: Ex.: ''executable=a.out'' Informa o nome do programa a ser utilizado quando o job for executado Apesar de sintaticamente correta, expressões RSL geralmente combinam mais de uma relação

21 Sintaxe Compound Requests (1/4): conjunct-request (&):
Expressa um conjunto de relações simples, associadas através de um AND booleano Permite, por ex.: combinação de relações como o nome de um executável, nº de nodos, argumentos do executável e arquivos de saída Exemplo: &(contactHostName="tci18.dl.ac.uk") (executable=/bin/echo) (directory=/home2/rja/Globus/Examples/rsl) (stdout="stdout.txt") (arguments="hello from tci18")

22 Sintaxe Compound Requests (2/4): disjunct-request (|):
Expressa um conjunto de relações simples, associadas através de um OR booleano Atualmente nenhum componente gerenciador de recursos utiliza esse formato Exemplo: &(executable=myProg) (|(&(count=5)(memory>=64)) (&(count=10)(memory>=32))) Cria 5 instâncias de myProg em máquina com pelo menos 64MB de memória, ou 10 instâncias em máquina com pelo menos 32MB de memória

23 Sintaxe Compound Requests (3/4): multi-request (+):
Usadas pelo DUROC (componente de co-alocação de recursos) Como o DUROC não mais existe -> ...? Permite especificar múltiplos recursos Formato: +(GRAM script) (GRAM script) (...)

24 Compound Requests (3/4):
multi-request (+): Uma conjunct-request pode ser vista como "constraints" sobre um determinado recurso Sub-cláusulas de uma multi-request são vistas como descrições individuais de recursos distintos

25 Sintaxe Compound Requests (4/4): Exemplo multi-request:
+(&(contactHostName="tci18.dl.ac.uk") (count=1) (executable=test) (directory=/home2/rja/Globus/test) (stdout="stdout.txt") ) (&(contactHostName="beowulf1.dl.ac.uk") (directory=/home/rja/Globus/test)

26 Sintaxe Value Sequences (1/2):
A forma mais simples de expressar um valor em RSL é através de um literal string Delimitados por um par de aspas ou não (desde que não contenham caracteres especiais) Valores podem ser também referências a variáveis (que serão substituídas pelo valor correspondente)

27 Sintaxe Value Sequences (2/2):
Expressões podem incluir concatenações de strings (para a construção de longas strings) Além das formas simples apresentadas, a rsl permite o uso de value sequences para expressar um conjunto ordenado de valores: Usada principalmente para definir variáveis ou fornecer a lista de argumentos para um programa

28 Caracteres Especiais RSL
Conjunto de caracteres especiais que não podem aparecer como parte de um literal não delimitado por aspas: ''>'' (maior) ''!'' (exclamação) '''''' (aspas duplas) ''`'' (apóstrofo) ''^'' (circunflexo) ''#'' (sustenido) ''$'' (dólar) ''+'' (adição) ''&'' (''e'' comercial) ''|'' (pipe) ''('' (parêntese esquerdo) '')'' (parêntese direito) ''='' (equaldade) ''<'' (menor)

29 Caracteres Especiais RSL
Delimitação de literais: aspas duplas ou simples Comentários em comandos RSL: usam notação similar àquela empregada na linguagem de programação C: iniciam com o prefixo ''(*'', e continuam até o próximo ''*)'' não podem ser aninhados

30 Semântica de Substituição RSL
RSL suporta substituição de variáveis: A substituição de variáveis é definida por uma relação especial, utilizando o atributo ''rsl_substitution'' Declaração: substituições são declaradas usando uma lista de pares rsl_substitution=(SUB1 val1)(SUB2 val2) Invocação: uma substituição é invocada através de $(SUB)

31 Semântica de Substituição RSL
Exemplo de uso: Isso: &(rsl_substitution=(URLBASE ''ftp://host:1234'')) (rsl_substitution=(URLDIR $(URLBASE)/dir)) (executable=$(URLDIR)/myfile) é equivalente a isso: &(executable=ftp://host:1234/dir/myfile)

32 Semântica de Substituição RSL
Ordem de processamento: Escopos internos são processados após os externos Definições em escopos internos incrementam as definições herdadas com atualizações ou novas variáveis Dentro de qualquer escopo, as definições de variáveis são processadas da esquerda para a direita na descrição do recurso Definições de variáveis podem referenciar variáveis previamente definidas

33 Atributos RSL Cada componente gerenciador de recursos do Globus introduz atributos adicionais ao conjunto Sintaxe extensível Difícil fornecer uma lista completa de atributos que podem aparecer na descrição de um recurso Componentes que gerenciam recursos são projetados para utilizar os atributos por eles conhecidos e ignorar os demais

34 Atributos RSL A seguir, alguns atributos da distribuição padrão do Globus serão apresentados ... Atributos GRAM executable directory arguments stdin stdout stderr count environment maxCpuTime maxWallTime maxTime dryRun queue project hostCount maxMemory minMemory jobType gramMyjob two_phase save_state stdout_position stderr_position restart remote_io_url

35 Atributos RSL (GRAM) (executable=string) (directory=string)
Informa o programa a ser executado na máquina remota Caminho do arquivo (absoluto ou relativo) ou URL (nesse caso o arquivo será transferido para a máquina remota e removido após o término) (directory=string) Especifica o caminho do diretório que o jobmanager vai para executar o job Default: diretório de trabalho ($HOME)

36 Atributos RSL (GRAM) (arguments=arg1 arg2 arg3...)
Lista de parâmetros (string) para o executável Devem ser usadas aspas ('' '') se espaços em branco são necessários em algum argumento Ex.: (arguments="a and b" ccc d ) argv[1]=''a and b'' argv[2]=''ccc'' argv[3]=''d'' Default: NULL

37 Atributos RSL (GRAM) (stdin=string) (stdout=string)
Nome do arquivo a ser usado como standard input para o executável Caminho do arquivo (absoluto ou relativo) ou URL (transferido para / removido da máquina remota) Default: /dev/null (stdout=string) Nome do arquivo remoto para armazenar o standard output da execução Caminho do arquivo (absoluto ou relativo) ou URL (saída é transferida durante execução)

38 Atributos RSL (GRAM) (stderr=string) (count=value)
Nome do arquivo remoto para armazenar o standard error da execução Caminho do arquivo (absoluto ou relativo) ou URL (saída é transferida durante execução) Default: /dev/null (count=value) Número de processos que deverão ser executados Default: 1

39 Atributos RSL (GRAM) (environment=(var value) [(var value)] ...)
Variáveis de ambiente que serão definidas para o executável além do conjunto default Representadas como pares nome/valor Ex.: (environment=(VAR_A value_a) (JOE mama)(PI )) Equivalente em C-shell: setenv VAR_A value_a setenv JOE mama setenv PI Default: NULL

40 Atributos RSL (GRAM) (maxCpuTime=integer) (maxWallTime=integer)
Máximo cputime para uma execução do programa Medido em minutos Default: nenhum, mas aceita default de um escalonador local (maxWallTime=integer) Máximo walltime para uma execução do programa

41 Atributos RSL (GRAM) (maxTime=integer) (dryRun=yes|no)
Máximo entre walltime ou cpu runtime (escolha do escalonador) para uma execução do programa Medido em minutos Default: nenhum, mas aceita default de um escalonador local (dryRun=yes|no) Se dryRun = yes, então o jobmanager não vai submeter o job para execução, e retornará sucesso Default: no Obs: removido na v4 do Globus (GT4)

42 Atributos RSL (GRAM) (queue=string) (project=string)
Nome da fila na qual o job deve ser submetido (project=string) Direciona o job para um project account específico (hostCount=integer) Somente aplicável em multi-computadores SMP Define o número de nodos usados para distribuir os ''count'' processos

43 Atributos RSL (GRAM) (maxMemory=integer) (minMemory=integer)
Especifica a quantidade máxima de memória requisitada para o job Medido em megabytes Default: nenhum (minMemory=integer) Especifica a quantidade mínima de memória requisitada para o job

44 Atributos RSL (GRAM) (jobType=value)
Value pode assumir um dos valores abaixo: single: mesmo que <count> > 1, roda somente um único processo multiple: inicia <count> instâncias do programa mpi: roda programa escrito em mpi usando um método apropriado (mpirun em SGI Origin ou POE em IBM SP). Programa é iniciado em <count> nodos condor: inicia <count> processos Condor rodando em ''standard universe'' Default: multiple

45 Atributos RSL (GRAM) (gramMyjob=value)
Define como a biblioteca globus_gram_myjob irá se comportar em relação aos <count> processos Value pode assumir um dos valores abaixo: collective: trata todos os <count> processos como parte de um único job independent: trata cada um dos <count> processos como um job independente uniprocessado Default: collective

46 Atributos RSL (GRAM) (two_phase=<int>)
Implementa protocolo do tipo two-phase commit para submissão e término de jobs Parâmetro <int> determina o valor do timeout a ser utilizado pelo jobmanager Na submissão: Jobmanager aguarda confirmação após receber requisição do cliente durante <int> segundos No término: Após notificar o cliente do término, aguarda por confirmação durante <int> segundos Se não receber, pode sair sem limpar o estado do job (para que o job sofra um restart posterior)

47 Atributos RSL (GRAM) (save_state=yes|no)
Faz com que o jobmanager salve estado/informações do job de forma persistente em disco ou fita Se o jobmanager falhar, o cliente pode inicializar outro jobmanager que irá assumir a responsabilidade sobre o job Default: no

48 Atributos RSL (GRAM) (stdout_position=<int>)
(stderr_position=<int>) Utilizados na reinicialização de jobs Especificam a posição do arquivo que deve ser utilizada para recomeçar a escrever o fluxo de saída do job Default: nenhum

49 Atributos RSL (GRAM) (restart=<old JM contact>)
Inicia um novo jobmanager, que passará a cuidar de jobs já existentes Jobmanager irá procurar os arquivos de estado criados (através da opção save_state) pelo jobmanager informado como parâmetro Caso encontre algum job (e o seu timestamp seja antigo) Novo jobmanager passará a ser o novo "guardião" dos jobs encontrados Senão Retorna com erro

50 Atributos RSL (GRAM) (remote_io_url=<url base>)
Salva a URL informada em um arquivo e coloca a variável GLOBUS_REMOTE_IO_URL=<path to file> no ambiente do job Se especificado na reinicialização do job (restart), atualiza o conteúdo do arquivo Utilizando a variável, o job pode ler o conteúdo do arquivo para obter a URL, que pode variar entre diferentes reinicializações do job Default: nenhum

51 Atributos RSL (DUROC) (subjobStartType=value) (subjobCommsType=value)
Altera o mecanismo inicial de barreira para os subjobs Os valores são ''strict-barrier'', ''loose-barrier'', ''no-barrier'' (subjobCommsType=value) Valores são ''blocking-join'' e ''independent'' Se o valor é setado para ''independent'', o subjob não será visto por outros subjobs quando fizer comunicação inter-subjob

52 Atributos RSL (DUROC) (label=string) (resourceManagerContact=string)
Identificador para o subjob (resourceManagerContact=string) (resourceManagerName=string) Resource manager para o qual submeter o subjob

53 Exemplos RSL Ex.: 1) Descrições de recursos GRAM típicas contém ao menos algumas relações em conjunto: (* this is a comment *) &(executable=a.out (* <-- that is an unquoted literal *)) (directory=/home/nobody ) (arguments=arg1 "arg 2") (count=1)

54 Exemplos RSL Ex.: 2) Substituições podem ser usadas para utilizar a mesma substring múltiplas vezes em uma descrição de recurso: &(rsl_substitution=(TOPDIR "/home/nobody") (DATADIR $(TOPDIR)"/data") (EXECDIR $(TOPDIR)/bin) ) (executable=$(EXECDIR)/a.out (* <-- implicit concatenation *)) (directory=$(TOPDIR)) (arguments=$(DATADIR)/file1 (* <-- implicit concatenation *) $(DATADIR)#/file2 (* <-- explicit concatenation *) '$(FOO)' (* <-- a quoted literal *)) (environment=(DATADIR $(DATADIR))) (count=1)

55 Exemplos RSL Ex.: 3) Realizando todas as substituições de variáveis e removendo comentários resulta em uma string RSL equivalente: &(executable="/home/nobody/bin/a.out") (directory="/home/nobody" ) (arguments="/home/nobody/data/file1" "/home/nobody/data/file2" "$(FOO)") (environment=(DATADIR "/home/nobody/data")) (count=1)


Carregar ppt "Curso de Grid Computing"

Apresentações semelhantes


Anúncios Google