• Nenhum resultado encontrado

Heurísticas para Controle de Execução de Atividades de Workflows Científicos na Nuvem 1

N/A
N/A
Protected

Academic year: 2021

Share "Heurísticas para Controle de Execução de Atividades de Workflows Científicos na Nuvem 1"

Copied!
6
0
0

Texto

(1)

Heurísticas para Controle de Execução de Atividades de

Workflows Científicos na Nuvem

1

Flavio da Silva Costa

Orientadora: Marta Mattoso Colaborador: Daniel de Oliveira

Nível: Mestrado

Programa de Engenharia de Sistemas e Computação – COPPE / UFRJ {flscosta, danielc, marta}@cos.ufrj.br

Ingresso: Março/2010

Previsão de Conclusão: Setembro/2012

Previsão de Data da Defesa da Proposta: Setembro/2011

Etapas já concluídas: Definição da proposta; Avaliação da viabilidade do ambiente

de computação em nuvem para execução de workflows científicos que demandam processamento de alto desempenho (PAD); Levantamento das necessidades de controle de erros e re-execuções de atividades; Análise de limitações e pontos de atenção; Modelagem e execução de um workflow real de bioinformática em ambiente de nuvem para utilizar como estudo de caso (Oliveira et al. 2011). Desenvolvimento inicial em Java utilizando a biblioteca MPJ (programação paralela) da ferramenta SciMultaneous para verificação e re-execução das atividades de um workflow científico (em nuvens) que executaram com algum tipo de falha.

Resumo. Neste artigo apresentamos estratégias que visam a melhora da eficácia da

execução de workflows científicos em ambientes de nuvens computacionais. Em função da complexidade do escalonamento de atividades computacionais nesses ambientes e também da volatilidade do ambiente, onde máquinas virtuais podem falhar a qualquer momento, buscamos inspiração nas estratégias já consolidadas dos Sistemas de Gerência de Bancos de Dados (SGBDs), para a criação de um mecanismo baseado em heurísticas para o monitoramento e re-execução das atividades de um workflow científico. Estas heurísticas vêm sendo desenvolvidas em uma ferramenta capaz de tomar ações no sentido de não permitir que a execução do workflow científico falhe, independente das falhas que ocorram no ambiente. Para construção das heurísticas tomamos como fonte de informação os dados de proveniência gerados em execuções de casos reais já armazenados em banco de dados na nuvem. Os dados de proveniência podem ser vistos como um histórico de tudo o que foi executado, consumido e produzido durante a execução de um workflow (seja ela paralela ou seqüencial). Este histórico deve ser armazenado de forma estruturada e uma das (várias) possibilidades é optar por um banco de dados relacional, permitindo ao usuário ou outra aplicação obter informações de quais workflows foram processados, quais atividades foram executadas com sucesso e quais devem ser re-executadas devido a falhas. Estes dados de proveniência são gerados pelas aplicações que controlam a execução dos workflows científicos e são peças fundamentais para o funcionamento do SciMultaneous.

Palavras-chave: Workflows Científicos, Re-execução, Dados de Proveniência.

(2)

1. Introdução

Nos últimos anos, a utilização de sistemas de workflows para a execução de experimentos científicos baseados em simulações computacionais vem aumentando consideravelmente (Mattoso et al. 2010). Experimentos em diversas áreas do conhecimento são dependentes de grande poder de processamento. Em virtude desta complexidade, o tempo gasto para a execução de uma simulação pode ser da ordem de meses, necessitando de processamento paralelo. Além dos supercomputadores como os presentes na lista do TOP 500 (TOP 500), outras soluções computacionais como grades vêm sendo utilizadas para suprir esta crescente demanda por recursos computacionais mais potentes e escaláveis. Entretanto, após a simulação computacional paralela, outros meses são dedicados à análise do resultado do experimento em um desktop pessoal. Essa diversidade de demanda entre os recursos computacionais necessários no ciclo de vida de um experimento surge como motivação para o uso de nuvens computacionais (Vaquero et al. 2009).

