23
GB-500: Introdu¸ ao a Workflows Cient´ ıficos e suas Aplica¸ oes Professores: Luiz Gadelha e Kary Oca˜ na Programa de P´ os-Gradua¸ ao em Modelagem Computacional, P3/2015 Laborat´orio Nacional de Computa¸ ao Cient´ ıfica 23 de junho de 2015 Laboratório Nacional de Computação Científica

GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

GB-500: Introducao a Workflows Cientıficos e

suas Aplicacoes

Professores: Luiz Gadelha e Kary Ocana

Programa de Pos-Graduacao em Modelagem Computacional, P3/2015Laboratorio Nacional de Computacao Cientıfica

23 de junho de 2015

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Page 2: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Referencias

◮ Workflows Cientıficos:◮ Braguetto, K., Cordeiro, D. (2014). Introducao a Modelagem

e Execucao de Workflows Cientıficos. In XXXIII Jornadas deAtualizacao em Informatica (JAI). CSBC 2014.

◮ Cuevas-Vicenttın, V. et al. (2012). Scientific Workflows andProvenance: Introduction and Research Opportunities.Datenbank-Spektrum, 12(3), 193–203.

◮ E. Deelman et al. Workflows and e-Science: An overview ofworkflow system features and capabilities. Future Generation

Computer Systems 25(1):528-540, 2009.◮ Liu, J. et al. (2015). A Survey of Data-Intensive Scientific

Workflow Management. Journal of Grid Computing.◮ Taylor, I. et al. (2007). Workflows for e-Science: Scientific

Workflows for Grids. Springer.

Page 3: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Referencias

◮ Proveniencia:◮ Carata, L. et al. (2014). A primer on provenance.

Communications of the ACM, 57(5), 52–60.◮ Miles, S. et al. (2011). PrIMe: A Methodology for Developing

Provenance-Aware Applications. ACM Transactions onSoftware Engineering and Methodology, 20(3), 1–42.

◮ Moreau, L., Groth, P. (2013). Provenance: An Introduction toPROV. Synthesis Lectures on the Semantic Web: Theory andTechnology (Vol. 3). Morgan & Claypool.

Page 4: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Workflows Cientıficos

◮ Um workflow cientıfico consiste da especificacao de umconjunto de aplicacoes cientıficas a serem executadas e suasdependencias mutuas.

◮ Segue um ciclo de vida analogo ao dos experimentoscientıficos computacionais:

◮ Composicao, representacao e modelagem de dados.◮ Mapeamento e execucao.◮ Coleta de metadados e proveniencia.

◮ Um sistema de gerencia de workflows cientıficos (SGWC)permite gerenciar o ciclo de vida de workflows cientıficos.

Page 5: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Composicao de Workflows Cientıficos

◮ Etapa em que sao definidas as aplicacoes componentes e asdependencias de dados.

◮ Nıveis de especificacao:◮ Abstrato: tarefas abstratas, descritas por funcionalidade geral

(p. ex., comparacao de sequencias).◮ Concreto: aplicacoes cientıficas e conjuntos de dados

especıficos.

◮ Representacao:◮ Textual: linguagem de programacao.◮ Grafica: interface grafica onde nos sao tarefas e arestas sao

dependencias.

Page 6: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Exemplo: Composicao Textualtype fastaseq;type headerfile;type indexfile;type seqfile;type database { headerfile phr; indexfile pin; seqfile psq;}type query;type output;string num_partitions=@arg("n", "8");string program_name=@arg("p", "blastp");fastaseq dbin <single_file_mapper;file=@arg("d", "database")>;query query_file <single_file_mapper;file=@arg("i", "sequence.seq")>;string expectation_value=@arg("e", "0.1"); output blast_output_file <single_file_mapper;file=@arg("o", "output.html")>;string filter_query_sequence=@arg("F", "F");fastaseq partition[] <ext;exec="splitmapper.sh",n=num_partitions>;

app (fastaseq out[]) split_database (fastaseq d, string n){ fastasplitn @filename(d) n;}

