Ferramentas do usuário

Ferramentas do site


v04n01:28

ETC & TAL

EDIÇÃO Abril 2011

Migração de Experimentos Científicos para a Nuvem

Veja uma maneira de explorar a Nuvem para fazer Ciência

Este artigo discute algumas das principais questões sobre adotar serviços da nuvem para realizar experimentos científicos. O foco está na utilização de workflows científicos que necessitam de alto desempenho.

A vantagem mais importante por trás do conceito de computação na nuvem (Cloud Computing) para experimentos científicos é que qualquer cientista é capaz de acessar muitos tipos de recursos (hardware e software) sem ter de adquirir ou configurar uma infraestrutura completa. Essa é uma necessidade fundamental para cientistas e aplicações científicas. É interessante que cientistas trabalhem independentemente da complexidade de configurar e instanciar um ambiente computacional completo, podendo, desta maneira, focar somente no desenvolvimento do experimento.

A quantidade de artigos científicos e industriais publicados que fornece evidência que a computação em nuvem já vem sendo considerada como um paradigma definitivo e já está sendo adotada por muitos projetos científicos. Entretanto, várias questões precisam ser analisadas quando cientistas decidem migrar um experimento científico para ser executado no ambiente da nuvem. O artigo online “Azure Use Case Highlights Challenges for HPC Applications in the Cloud” apresenta vários desafios focados no apoio a HPC (computação de alto desempenho - High Performance Computing), especificamente, para a plataforma Windows Azure da Microsoft. Neste artigo, nós discutimos alguns tópicos importantes para o apoio de computação em nuvem do ponto de vista científico. Alguns desses tópicos foram previamente organizados como uma taxonomia no nosso capítulo “Towards a Taxonomy for Cloud Computing from an e-Science Perspective” do livro “Cloud Computing: Principles, Systems and Applications”, e a versão original (em inglês) deste artigo está na página “HPC in the Cloud” (veja Recursos).

Background em e-Science e Workflows Científicos

Nas últimas décadas, o uso efetivo de ambientes computacionais científicos evoluiu rapidamente, abrindo caminho para a chamada e-Science. Os experimentos em e-Science também são conhecidos como experimentos in silico e podem ser encontrados em vários domínios científicos, tais como bioinformática e exploração de petróleo em águas profundas. Um experimento in silico é conduzido por um (ou mais de um) cientista responsável por gerenciar o experimento inteiro, cujas etapas podem ser nomeadas em composição, execução e análise. A maioria desses experimentos é composta por um conjunto de programas encadeados de maneira coerente. Tal fluxo de programas, onde a saída de um programa é a entrada do próximo no fluxo, possui um mesmo objetivo científico final. Este fluxo é denominado workflow científico.

Um workflow científico pode ser definido como uma abstração que permite a composição estruturada e controlada de programas e dados como uma sequencia de operações com um objetivo desejado. Tais workflows representam uma alternativa atraente para modelar pipelines ou fluxo de programas e serviços baseados em scripts, os quais normalmente representam algoritmos e métodos computacionais amplamente conhecidos e utilizados. Sistemas de Gerência de Workflows Científicos (Scientific Workflow Management Systems - SWfMS) são responsáveis pela execução do workflow e coordenam a chamada de programas, localmente ou em ambientes remotos. Os SWfMS precisam oferecer apoio durante todo o ciclo de vida do experimento, incluindo: (1) projeto do workflow através de uma interface guiada (para seguir um método científico específico); (2) controle de diversas variações na execução do workflow; (3) execução do workflow de um modo eficiente (geralmente utilizando técnicas de paralelismo e ambientes HPC); (4) controle de falhas; e (5) acesso, armazenamento e gerenciamento de dados.

A combinação do apoio ao ciclo de vida com a utilização de um ambiente HPC apresenta vários desafios aos SWfMS existentes, devido ao ambiente de execução heterogêneo do workflow. Quando o ambiente HPC é uma plataforma em nuvem, surgem outras questões, conforme discutido a seguir neste artigo.