Quando pensamos em computação em nuvem, em geral, pensamos em conceitos como escalabilidade, tolerância à falha ou balanceamento de carga. A nuvem surge como um modelo computacional alternativo e viável para diversos tipos de aplicações (Costa et al. 2010) que é baseado em serviços Web capazes de oferecer software e hardware sob demanda aos usuários. A computação em nuvem apresenta uma nova abordagem para o processamento de alto desempenho (PAD). Ao utilizar a nuvem como fonte de recurso computacional o cientista não necessariamente precisa ter um gasto inicial alto, com a aquisição de máquinas. Também não terá um grande trabalho de configurar um ambiente complexo, uma vez que podemos clonar máquinas virtuais (MV) já configuradas na nuvem. Entretanto, no que tange à execução de workflows em nuvem, ainda existem muitos pontos a serem aperfeiçoados (Oliveira et al. 2010). Alguns autores como El-Khamra et al. (2010) defendem que a computação em nuvem não é aplicável em todos os casos de PAD, mas He et al. (2010), demonstram que algumas soluções que vêm sendo desenvolvidas neste tipo de ambiente têm conseguido alcançar bom desempenho.

Os Sistemas de Gerência de Workflows Científicos (SGWfC) atuais não proveem características de acesso nativo a nuvens computacionais de forma que o cientista possa aproveitar essa capacidade de processamento em execuções paralelas. Entretanto, propostas como o SciCumulus (Oliveira et al. 2010) vem surgindo para proporcionar aos SGWfC a gerência da execução paralela do workflow utilizando a infraestrutura de nuvem. A idéia principal do SciCumulus é, para cada atividade do workflow, gerar uma série de tarefas que podem ser executadas em paralelo (uma tarefa executando em cada MV). Tais soluções devem ser capazes de identificar e controlar falhas e apoiar execuções confiáveis na presença de concorrência e falhas. Existem dois níveis de tolerância que podemos considerar: nível tarefa e nível Workflow. O primeiro tipo é utilizado em sistemas paralelos e distribuídos, e está relacionado às falhas das tarefas do workflow que foram executadas em paralelo. O segundo requer técnicas aplicadas ao fluxo de execução, usadas para tratar condições de erro do workflow. Além disso, ainda existe a questão da re-execução de workflows que geraram erro, de forma que execuções futuras aproveitem os dados corretos que já foram gerados em execuções anteriores levando-se em conta a questão da localidade dos dados. Com isso, evitamos transferências, que são muito custosas em nuvens computacionais. Porém, como o ambiente de nuvem é ainda incipiente no que tange à execução de workflows científicos, a solução de tais problemas ainda encontra-se em aberto, assim como questões como segurança, tornando o controle de aplicações neste ambiente um desafio. Sobre a prevenção e recuperação a falhas, a nuvem também oferece novas possibilidades, pois devido à sua elasticidade, podemos traçar heurísticas variadas, de acordo com a importância da atividade (ou da tarefa) que

(3)

precisa ser monitorada. A migração de workflows, que possuem atividades críticas, para a nuvem já é uma realidade e é mais uma motivação para este estudo que busca melhorar o grau de eficiência de atividades executadas na nuvem.

Neste artigo apresentamos a SciMultaneous, uma ferramenta que possui um conjunto de heurísticas, inspiradas nas estratégias de controle presentes em SGBD. Execuções de workflows reais (Oliveira et al. 2011) evidenciam a necessidade de controle da execução das atividades do workflow em nuvens computacionais, pois é indesejável ter que reiniciar uma execução que já dura dias por conta da falha em poucas tarefas de uma atividade. Em especial, em ambientes de nuvem com larga escala de processadores, não encontramos mecanismos que monitorem a execução das tarefas (e consequentemente das atividades a elas associada) e sejam capazes de tomar decisões, para contornar problemas na execução. A idéia é trabalhar no nível de tarefa, avaliando o repositório de proveniência (que possui dados em tempo real) em busca de tarefas que tenham sido executadas com erro. Tais tarefas são então re-executadas pelo SciMultaneous.

