Curso de Grid Computing

Slides:



Advertisements
Apresentações semelhantes
Material pedagógico Multiplicar x 5 Clica!
Advertisements

Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Classificação. 2 Métodos de Classificação Os métodos de classificação podem ser dos tipos: Classificação interna – quando toda a coleção de itens a classificar.
EXPRESSÕES ARITMÉTICAS
Listas Encadeadas Circulares Listas Duplamente Encadeadas
EXPRESSÕES ARITMÉTICAS
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
Crescimento Econômico Brasileiro : Uma Visão Comparada de Longo Prazo Prof. Giácomo Balbinotto Neto UFRGS.
Ronaldo Celso Messias Correia
Banco de Dados Aula 01: Conceitos Básicos
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Treinamento GP3 USP – GEFIM Abril de 2004 Alcides Pietro, PMP.
Sistemas Operacionais
Exemplos de 3 posições relativas de prédio fronteiro
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Utilização do montador Daedalus
Gustavo Vieira Pereira
Programação distribuída e paralela (C. Geyer) Globus – introdução e RMS v1 1 Introdução ao Globus.
Curso Grid Globus Monitoring and Discovery Service (MDS)
O que é XtremWeb(XW)? Projeto de pesquisa relacionado a light-weight Grids. Plataforma Open Source para a elaboração de grades baseadas em PCs, desenvolvida.
Slide 1 Rede Nacional de Ensino e Pesquisa Serviços do Middleware Treinamento em GRADEp – junho de 2005 GT GRADEp Middleware GRADEp Serviços.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Aplicação GeneAl Treinamento no GRADEp Aplicação GeneAl.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço OXManager Treinamento no GRADEp Serviço OXManager OXManagerDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 Serviço Worb Treinamento no GRADEp Serviço Worb WorbDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Servidores e Programação Web Redes de Computadores.
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Introdução A fim de preparar a geração de código, deve-se relacionar o fonte estático do programa às ações em tempo de execução. Durante a execução, o.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
O Fluxo de Testes © Alexandre Vasconcelos
Serviços Integrados na Arquitetura da Internet Apresentação: Fernando Nadal.
Planejando seu site Objetivos Abordagem Sílvia Dota.
Curso de Engenharia Industrial Madeireira – UFPR Prof. Umberto Klock
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
ITA - Instituto Tecnológico de Aeronáutica Aula #1.1 – Tutorial de Web Services utilizando o NetBeans 5.5 Disciplina: CE 262 – Ontologias e Web Semântica.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
O TÍTULO DO TRABALHO DEVE SER EM FONTE VERDANA, TAMANHO 66, LETRAS MAIÚSCULAS, EM NEGRITO SOBRENOME, Autor 1., SOBRENOME, Autor 2…., Verdana, 32, negrito,
FUNDAÇÃO CARLOS CHAGAS
CONCLUSÕES A apresentação deste poster ocorrerá na I Jornada da ABEAD na Paraíba que acontecerá do dia 03 à 05 de novembro de 2010 no Hotel Caiçara em.
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Recursividade Estrutura de Dados.
Comandos básicos do MS-DOS
Marco Antonio Montebello Júnior
The Data Warehouse Toolkit
LINGUAGENS DE PROGRAMAÇÃO
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Sistemas de Informação Prof. Me. Everton C. Tetila Modelo de dados relacional Banco de Dados I.
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Provas de Concursos Anteriores
Lemas (Sudkamp)  .
Coordenação Geral de Ensino da Faculdade
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
1 - Listas com Acesso Aleatório. 2 - Fila, o Acesso Ordenado (FIFO)
Transcrição da apresentação:

Curso de Grid Computing

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

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

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

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

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

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

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.

Resumo dos serviços Globus

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

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

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, ...

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

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

Resource Specification Language (RSL)

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

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

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 <, <=, =, >=, >, !=

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

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

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

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

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) (...)

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

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)

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)

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

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)

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

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)

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)

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

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

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

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)

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

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)

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

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 3.1415)) Equivalente em C-shell: setenv VAR_A value_a setenv JOE mama setenv PI 3.1415 Default: NULL

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

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)

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

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

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

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

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)

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

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

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

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

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

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

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)

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)

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)