Lista de itens a conferir antes de migrar um experimento científico

Nesta seção nós discutimos as questões sobre workflow científico relacionadas à computação em nuvem em termos das características de arquitetura, modelo de negócio, infraestrutura tecnológica, privacidade, preço, orientação e acesso, conforme ilustrado na Figura 1.

Figura 1: Estatística de visualização das aulas de Arquitetura de Computadores

Preço.

Custo é uma das características mais importantes em ambos os domínios científico e comercial. Uma vez que a maioria das nuvens públicas adota o modelo de pagamento por utilização (pay per use), é importante prever o preço final a ser pago e determinar como os recursos financeiros disponíveis para o experimento científico serão usados. No geral, o preço a ser pago para utilizar as nuvens segue três tipos (que têm sido analisados por cientistas): gratuito (normalmente se cientistas possuem sua própria nuvem ou acessam a nuvem de outra instituição), pago-por-uso (paga um valor específico relacionado à utilização dos seus recursos normalmente em horas) e bill-broken (cientistas pagam pra usar cada componente independente do tempo de utilização). Entretanto, essa avaliação está longe de ser simples, porque custos economizados pela nuvem (tais como adquirir equipamento e contratar suporte técnico) são difíceis de medir e calcular.

Modelo de Negócios.

Nuvens podem ser classificadas em três categorias principais: software como serviço (Software as a Service - SaaS), infraestrutura como serviço (Infrastructure as a Service - IaaS) e plataforma como serviço (Platform as a Service - PaaS), criando um modelo denominado SPI. A avaliação do ambiente em nuvem deve considerar o modelo de negócios relativo ao suporte a dados científicos. No campo de e-Science, os dados gerados geralmente são considerados um dos recursos mais preciosos. O modelo SPI não considera serviços que são baseados em armazenamento ou bancos de dados. Então, é importante verificar os modelos que fornecem armazenamento como serviço e banco de dados como serviço: o primeiro fornece acesso a vários dispositivos de armazenamento que estão localizados remotamente, e o segundo fornece operações e funções de um sistema de gerência de banco de dados hospedado remotamente. Serviços de banco de dados são particularmente importantes em experimentos científicos para armazenar dados de proveniência, tal que podem ser consultados com acesso controlado (o que não é apoiado por serviços de armazenamento).

Características de Arquitetura.

Quando analisamos as principais características de arquitetura da nuvem, é importante averiguar o apoio a visualização, segurança, compartilhamento de recursos e escalabilidade. Por exemplo, nuvens podem ocasionalmente realocar aplicações entre seus hospedeiros e alocar múltiplas aplicações no mesmo hospedeiro de acordo com a disponibilidade de recursos. Tais movimentos e instabilidades podem gerar impactos negativos no desempenho do workflow devido ao fluxo de execução de atividades e à transferência de dados entre as mesmas. Idealmente, o escalonador da nuvem deveria estar em sincronia com o SWfMW para estar ciente do fluxo.

Privacidade.

Privacidade é uma questão fundamental em experimentos científicos. Muitos experimentos e resultados ainda não publicados podem ser privados durante o curso do experimento. Podemos classificar as abordagens em nuvem como privada, pública e híbrida. Do ponto-de-vista científico e em termos de privacidade, a abordagem mais “segura” é utilizar nuvens privadas. Em tais nuvens, todo o controle de segurança é definido pelo cientista (ou um especialista do time), o que significa que acesso externo é controlado pelo mesmo. Entretanto, nuvens híbridas e públicas geralmente fornecem mecanismos avançados de segurança que garantem privacidade de dados e aplicações. Cientistas têm que analisar se os mecanismos fornecidos são suficientes para suas expectativas.

Acesso.