O artigo está organizado da seguinte forma: A Seção 2 descreve características dos workflows científicos e sua adequação para execução em nuvens. A Seção 3 apresenta uma proposta para monitoramento e solução de problemas na execução de workflows na nuvem. A Seção 4 apresenta trabalhos relacionados e na Seção 5 concluímos o artigo.

2. Workflows Científicos Executados em Nuvens Computacionais

O ambiente de nuvem é um ambiente virtual onde recursos são compartilhados e utilizados, sob demanda, através da Web. No entanto esta estrutura virtual, para ser vista como uma nuvem, deve fornecer os serviços já mencionados, tais como poder de processamento escalável, alta disponibilidade e grande capacidade de armazenamento. Diferentemente dos clusters e supercomputadores, não existe uma estrutura virtual residente em uma nuvem pronta para ser explorada no contexto de workflows científicos. O que existem são MVs poderosas, que podem ser criadas à medida que seja necessário e que podem ser utilizadas para executar tarefas dos workflows. Entretanto, uma MV apenas pode não ser capaz de oferecer o poder de processamento necessário de muitos experimentos. Sendo assim, um ambiente com múltiplas MVs poderiam executar essas tarefas em paralelo. O SciCumulus (Oliveira et al. 2010) é um middleware de apoio à distribuição de tarefas de atividades de um workflow científico em nuvens computacionais. Ele é o responsável por coordenar a execução das tarefas de uma atividade de um workflow científico de modo a, sempre que for possível, distribuir as mesmas entre as MVs, melhorando assim o desempenho. Com o SciCumulus, isolamos o cientista da complexidade envolvida na gerência de execuções de workflows em paralelo. SciCumulus provê acesso ao repositório de proveniência em tempo real, oferecendo informações sobre o histórico de execução do workflow.

Entretanto, a tecnologia de nuvem ainda é incipiente no que tange à execução de workflows científicos (Antonopoulos e Gillam 2010), como por exemplo, o controle de falhas na execução dos workflows científicos. Com o ambiente de nuvem, novas variáveis foram introduzidas, como problemas de armazenamento, transferência e segurança. Não é trivial saber se as abordagens de controle de execução existentes poderiam ser aplicadas/adaptadas para o ambiente de nuvem. Na nuvem podem ocorrer diversas falhas (de virtualização, de execução de programas, acesso ao provedor de nuvem) e estas falhas são inevitáveis, mas suas consequências devem ser minimizadas. É neste ponto que o artigo está focado, no estudo e desenvolvimento de heurísticas para controle de falhas em execuções paralelas de workflows científicos em nuvens.

(4)

3. SciMultaneous: Controle de Execuções de Workflows em Nuvens

Tentar mapear os cenários de falha na execução de um workflow científico pode ser uma tarefa complexa e, em alguns casos, inviável. Diferente de workflows assíncronos, um sistema complexo de atividades encadeadas, ainda representa um grande desafio para a área de controle de falhas. Podemos levantar o maior número de pontos de atenção e trabalhar de forma exaustiva para que não ocorram falhas na hora da execução, ou caso ocorram, já se tenha previsto tal cenário e já exista uma ação a ser tomada (Ferreira et al. 2010). Esta abordagem é cara, pois envolve muito esforço humano e muitas vezes seu resultado não é o esperado, pois podem existir muitos cenários possíveis e únicos, o que torna muito difícil tal previsão. O que buscamos é oferecer mecanismos que auxiliem na execução de tarefas do workflow e baseando-se em heurísticas, sejam capazes de resolver determinadas categorias de problemas que aconteçam ao longo da execução do workflow. Está em desenvolvimento uma ferramenta chamada SciMultaneous, que foi acoplada ao SciCumulus, para melhorar a taxa de sucesso das execuções de um workflow científico por ele gerenciadas. SciMultaneous se baseia na consulta a dados de proveniência gerados pela execução de um workflow científico. É importante ressaltar que apesar de utilizarmos a base de proveniência do SciCumulus neste artigo, podemos utilizar o SciMultaneous com outros SGWfC, desde que o SGWfC permita consulta aos dados de proveniência.

