Baixar o PDF

Propaganda
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
paper:6
SciCumulus 2.0: Um Sistema de Gerência de Workflows
Científicos para Nuvens Orientado a Fluxo de Dados *
Vítor Silva1, Daniel de Oliveira2 e Marta Mattoso1
1
2
COPPE – Universidade Federal do Rio de Janeiro (UFRJ)
Instituto de Computação – Universidade Federal Fluminense (IC/UFF)
{silva, marta}@cos.ufrj.br, [email protected]
Resumo. Ao contrário dos workflows de negócio, os workflows científicos são
centrados no grande fluxo de transformação de dados. Entretanto, as
abordagens dos sistemas de workflows em larga escala ainda são voltadas à
gerência da execução paralela de tarefas ao invés de gerenciar as relações
entre os dados ao longo fluxo de geração dos dados do workflow. Este artigo
apresenta a execução do SciCumulus 2.0 e sua nova camada de submissão de
execução paralela que oferece diferentes níveis para a modelagem de
workflows, assim como a configuração do ambiente de paralelismo e consultas
aos dados de domínio e de proveniência em tempo de execução.
1. Introdução
Nos últimos anos, os experimentos científicos computacionais têm aumentado em
complexidade em termos do número de execuções e do volume de dados produzidos.
Esses experimentos podem ser modelados como um conjunto de atividades e um fluxo
de dados entre elas. Cada atividade pode ser um programa de computador que processa
um conjunto de dados de entrada e produz um outro conjunto de dados de saída,
gerando o fluxo de dados dos chamados workflows científicos. Sistemas de Gerência de
Workflows Científicos (SGWfC), como o Swift/T (Wozniak et al. 2013), executam
workflows com processamento de alto desempenho (PAD), incluindo os ambientes de
nuvens de computadores. Para prover paralelismo, as atividades do workflow são
subdivididas em tarefas menores (que chamamos de ativações). Cada ativação atua
sobre um elemento do conjunto de valores de parâmetros a ser consumido. Os SGWfC
paralelos distribuem as ativações para os recursos computacionais nesses ambientes,
respeitando as dependências de dados entre elas. A gerência da dependência do fluxo de
dados do workflow é um dos diferenciais dos SGWfC em relação a soluções que
programam esse controle por scripts ou Hadoop, ou de forma independente (manual).
Ao contrário dos workflows de negócio, os workflows científicos são centrados
no fluxo de transformação dos dados (Davidson and Freire 2008). Entretanto, as
abordagens dos SGWfC ainda são fortemente voltadas à gerência das ativações ao invés
do fluxo de dados como um todo. Pode-se classificar os dados envolvidos na execução
paralela de workflows científicos em quatro categorias: (i) dados do domínio, (ii) fluxo
de dados gerados na execução do workflow, (iii) fluxo das atividades executadas e (iv)
dados de desempenho da execução do workflow. Essas quatro categorias, embora
relacionadas, são tratadas de modo independente pelos SGWfC. Apenas as categorias
*
Este artigo foi parcialmente financiado pelo CNPq e FAPERJ.
Vídeo em: https://s3.amazonaws.com/SBBD-Demo/Video-Final.mp4.
239
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
(ii) e (iii) são interligadas pelos SGWfC por meio de dados de proveniência. SGWfC
registram o fluxo de dados e atividades, capturando a proveniência prospectiva
(estrutura e dependências das atividades) e retrospectiva (relacionados à execução do
workflow) (Davidson and Freire 2008). Após a execução do workflow, cientistas podem
consultar a base de dados de proveniência para analisar o fluxo dos dados até os
resultados. Embora esse registro seja um grande avanço em relação às soluções que não
utilizam proveniência, a análise de workflows com dados em larga escala necessita de
um monitoramento do perfil computacional da geração do fluxo de dados (e.g. tempo de
execução das atividades). É preciso ainda relacionar esse fluxo aos dados do domínio.
Em dados de proveniência que contêm apenas metadados sobre os dados do domínio, o
relacionamento aos dados de domínio ainda se dá de forma "manual". Dados do perfil
computacional, em geral, são representados em logs. Entretanto, logs são difíceis de
serem consultados e ferramentas do ambiente PAD são independentes do contexto do
fluxo de transformação de dados, limitando o poder analítico.
Para realizar a integração das quatro categorias de dados, Ogasawara et al.
(2011) propuseram uma abordagem algébrica, centrada em dados, para a execução de
workflows. Essa álgebra faz uso da tecnologia de sistemas de bancos de dados
relacionais para gerenciar o fluxo de transformação de dados em workflows de forma
integrada, sendo tanto a definição do workflow quanto seus dados representados em
relações dentro do banco de dados de proveniência. À medida que as ativações são
executadas, esta base de dados de proveniência registra o perfil do desempenho das
execuções em relações voltadas para apoiar o monitoramento via consultas. Da mesma
forma, tuplas representam, como valores ou referência a arquivos de dados do domínio,
os dados de entrada das atividades. Assim, a abordagem algébrica integra em uma base
de dados de proveniência, as quatro categorias de dados do experimento científico,
gerando uma ferramenta essencial na análise de dados científicos em larga escala.
Com o intuito de desenvolver um SGWfC que tirasse proveito dos ambientes de
nuvens e dessa integração no banco de dados de proveniência, a abordagem algébrica
foi incorporada à máquina de workflows que deu origem ao SciCumulus (Oliveira et al.
2010). A proveniência foi usada, de modo original, para que uma série de componentes
oferecessem: monitoramento, tolerância a falhas, re-execuções, etc. (Costa et al. 2012).
Além disso, o SciCumulus usou a proveniência para explorar a elasticidade na
computação em nuvens, para a execução paralela de workflows, implementando um
algoritmo adaptativo para a alocação dinâmica de recursos computacionais. Ao
consultar o histórico via proveniência ele minimiza o custo financeiro, o tempo de
execução e a confiabilidade dos recursos computacionais (Viana et al. 2011, Oliveira et
al. 2012). Desde a sua primeira versão, o SciCumulus ainda não foi apresentado como
ferramenta de demonstração. O SciCumulus 2.0 integra, em uma única ferramenta,
diversos componentes anteriormente propostos de modo isolado, e cria uma camada de
software para a modelagem de experimentos sem a necessidade de uma interação direta
com o ambiente de PAD. Tal camada oferece diferentes níveis de abstração para a
modelagem dos workflows, assim como a configuração do ambiente de PAD e consultas
analíticas aos dados de proveniência em tempo de execução.
Embora seja grande o número de SGWfC com paralelismo (Bux e Leser 2013),
nenhum deles oferece um acesso integrado às quatro categorias de dados envolvidas na
execução e análise do workflow científico. Os sistemas mais relacionados a esse
trabalho são o Swift/T e o Pegasus, devido ao paralelismo. Entretanto, nesses sistemas,
240
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
os dados de proveniência são disponibilizados apenas no final da execução do workflow.
Para monitorar o desempenho durante a execução, o Pegasus disponibiliza uma base de
dados relacional para consultas sobre o perfil de execução. Assim, o Pegasus opera com
duas bases, uma para registrar as informações de execução das atividades e outra para
os dados de proveniência do fluxo de dados e atividades do workflow executado. Além
da redundância de dados, essa separação em duas bases, não permite consultas do tipo
"quais os valores dos parâmetros das ativações com tempo de execução acima da
média". Embora essa consulta seja possível na base de proveniência do Swift, ela só
pode ser submetida quando a execução já terminou e muitas vezes sem acesso aos dados
de domínio, como o parâmetro mencionado.
O restante deste artigo é organizado da seguinte forma: a Seção 2 apresenta o
SciCumulus 2.0, incluindo a sua arquitetura com os mecanismos de interação e
integração de dados via proveniência, enquanto que a Seção 3 conclui este artigo.
2. SciCumulus 2.0: um SGWfC Orientado a Fluxo de Dados
Esta seção apresenta uma visão geral do SciCumulus 2.0 e seus recursos de gerência de
fluxos de dados guiada por dados de proveniência. Na álgebra de Ogasawara et al.
(2011) cada atividade do workflow é associada a uma operação. Essas operações
determinam como a atividade consome e produz dados. O conjunto de dados de entrada
e saída das atividades são operandos, representados como relações. Cada ativação
consome uma tupla da relação operando que contém parâmetros e referências a arquivos
necessários para realizar o processamento da atividade (ativação) gerando uma tupla
correspondente na relação de saída. Assim, o banco de dados de proveniência (Figura 1)
se torna uma peça fundamental não só para a análise do experimento por parte do
usuário, mas para a própria execução por parte do SGWfC, uma vez que atua como um
catálogo de estatísticas que pode ser consultado e analisado.
A arquitetura do SciCumulus 2.0 é definida a partir de três camadas principais
(Figura 1): SciCumulus Starter, SciCumulus Core e o Banco de Dados de Proveniência.
O SciCumulus Starter configura o ambiente para a execução paralela do workflow e
invoca a sua execução na nuvem. É implementado por uma aplicação independente que
executa na máquina do cientista sem que seja necessário instalar nenhuma aplicação ou
biblioteca (apenas copiar um .jar). Ele possui três componentes principais com as
funções de: gerência do ambiente de nuvem, submissão de workflows e a validação do
workflow. A gerência do ambiente de nuvem instancia e destrói um conjunto de
máquinas virtuais (MVs) interconectadas na nuvem (i.e. cluster virtual). Ele inicializa
ou exclui um conjunto de MVs, cria configurações de segurança necessárias (como
grupos de segurança, chaves de acesso, entre outros), assim como define uma hierarquia
dessas MVs, a fim de obedecer a arquitetura do SciCumulus Core (Oliveira et al. 2012)
que é baseada em MPI e exige uma MV de controle para a distribuição das ativações.
Essa instanciação inicial de MVs é baseada em consultas aos dados históricos de
proveniência para que o SciCumulus Starter possa dimensionar o ambiente para a
execução. O SciCumulus Core pode ainda instanciar novas MVs ou destruir, em tempo
de execução de acordo com a demanda seguindo o algoritmo adaptativo proposto por
Oliveira et al. (2012). Vale ressaltar que enquanto o SciCumulus original executava o
controle do algoritmo adaptativo em uma máquina remota (que deveria possuir conexão
permanente obrigatória), o SciCumulus 2.0 submete um pedido de execução para as
241
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
diversas MVs, dedicando uma das MVs de execução para o controle do algoritmo
adaptativo (i.e. quando dimensionar o ambiente).
SciCumulus)Starter)
Submissão)
de)Workflow)
Gerência)do)
Ambiente)de))
Nuvem)
1)
Validação)de)
Workflow)
))))))SciCumulus)Core)
3
9)
Monitoramento)
10)
Submissão)
de)Consultas)
2)
4)
8)
Banco)de)
Dados)de)
Proveniência)
Legenda:)
))Fluxo)de)Dados)
))Fluxo)de)Controle)
Escalonamento)
5)
Gerência)de)
Comunicação)
6,)7)
A:vação)
Sistema)de)
Arquivos)
)
)
)
Alocação) )
Adapta:va) )
)
)
)
)
)
)
)
)
)
)
)
)
))
)
Figura 1. A Arquitetura do SciCumulus 2.0
A validação de workflows registra a especificação conceitual de workflows na
base de dados de proveniência. Este componente valida um arquivo XML que contém a
especificação do workflow e então registra no banco de proveniência a estrutura do
workflow para ser usada no momento da execução. A submissão do workflow inicia a
execução paralela de um workflow que já foi registrado na base de proveniência. A
inserção do SciCumulus Starter na arquitetura do SciCumulus 2.0 é uma mudança
importante em relação às primeiras versões do SciCumulus, cuja inicialização era
realizada a partir de SGWfC de terceiros (e.g. VisTrails). Utilizando o SciCumulus
Starter, a execução do workflow depende apenas do SciCumulus 2.0. O SciCumulus
Starter é invocado por: java –jar SciCumulusStarter.jar <funcionalidade> <arquivo
XML>. Os valores para o argumento de funcionalidade incluem: -cc: cria cluster de
MVs na nuvem, -dc: exclui cluster de MVs; -icw: insere workflow na base de
proveniência; -ucw: atualiza workflow na base de proveniência; -dcw: exclui workflow
da base de proveniência; -sew: submete workflow para execução paralela e -q: consulta
a base de proveniência. Além do argumento de funcionalidade, deve ser informado um
arquivo de configuração, especificado de acordo com um XML schema próprio do
SciCumulus. Cada tag do XML a ser informada se encontra no Quadro 1. Os elementos
a serem informados no arquivo de configuração variam de acordo com a funcionalidade.
Os termos estão em inglês para facilitar a interoperabilidade com a recomendação de
padrão de proveniência PROV da W3C.
SciCumulus Starter ainda permite ao usuário executar consultas no banco de
proveniência em tempo de execução por meio do componente de submissão de
consultas. Além dos dados padrão de proveniência, tanto a consulta aos dados do
domínio como do progresso da execução dos workflows podem ser submetidas via SQL
especificado pelo usuário ou pré-configuradas no componente.
O SciCumulus Starter invoca o SciCumulus Core por meio do seu componente
de submissão de workflows. O SciCumulus Core é uma aplicação paralela
implementada em MPJ (MPI para linguagem Java) e que é executada em todas as MVs
que fazem parte do cluster virtual. O SciCumulus Core gerencia a execução de
workflows científicos, conforme a arquitetura apresentada na Figura 1. Quando um
workflow é submetido ao SciCumulus Core, a primeira etapa (#3 na Figura 1) consiste
242
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
na análise e envio dos dados previamente registrados na base de proveniência para esse
workflow na nuvem. Já a segunda etapa (#4) consiste no envio dos dados de
proveniência e a requisição, respectivamente, do início da execução do workflow. O
Monitoramento analisa os dados de proveniência para verificar as atividades pendentes
e que apresentam todas as suas dependências atendidas. Para essas atividades, o
Escalonamento identifica as ativações que fazem parte dessa atividade (#5). Ao mesmo
tempo, possíveis adaptações na quantidade de MVs são analisadas em tempo real pela
Alocação Adaptativa (#9). Em caso de adaptações necessárias para atender a requisitos
dos cientistas como tempo máximo de execução, são realizadas mudanças por esse
componente, reportando ao Escalonador apenas essas mudanças de MVs.
Quadro 1. Elementos do arquivo de configuração no formato XML
Elementos)
Descrição)
Atributos)
SciCumulus)
Elemento)raiz)
Nenhum)
Dependência)
Nenhuma)
creden<als)
Credenciais)para)a)Amazon))
access_key,)secret_access_key)
SciCumulus)
environment)
Configurações)do)ambiente)
type,)cluster_name)
SciCumulus)
binary)
Informações)de)arquivos)binários)
directory,)conceptual_version,)execu<on_version)
SciCumulus)
machine)
Configuração)das)máquinas)
virtuais)
image,)user,)password)
SciCumulus)
vm)
Tipos)de)máquinas)virtuais)
disponíveis)
Type,)financial_cost,)disk_space,)ram,)gflops,)
plaNorm,)cores)
machine)
constraint)
Restrições)do)ambiente)e)do)
workflow)
workflow_exectag,)max_<me,)max_financial_cost,)
max_vm_amount,)total_ram,)total_disk,)alfa1,)
alfa2,)alfa3,)cores)
SciCumulus)
workspace)
Configurações)para)
armazenamento)de)arquivos)
upload,)bucket_name,)workflow_dir,)
compressed_workspace,)compressed_dir)
SciCumulus)
database)
Configurações)da)base)de)dados)
name,)username,)password,)port,)server,)path)
SciCumulus)
query)
Especificação)da)consulta)
sql)
SciCumulus)
conceptualWorkflow)
Especificação)do)workflow)
conceitual)
tag,)descrip<on)
SciCumulus)
conceptualWorkflow)
ac<vity)
Especificação)das)a<vidades)
tag,)descript,)type,)ac<va<on,)template,)extractor)
rela<on)
Especificação)das)relações)
reltype,)name)
ac<vity)
field)
Especificação)dos)campos)
name,)type,)input,)output,)decimalplaces,)opera<on)
rela<on)
execu<onWorkflow)
Especificação)do)workflow&de)
execução&
tag,)execmodel,)expdir,)max_failure,)
user_interac<on,)redundancy,)reliability)
SciCumulus)
rela<on)
Especificação)das)relações)de)
entrada)do)workflow&de)execução)
name,)filename)
execu<onWorkflow)
O Monitoramento provê a tolerância a falhas no SciCumulus 2.0. Essa extensão
foi inspirada no SciMultaneous (Costa et al. 2012) que verifica a ocorrência de erros por
meio de consultas ao banco de proveniência. Três características importantes desse
mecanismo são: a replicação de ativações em execução, quando um recurso
computacional está ocioso e não possui ativações pendentes; o cálculo de confiabilidade
de uma determinada MV em virtude do número de ativações com falhas de execução; e
o número máximo de falhas permitido em uma ativação, para que a mesma seja
desconsiderada da execução do workflow. Diferentemente do SciMultaneous, o
SciCumulus 2.0 provê a tolerância a falhas em tempo de execução dentro da própria
gerência de ativações (elemento Ativação da Figura 1). O SciCumulus 2.0 não necessita
de uma MV extra para a recuperação de falhas, como no SciMultaneous.
Após a determinação da MV que deve executar (ou re-executar, caso uma falha
seja identificada) uma ou mais ativações, o Escalonamento envia tal mapeamento (i.e.
conjunto de MVs e ativações) para a Gerência de Comunicação, que envia (#5) e recebe
(#6) mensagens (com dados e valores de parâmetros de cada ativação) entre as MVs. Ao
receber uma ou mais ativações, a MV deve executá-la (s) pelo componente de Ativações
(#6 e #7). Quando a MV central recebe ativações finalizadas pelas MVs executoras, os
dados de proveniência dessas ativações são enviados ao Monitoramento, que assume o
243
29th SBBD – Demos and Applications Session – ISSN 2316-5170
October 6-9, 2014 – Curitiba, PR, Brazil
controle e identifica as atividades pendentes e distribui novas ativações para as MVs
que estiverem ociosas.
3. Conclusão
Experimentos científicos, mesmo se executados em paralelo, podem ter uma longa
duração necessitando de monitoramento. Várias tentativas de configurações são
necessárias para se chegar a uma conclusão final. SciCumulus (Oliveira et al. 2012),
uma máquina de workflows capaz de gerenciar a execução de workflows em ambientes
de nuvem, foi estendido e várias ferramentas desenvolvidas externamente foram
incorporadas, de modo a facilitar sua instalação e execução, gerando o SciCumulus2.0.
Uma característica que se mantém original em relação ao estado da arte é ser orientado
ao fluxo de transformação de dados do workflow. Essa é uma característica importante,
pois o banco de dados de proveniência serve de apoio à interface com a máquina de
workflows, tanto para a configuração quanto para o monitoramento e análise de dados
em larga escala por parte do cientista. Além disso, o SGWfC passa a ter acesso a um
catálogo de estatísticas auxiliando a geração do plano de execução e estratégias
adaptativas em tempo de execução. A demonstração objetiva a apresentação do
SciCumulus 2.0, suas contribuições originais e evoluções.
Referências Bibliográficas
Bux, M., Leser, U., (2013), Parallelization in Scientific Workflow Management
Systems, CoRR/arXiv:1303.7195.
Costa, F., Oliveira, D. de, Ocana, K., Ogasawara, E., Dias, J., Mattoso, M., (2012),
"Handling Failures in Parallel Scientific Workflows Using Clouds". In: WORKS
workshop IEEE/ACM SC Companion, p. 129–139.
Davidson, S. B., Freire, J., (2008), "Provenance and scientific workflows: challenges
and opportunities". In: ACM SIGMOD, p. 1345–1350.
Lee, K., Paton, N. W., Sakellariou, R., Deelman, E., Fernandes, A. A. A., Mehta, G.,
(2008), "Adaptive Workflow Processing and Execution in Pegasus". In: 3rd
International Conference on Grid and Pervasive Computing, p. 99–106.
Ogasawara, E., Dias, J., Oliveira, D., Porto, F., Valduriez, P., Mattoso, M., (2011), "An
Algebraic Approach for Data-Centric Scientific Workflows", In: Proc. of VLDB
Endowment, v. 4, n. 12, p. 1328–1339.
Oliveira, D., Ogasawara, E., Baião, F., Mattoso, M., (2010), "SciCumulus: A
Lightweight Cloud Middleware to Explore Many Task Computing Paradigm in
Scientific Workflows". In: 3rd Int Conference on Cloud Computing, p. 378–385.
Oliveira, D., Ocaña, K., Baião, F., Mattoso, M., (2012), "A Provenance-based Adaptive
Scheduling Heuristic for Parallel Scientific Workflows in Clouds", In: Journal of
Grid Computing, v. 10, n. 3, p. 521–552.
Wozniak, J. M., Armstrong, T. G., Wilde, M., Katz, D. S., Lusk, E., Foster, I. T.,
(2013), "Swift/T: Large-Scale Application Composition via Distributed-Memory
Dataflow Processing". In: IEEE/ACM CCGrid, p. 95–102
244
Download