Existem vários tipos de acessos, tais como (lista não exaustiva): navegadores, thin clients, clientes moveis e API. Analisar o tipo de acesso fornecido é importante para cientistas, pois o uso efetivo de tecnologias diferentes em experimentos científicos requer diferentes tipos de acesso. Navegadores Web são comumente utilizados para acessar serviços na nuvem. É intuitivo usar tais navegadores porque quase todo computador tem pelo menos um instalado e pode acessar tranquilamente os serviços na nuvem. Além disso, muitos navegadores Web são próprios para acessar a nuvem, tal como o Google Chrome. Thin clients e dispositivos móveis são outro tipo de acesso importante fora de um computador desktop. Finalmente, API é um modo fundamental para acessar a nuvem via comandos de linguagens de programação (tais como Java, Python ou C). Aplicações científicas complexas utilizam APIs para acessar a infraestrutura da nuvem numa forma nativa. Nesse caso, cientistas devem analisar os métodos de acesso já utilizados pela aplicação e verificar se o método de acesso pode ser usado (ou adaptado) para migrar pra nuvem.

Orientação da Nuvem.

A orientação da nuvem é diferente de acordo com o modelo de negócios utilizado. No modelo SaaS, aplicações são desenvolvidas na nuvem e podem apenas ser chamadas, i.e., o controle de execução está na aplicação. Nesse caso, consideramos essa abordagem como centrada na tarefa, pois os cientistas precisam transferir o controle aos donos da aplicação em vez de ter o controle durante a realização do experimento. Por outro lado, quando a infraestrutura é fornecida como serviço (IaaS, no qual hardware virtual é fornecido para ser configurado e controlado), o cientista tem controle total sobre as ações. Os programas serão executados nas configurações de ambiente escolhidas pelos cientistas. Nesse caso, consideramos essa abordagem centrada no usuário. Cientistas têm de analisar qual abordagem é melhor para suas necessidades. Se eles querem apenas executar uma aplicação tal como BLAST (para bioinformática), eles podem escolher uma abordagem centrada na tarefa. Se eles quiserem executar vários programas, mudar as configurações do ambiente, etc, uma abordagem centrada no usuário é mais adequada.

Infraestrutura de Tecnologia.

A infraestrutura de tecnologia define como uma abordagem específica para a nuvem é fisicamente implementada. Ela pode ser baseada em grades (grids), par-a-par (peer-to-peer), PCs, e clusters, ou uma combinação das mesmas. Essa avaliação pode ser comprometida em nuvens públicas, tais como a Amazon EC2, porque não é possível saber qual o tipo de tecnologia é utilizada para implementar a nuvem de fato. Entretanto, em nuvens privadas, é possível obter tal informação. Isso é muito útil porque muitos experimentos precisam de um cluster computacional ou uma grade para executar em paralelo e produzir resultados em um tempo factível e devemos saber se a nuvem pode oferecer esse apoio.

Conclusões

Este artigo mostrou que apesar do alto interesse da comunidade científica (especialmente aqueles que precisam executar aplicações científicas de alto desempenho computacional) sobre computação em nuvem, esse é ainda um campo em aberto. Escolher o melhor ambiente em nuvem para apoiar de forma eficiente o experimento científico é uma tarefa complexa e nada trivial. A utilização de nuvens para a execução de experimentos científicos é um avanço importante, mas ainda existe a necessidade de serviços focados na execução de workflows científicos para conectar melhor a nuvem a SWfMS. O SciCumulus é uma iniciativa importante nessa direção, enquanto outros sistemas (tais como Swift e Pegasus) também estão incorporando suporte a computação em nuvem.

Recursos

HPC in the Cloud http://www.hpcinthecloud.com/hpccloud/2011-03-04/migrating_scientific_experiments_to_the_cloud.html.

Taxonomia: D. Oliveira, F. Baião, e M. Mattoso, 2010, “Towards a Taxonomy for Cloud Computing from an e-Science Perspective”, Cloud Computing: Principles, Systems and Applications (to be published), Heidelberg: Springer-Verlag

Amazon EC2: Amazon Elastic Compute Cloud: http://aws.amazon.com/ec2

SciCumulus: D. Oliveira, E. Ogasawara, F. Baião, e M. Mattoso, 2010, SciCumulus: A Lightweight Cloud Middleware to Explore Many Task Computing Paradigm in Scientific Workflows, In: Proc. 3rd IEEE International Conference on Cloud Computing, Miami, FL.