SciMultaneous adota duas heurísticas básicas, sendo a primeira a execução com redundância de tarefas consideradas fundamentais, estando assim mais preparado para uma recuperação no caso de falha. Os dados de proveniência são utilizados para a classificação das tarefas, conforme veremos adiante. A segunda heurística trata do monitoramento contínuo das tarefas. No caso de falha, podemos direcioná-las para outra MV do mesmo provedor de nuvem ou até mesmo para outra nuvem. Esse redirecionamento não é trivial, pois temos que buscar uma MV que já possua os programas que a tarefa irá invocar previamente instalados.

Em ambas heurísticas tomamos como premissa que o cientista dispõe de duas ou mais nuvens computacionais para que o SciCumulus possa configurar o ambiente de execução paralela de atividades do workflow. Como os ambientes utilizados são nuvens públicas que cobram por sua utilização, a questão do custo é um ponto de atenção e em alguns casos determinante para a obtenção dos recursos. Com objetivo de minimizar estes custos e ainda obter um rendimento satisfatório podemos utilizar dois provedores, um que apresente um custo mais acessível, e outro mais consagrado, que em virtude de seu maior poder de processamento e confiabilidade, tenha um custo mais elevado. Ou ainda, dentro do mesmo provedor, podemos utilizar, para as tarefas mais complexas, MVs com maior poder de processamento. No entanto, a idéia é que o ambiente mais caro (e normalmente o mais confiável), seja utilizado apenas para execução de tarefas primordiais ou tarefas que falhem também na re-execução. A primeira heurística utiliza execuções anteriores para determinar quais atividades (e suas tarefas) são críticas. Atividades críticas são pontos de gargalo na execução do workflow: atividades que não podem ser executadas em paralelo (que são mapeadas para uma tarefa), atividades que demandam muito tempo, e atividades que demandem uma configuração específica de hardware que fuja à capacidade da nuvem que esteja sendo utilizada. Tais informações podem ser obtidas da análise dos dados de proveniência (Freire et al. 2008). Estas informações são geradas de forma automática e em tempo real pelo SciCumulus. A primeira estratégia então, busca nos princípios já consolidados em SGBD sua inspiração (Elmasri e Navathe 2006). As atividades classificadas como principais terão sua execução replicada em mais de um nó, seguindo a mesma idéia de um backup de banco de dados. No entanto, quando pensamos no backup de banco de dados, podemos classificá-lo como um ponto de recuperação, pois os backups

(5)

irão armazenar um estado consistente até certo ponto. Tudo aquilo que foi realizado após este ponto, não existirá em sua massa de dados. Pensando de novo em bancos de dados, para recuperar essa base totalmente, teríamos que recorrer, caso exista, a um log de transação (Elmasri e Navathe 2006), de modo à re-executar todos os comandos que foram feitos na base, após o backup restaurado. Voltando para o nosso controle da execução do workflow, nosso backup seria feito em tempo real, criando uma redundância da execução da tarefa em questão. No caso da falha de processamento na MV original, a execução do workflow seria desviada para a MV redundante, sem perda significativa de desempenho.