app (database out) formatdb (fastaseq i){ formatdb "-i" @filename(i);}

app (output o) blastapp(query i, fastaseq d, string p, string e, string f, database db){ blastall "-p" p "-i" @filename(i) "-d" @filename(d) "-o" @filename(o) "-e" e "-T" "-F" f;}

app (output o) blastmerge(output o_frags[]){ blastmerge @filename(o) @filenames(o_frags);}

partition=split_database(dbin, num_partitions);

database formatdbout[] <ext; exec="formatdbmapper.sh",n=num_partitions>;output out[] <ext; exec="outputmapper.sh",n=num_partitions>;

foreach part,i in partition { formatdbout[i] = formatdb(part); out[i]=blastapp(query_file, part, program_name, expectation_value, filter_query_sequence, formatdbout[i]);}

blast_output_file=blastmerge(out);

Page 7: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Exemplo: Composicao Grafica

Fonte: Taverna (http://www.taverna.org.uk)

Page 8: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Composicao de Workflows Cientıficos: Padroes

◮ Foram identificados 43 padroes de composicao de workflows.

◮ Exemplos:◮ Sequencia:

◮ Bifurcacao paralela:

◮ W. van der Aaalst et al. Workflow Patterns. Distributed and Parallel Databases 14(1):5-51, 2003.

◮ N. Russell et al. Workflow Control-Flow Patterns: A Revised View. BPM Center Report BPM-06-22, 2006.

◮ Workflow Patterns (http://www.workflowpatterns.com).

Page 9: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Composicao de Workflows Cientıficos: Padroes

◮ Exemplos:◮ Sincronizacao:

◮ Fusao:

Page 10: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Composicao de Workflows Cientıficos: Padroes

◮ Exemplos:◮ Laco:

◮ Escolha exclusiva:

Page 11: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift

◮ Swift permite gerenciar workflows cientıficos em ambientesparalelos e distribuıdos.

◮ Ambiente ideal para experimentacao pois demonstradamenteescala para 116.000 CPUs.

◮ E composto por:◮ Uma linguagem de alto nıvel para especificacao de workflows

cientıficos como scripts.◮ Ambiente de execucao com suporte nativo a:

◮ execucao local,◮ execucao paralela (p.ex. PBS, SGE),◮ execucao distribuıda (p.ex. Condor, Globus).

◮ Sistema de gerencia de proveniencia.

M. Wilde, I. Foster, K. Iskra, P. Beckman, Z. Zhang, A. Espinosa, M. Hategan, B. Clifford I. Raicu,Parallel Scripting for Applications at the Petascale and Beyond. IEEE Computer, 42(11):50-60, 2009.

M. Wilde, M. Hategan, J. Wozniak, B. Clifford, D. Katz, and I. Foster. Swift: A language for distributedparallel scripting. Parallel Computing, 37(9):634-652, 2011.

Page 12: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift

◮ Paralelismo implıcito:◮ Toda expressao de um script e avaliada em paralelo, exceto

quando ha dependencias de dados.◮ ⇒ Nao e possıvel assumir uma ordem de execucao dessas

expressoes.

◮ Independencia de localidade:◮ Os scripts nao expressam transferencias de dados e selecao de

sıtios de execucao.

Page 13: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Linguagem de Especificacao de Workflows

◮ Aplicacoes que compoem um workflow sao associadas afuncoes (app functions) em um script Swift.

◮ Variaveis em um script Swift podem ser associadas a:◮ tipos de dados primitivos,◮ dados persistentes armazenados em arquivos,◮ tipos de dados compostos (colecoes).

◮ Suporte a lacos e controles condicionais de fluxo.

Page 14: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Linguagem de Especificacao de Workflows

◮ Sintaxe semelhante ao C, Java.

◮ Estrutura geral de um script Swift:

1. Declaracoes de tipos de dados.2. Declaracoes e atribuicoes de variaveis.3. Declaracoes e chamadas de funcoes associadas a aplicacoes.4. Declaracoes e chamadas de funcoes compostas.

Page 15: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Linguagem de Especificacao de Workflows

◮ Semelhancas com paradigma funcional:◮ Computacao orientada a avaliacao de funcoes.◮ Chamadas sem efeitos colaterais.◮ Avaliacao preguicosa de expressoes.◮ Variaveis de atribuicao unica.

Page 16: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Linguagem de Especificacao de Workflows

Exemplo:

type messagefile;

type countfile;

app (countfile t) countwords (messagefile f) {

wc "-w" @filename(f) stdout=@filename(t);

}

string inputNames = "foreach.1.txt foreach.2.txt foreach.3.txt";

messagefile inputfiles[] <fixed_array_mapper;files=inputNames>;

foreach f in inputfiles {

countfile c <regexp_mapper; source=@f, match="(.*)txt",

transform="\\1count">;

c = countwords(f);

}

Page 17: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

◮ Execucao independente de localidade.

◮ Paralelizacao automatica de execucoes de aplicacoescomponentes que nao tenham dependencias de dados.

◮ Heurıstica de balanceamento de carga das aplicacoes entre osrecursos disponıveis.

◮ Pontuacao de desempenho proporcional a taxa de execucaohistorica de tarefas.

◮ Tolerancia a falhas:◮ redundancia,◮ resubmissao de execucoes que falharam,◮ re-execucao de script sem repeticao de computacoes.

Page 18: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

◮ Responsavel submissao de execucao de aplicacoescomponentes e transferencia de arquivos.

◮ Provedores de dados e de execucao.

◮ Catalogo de aplicacoes componentes.

◮ Catalogo de recursos computacionais.

Page 19: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

◮ Para cada chamada a aplicacao componente:

1. verifica no catalogo de aplicacoes em quais recursoscomputacionais a aplicacao esta disponıvel,

2. seleciona um recurso computacional (maior probabilidade pararecurso com maior pontuacao de desempenho),

3. verifica no catalogo de recursos computacionais que provedorde execucao e provedor de dados deve ser utilizado,

4. se for o caso, transfere os dados para o recurso computacional,5. executa a aplicacao componente,6. transfere de volta os dados resultantes.

Page 20: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

Catalogo de recursos computacionais:

<config>

<pool handle="localhost" sysinfo="INTEL32::LINUX">

<execution provider="local" url="none" />

<workdirectory>/prj/prjssi/lgadelha/swiftwork</workdirectory>

<profile namespace="karajan" key="jobThrottle">0.03</profile>

</pool>

<pool handle="sge-local">

<execution provider="sge" url="none" />

<profile namespace="globus" key="pe">threads</profile>

<profile key="jobThrottle" namespace="karajan">6.23</profile>

<profile namespace="karajan" key="initialScore">10000</profile>

<filesystem provider="local" url="none" />

<workdirectory>/prj/prjssi/lgadelha/swiftwork</workdirectory>

</pool>

</config>

Page 21: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

Catalogo de aplicacoes componentes:

localhost echo /bin/echo

localhost cat /bin/cat

localhost ls /bin/ls

localhost grep /bin/grep

localhost sort /bin/sort

localhost paste /bin/paste

localhost cp /bin/cp

localhost touch /bin/touch

localhost wc /usr/bin/wc

localhost sleep /bin/sleep

sge-local cat /bin/cat

Page 22: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift: Ambiente de Execucao

Page 23: GB-500: Introduc˜ao a Workflows Cient´ıficos e suas …lgadelha/apresentacoes/gb500-workflows-2015... · 2018-01-08 · Swift: Linguagem de Especifica¸c˜ao de Workflows Sintaxe

L a b o r a t ó r i oN acion a l deCo mpu taçãoC i e n t í f i c a

Swift

◮ Desenvolvimento:

◮ Colaboracao do LNCC no desenvolvimento do componente degerencia de proveniencia: MTCProv.

◮ Aplicacoes: OOPS, SciColSim, MODIS, Labinfo.