SWIFT: Y. Zhao, M. Hategan, B. Clifford, I. Foster, G. von Laszewski, V. Nefedova, I. Raicu, T. Stef-Praun, e M. Wilde, 2007, Swift: Fast, Reliable, Loosely Coupled Parallel Computation, In: Services 2007, p. 206, 199, Salt Lake City, UT, USA.

PEGASUS: E. Deelman, G. Mehta, G. Singh, M. Su, e K. Vahi, 2007, “Pegasus: Mapping Large-Scale Workflows to Dis-tributed Resources”, Workflows for e-Science, Springer, p. 376-394.

Outros Artigos e Livros sobre Computação nas Nuvens

N. Antonopoulos e L. Gillam, 2010, Cloud Computing: Principles, Systems and Applications. Springer.

M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, et al., 2010, A view of cloud computing, Commun. ACM, v. 53, n. 4, p. 50-58.

E. Deelman, G. Singh, M. Livny, B. Berriman, e J. Good, 2008, The cost of doing science on the cloud: the Montage example, In: Procs. of ACM/IEEE Conf. on Supercomputing, p. 1-12.

C. Hoffa, G. Mehta, T. Freeman, E. Deelman, K. Keahey, B. Berriman, e J. Good, 2008, On the use of cloud computing for scientific workflows, In: IEEE Intl. Conf. on eScience, p. 7–12

Sobre os Autores

Daniel de Oliveira possui graduação em Ciência da Computação pela Universidade Federal do Rio de Janeiro (2004) e mestrado em Engenharia de Sistemas e Computação pela COPPE/Universidade Federal do Rio de Janeiro (2008). Atualmente realizando o doutorado pela COPPE/UFRJ, é bolsista da Fundação Coordenação de Projetos, Pesquisas e Estudos Tecnológicos (COPPETEC) e CAPES. Possui experiência na área de Ciência da Computação, com ênfase em Banco de Dados, atuando principalmente nos seguintes temas: gerência workflows científicos (Scientific Workflow Management), ontologias, mineração de texto (Text Mining), e-Science (e-Ciência), Computação em Nuvem (Cloud Computing) e Peer-to-Peer (P2P).
Fernanda Baião é professor adjunto da Universidade Federal do Estado do Rio de Janeiro (UNIRIO). Fez doutorado (2001) e mestrado (1997) em Engenharia de Sistemas e Computação pela COPPE/UFRJ. Coordena projeto de pesquisa com financiamento da FAPERJ, e participa de diversos projetos de pesquisa pela UNIRIO e em parceria com outras instituições como PUC-Rio e COPPE/UFRJ. Leciona cursos a nível de pós-graduação, extensão e graduação sobre Gestão de Informações e Bancos de Dados, nos temas de Modelagem Conceitual e Ontologias, Distribuição de Dados e Paralelismo, Mineração de Dados e Arquitetura de TI. Participa de vários comitês de organização e de programa de Conferências Nacionais e Internacionais, e de revistas nacionais. Atua em projetos de transferência de conhecimento junto a organizações, que envolvem o desenvolvimento de sistemas de informação, Ontologias, arquitetura de informações e modelagem de processos de negócio.
Marta Mattoso possui graduação em Ciência da Computação pela Universidade Federal do Rio de Janeiro (1980), mestrado em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro (1987) e doutorado em Engenharia de Sistemas e Computação pela Universidade Federal do Rio de Janeiro (1993). É Professora Associada da Universidade Federal do Rio de Janeiro. Foi diretora de publicações da Sociedade Brasileira de Computação (2005-2007). Tem experiência na área de Ciência da Computação, com ênfase em Banco de Dados, atuando principalmente nos seguintes temas: paralelismo e distribuição em bancos de dados, workflows científicos e gerência de documentos XML. É Bolsista de Produtividade em Pesquisa do CNPq - Nível 1C
v04n01/28.txt · Última modificação: 2020/09/22 02:27 (edição externa)

Ferramentas da página