A segunda heurística é o monitoramento das atividades em execução. Nos casos de falha seguirá a seguinte estratégia: Primeiro tentar-se-á executar a atividade em questão na mesma nuvem e na mesma MV, pois a falha ocorrida pode representar algum problema pontual no ambiente, que em uma segunda tentativa não ocorrerá. Em seguida, se o erro persistir, partimos para a execução em outra MV da nuvem. Por fim, se ainda assim não obtivermos sucesso, partimos para a execução em outro ambiente de nuvem, com maior poder de processamento por MV (ou mais confiável). Esta abordagem busca aproveitar a localidade dos dados, da primeira nuvem, pois se a tarefa em questão for dependente de dados, estes deverão ser migrados entre as nuvens, o que demandará um gasto. Esta abordagem se assemelha à re-execução log de transação. Partindo de um estado consistente de execução das tarefas do workflow, re-executamos a tarefa que apresentou problemas. Esta tentativa de re-execução será realizada um número finito de vezes, e no caso de falha em todas as tentativas, este workflow será marcado como inválido, e deverá ser avaliado porque a tarefa falhou. Assim como nos SGBD, acreditamos que quanto maior a preocupação com falhas e recuperação, maior a sobrecarga computacional. No entanto, com as heurísticas propostas, buscamos minimizar ou corrigir as falhas que possam surgir, melhorando assim, na média, o desempenho de execuções do workflow.

4. Trabalhos Relacionados

É possível traçar um paralelo entre o que propomos para nuvem e o que vem sendo discutido em abordagens relacionadas. Ferreira et al. (2010) buscam uma representação capaz de apresentar a qualquer momento o estado de um workflow. Para isso utiliza o conceito de tuplas formadas por um estado atual, o estado anterior ao atual, as N condições que tornaram possível tal avanço e as ações que foram tomadas para efetivar essa transição. No entanto, para workflows complexos como os científicos e executados em paralelo, pode ser uma tarefa muito complexa controlar a criação dessas tuplas, problema não enfrentado em nosso trabalho, pois a consulta aos dados de proveniência nos informa de forma direta, durante a execução, onde estão os pontos de falha. Outra questão relacionada apontada por Sindrilaru et al. (2010) é a maneira como determinamos se uma atividade do workflow foi executada com sucesso ou não. De maneira mais geral, a restauração ou re-execução de um workflow que tenha sofrido uma falha, será mais simples se ao longo de sua execução temos os dados utilizados gravados em disco. No trabalho de Lee e Zomaya (2010) existe uma estratégia de re-agendamento de atividades na nuvem para se garantir a conclusão de um conjunto de atividades dentro de um prazo estimado. Antes do início da execução das atividades em uma grade computacional, é feita uma previsão do tempo que cada uma consumirá para ser finalizada. Se durante a execução das atividades constata-se que está se gastando mais tempo que o esperado (em virtude, por exemplo, da flutuação dos recursos das máquinas) alguma ou algumas atividades podem ser re-agendadas para a nuvem no intuito de garantir que todo o conjunto de tarefas a ser processado termine dentro do tempo esperado. O trabalho deles foca na nuvem como um auxílio à solução principal baseada em grade computacional. Uma vantagem do SciMultaneous é o baixo acoplamento, ou seja, só depende dos dados

(6)

de proveniência, assim pode ser utilizado com outras soluções de gerência de execução de atividades.

5. Conclusões

Experimentos científicos de larga escala são dependentes de alta capacidade de processamento. Para oferecer uma resposta eficiente, estratégias como distribuição de tarefas com controle da execução e tolerância a falhas devem ser aplicadas ao ambiente de nuvens. Neste artigo, propomos o SciMultaneous, uma ferramenta desenvolvida para trabalhar em conjunto com um gerente de execução de workflows científicos, capaz de verificar se alguma tarefa da cadeia de execução do workflow deve ser re-executada em decorrência de algum tipo de falha, aumentando assim as chances de sucesso do workflow (e consequentemente do experimento a ele associado). O desenvolvimento e aprimoramento do conjunto de heurísticas descritas é um trabalho ainda em andamento. Futuramente compararemos nossa estratégia de controle de execução com outras estratégias propostas como a de Lee e Zomaya (2010).

Referências

Antonopoulos, N., Gillam, L., (2010), Cloud Computing: Principles, Systems and Applications. 1 ed. Springer. Costa, F., Oliveira, D., Ogasawara, E., Lima, A. A. B., Mattoso, M., (2010), "Athena: Text Mining Based Discovery of Scientific Workflows in Disperse Repositories". In: Third International Workshop on REsource Discovery (RED), Paris, France.

