Um Sistema de Fluxos de Trabalho Cient´ ıficos Eficiente e Escal´ avel George Teodoro e Renato Ferreira Departamento de Ciˆ encia da Computac ¸˜ ao Universidade Federal de Minas Gerais Belo Horizonte, Brasil {george, renato}@dcc.ufmg.br Resumo O aumento no volume de dados cient´ ıficos dispon´ ıvel ge- rou uma demanda de processamento que extrapola a capa- cidade de apenas um computador, criando a necessidade de utilizac ¸˜ ao de recursos distribu´ ıdos para a an ´ alise desses dados. Entretanto, a maioria das aplicac ¸˜ oes cient´ ıficas s˜ ao seq¨ uenciais e n˜ ao s˜ ao capazes de utilizar ambientes dis- tribu´ ıdos. Em resposta a essas dificuldades foram introdu- zidos os sistemas de fluxo de trabalho cient´ ıficos, os quais permitem a execuc ¸˜ ao de aplicac ¸˜ oes sequˆ enciais em ambi- entes distribu´ ıdos, possibilitando a explorac ¸˜ ao de grandes bases de dados. Neste trabalho, apresentamos um sistema de fluxo de trabalho ´ unico no sentido de que o mesmo foi especialmente desenvolvido para facilitar a execuc ¸˜ ao des- sas aplicac ¸˜ oes em ambientes distribu´ ıdos utilizando bancos de dados para armazenamento de dados cient´ ıficos. Nosso sistema ´ e otimizado para execuc ¸˜ ao fluxos de trabalho inten- sivos em dados, pois nos preocupamos com gerenciamento dos mesmos. Os resultados mostram que podemos alcanc ¸ar speedups pr´ oximos do linear para aplicac ¸˜ oes sofisticadas, criadas por m´ ultiplos componentes. 1. Introduc ¸˜ ao A an´ alise de grandes volumes de dados tem se tornado fundamental em diversas ´ areas da ciˆ encia. Os avanc ¸os na ´ area de tecnologia e computac ¸˜ ao tem permitido a criac ¸˜ ao e o armazenamento de dados cada vez mais volumosos. Um exemplo de projeto cient´ ıfico que gera dados signifi- cativamente volumosos ´ e o projeto Large Handron Collider (LCD), iniciado em 2006 no CERN, que dever´ a gerar da ordem de petabytes de dados por ano [4]. Associado a isso, notamos que muitas dessas an´ alises podem ser vistas como a aplicac ¸˜ ao sucessiva de diversas etapas de processamento nesses grandes volumes de dados, tendo como objetivo produzir resultados public´ aveis a partir dos dados brutos. Essas computac ¸˜ oes podem ser modela- das como redes de processamento em fluxo de dados, sendo descritas como grafos direcionados onde os nodos represen- tam componentes de processamento e as arestas os fluxos de dados entre eles. Os sistemas de fluxo de trabalho cient´ ıficos [2, 8, 9] (Sci- entific Workflow Systems) foram introduzidos com o obje- tivo de facilitar a execuc ¸˜ ao dessas an´ alises para dados muito volumosos, que geram longos per´ ıodos de processamento. Esses sistemas devem prover um ambiente onde cientistas possam criar e descrever componentes baseados nas tarefas que desejam executar, organizar os componentes em fluxo de trabalho de acordo com a semˆ antica da aplicac ¸˜ ao, execu- tar os fluxos criados em grandes colec ¸˜ oes de dados e moni- torar a execuc ¸˜ ao, por exemplo, atrav´ es da an´ alise de resulta- dos intermedi´ arios. Esses sistemas tamb´ em devem, natural- mente, explorar o paralelismo inerente a m´ ultiplas tarefas num ambiente distribu´ ıdo como um Grid, al´ em de permitir a reutilizac ¸˜ ao de componentes, ou seja, etapas de processa- mento entre aplicac ¸˜ oes. Na Figura 1, vemos o fluxo de trabalho de uma aplicac ¸˜ ao biom´ edica t´ ıpica de an´ alise de imagens. Esse exemplo en- volve an´ alise de imagens microsc´ opicas de placentas de ra- tazanas para estudar mudanc ¸as no fen´ otipo, induzidas por manipulac ¸˜ oes gen´ eticas. Nesse artigo, apresentamos um sistema de execuc ¸˜ ao de fluxos de trabalho cient´ ıficos baseado em Mobius [7] e Anthill [5]. Nesse sistema, duas premissas foram obser- vadas: 1) Tanto os dados de entrada quando os dados de sa´ ıda s˜ ao grandes, e precisam ser armazenados em ambien- tes distribu´ ıdos; 2) Muitas das etapas da execuc ¸˜ ao est˜ ao pre- viamente implementadas e devem poder ser incorporadas ao fluxo de trabalho a partir de implementac ¸˜ oes prot´ otipo, como c´ odigos matlab. Mobius foi usado como armazena- dor persistente de dados, tantos os iniciais como os finais e os intermedi´ arios (aqueles que migram entre componentes). Anthill ´ e nossa plataforma de execuc ¸˜ ao de aplicac ¸˜ oes de fluxos de dados. Nesse ambiente as aplicac ¸˜ oes s˜ ao decom- postas em filtros que transformam dados recebidos em stre- ams de entrada, produzindo assim streams de sa´ ıda. Anthill