El-Khamra, Y., Kim, H., Jha, S., Parashar, M., (2010), "Exploring the Performance Fluctuations of HPC Workloads on Clouds". In: Proceedings of the 2010 IEEE Second International Conference on Cloud Computing Technology and Science, p. 383–387, Washington, DC, USA.

Elmasri, R., Navathe, S. B., (2006), Fundamentals of Database Systems. 5 ed. Addison Wesley.

Ferreira, J. E., Wu, Q., Malkowski, S., Pu, C., (2010), "Towards Flexible Event-Handling in Workflows Through Data States". In: Proc. of the 2010 IEEE 6th World Congress on Services2010 IEEE 6th World Congress on Services, p. 344-351, Miami, FL.

Freire, J., Koop, D., Santos, E., Silva, C. T., (2008), "Provenance for Computational Tasks: A Survey", Computing in Science and Engineering, v.10, n. 3, p. 11-21.

He, Q., Zhou, S., Kobler, B., Duffy, D., McGlynn, T., (2010), "Case study for running HPC applications in public clouds". In: Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, p. 395–401, New York, NY, USA.

Lee, Y. C., Zomaya, A. Y., (2010), "Rescheduling for reliable job completion with the support of clouds", Future Generation Computer Systems, v. 26 (out.), p. 1192-1199.

Mattoso, M., Werner, C., Travassos, G. H., Braganholo, V., Murta, L., Ogasawara, E., Oliveira, D., Cruz, S. M. S. da, Martinho, W., (2010), "Towards Supporting the Life Cycle of Large-scale Scientific Experiments", Int Journal of Business Process Integration and Management, v. 5, n. 1, p. 79–92.

Oliveira, D., Ocana, K., Ogasawara, E., Dias, J., Baião, F., Mattoso, M., (2011), "A Performance Evaluation of X-ray Crystallography Scientific Workflow using SciCumulus". In: International Conference on Cloud ComputingInternational Conference on Cloud Computing, Washington D.C.

Oliveira, D., Ogasawara, E., Baião, F., Mattoso, M., (2010), "SciCumulus: A Lightweigth Cloud Middleware to Explore Many Task Computing Paradigm in Scientific Workflows". In: International Conference on Cloud Computing, p. 378 - 385, Miami, FL.

Sindrilaru, E., Alexandru Costan, Valentin Cristea, (2010), "Fault Tolerance and Recovery in Grid Workflow Management Systems". International Conference on Complex, Intelligent and Software Intensive Systems

TOP 500, (2010), TOP500 Supercomputing Sites, http://www.top500.org/.

Vaquero, L. M., Rodero-Merino, L., Caceres, J., Lindner, M., (2009), "A break in the clouds: towards a cloud definition", SIGCOMM Comput. Commun. Rev., v. 39, n. 1, p. 50-55.

Referências

Documentos relacionados

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Mesmo sem apresentar uma sistematicidade do ensino, a professora conseguiu, através das práticas, propor atividades que valorizam o trabalho com a linguagem oral, como o

Este trabalho tem como objetivos apresentar os problemas ocasionados pelo recebimento de mensagens não solicitadas e pesquisar técnicas variadas no combate ao spam, em especial,

Mineração de conhecimento interativa em níveis diferentes de abstração: Como é  difícil  prever  o  que  exatamente  pode  ser  descoberto  de  um  banco 

As relações hídricas das cultivares de amendoim foram significativamente influenciadas pela a deficiência hídrica, reduzindo o potencial hídrico foliar e o conteúdo relativo de

Em contrário senso, ZUIDEMA (2000) encontrou menor contração com o aumento da velocidade de injeção. Já os experimentos de GIPSON et al. Explicações e conclusões

O presente trabalho tem como objetivo geral caracterizar as comunidades de invertebrados terrestres associadas a nove cavidades naturais localizadas no município