• Nenhum resultado encontrado

2.2 Grades Computacionais

3.1.1 Infraestruturas de grade computacional

Grade é uma infraestrutura que envolve o uso integrado e colaborativo de computadores, redes, bancos de dados e instrumentos científicos que é mantida e gerida por múltiplas organizações. Aplicações de grade frequentemente envolvem grandes quantidades de da- dos e/ou recursos de computação que requerem o compartilhamento seguro de recursos heterogêneos através das fronteiras organizacionais. Isto torna a implantação e o gerencia- mento de aplicações na grade uma tarefa complexa. Para tratar essa complexidade várias foram as iniciativas para prover acesso uniforme aos recursos heterogêneos da grade [91]. A seguir são apresentadas algumas das principais infraestruturas de grade disponíveis no momento.

• UNICORE: é uma implementação open source da OGSA com WSRF que res- peita os padrões propostos pelo OGF [92]. Implementado em Java, oferece acesso intuitivo, seguro e uniforme ao ambiente distribuído, possuindo mecanismo de au- tenticação integrado aos processos administrativos reduzindo o treinamento e os requisitos de suporte, permitndo também a migração de tarefas entre as diferentes plataformas. Sua arquitetura é dividida em três camadas [93]. A camada do usuário é implementada pelo UNICORE Client que em geral é executado na máquina do usuário. Na segunda camada, a servidora, é onde são disponibilizados um ou mais Usites (UNICORE Grid sites) nos quais os clientes podem se conectar. E a terceira camada, a de sistema, é organizada em um ou mais sites virtuais (Vsites) que re- presentam o sistema de computação e/ou de armazenamento dos recursos físicos. Como principais facilidades o UNICORE oferece uma interface gráfica onde os usuá- rios podem criar e submeter tarefas, um sistema de gerência de tarefas, um sistema para aprovisionamento de dados durante a execução das tarefas e tem controle de fluxo baseado em DAGs (Directed Acyclic Graphs), suporte para lote de tarefas, gerência de recursos e suporte à execução de workflows. Grades de produção como o EuroGrid [94], GRIP [95], OpenMolGrid [96] e NAREGI [97] usam o UNICORE como infraestrutura de grade.

• Legion: é um middleware implementado em C++ que combina um grande nú- mero de hosts heterogêneos, sistemas de armazenamento, bancos de dados legados e objetos distribuídos sobre uma rede local como uma única plataforma de compu- tação [98]. Legion fornece os meios para agrupar estes componentes espalhados em um único metacomputador baseado em objetos com um alto grau de flexibilidade e autonomia [99]. O Legion é estruturado como um sistema de objetos distribuídos com processos ativos que se comunicam através de um método remoto uniforme para invocar serviços. Todos os recursos da grade (hardware e software) podem ser representados por objetos Legion. Os modelos de objetos Legion são descritos

usando uma linguagem de descrição de interface (Interface Description Language - IDL) e são compilados e ligados a implementações para a linguagem desejada. Essa abordagem permite a interoperabilidade de componentes em múltiplas linguagens em plataformas heterogêneas. Como todos os elementos do sistema são objetos, eles podem se comunicar uns com os outros, independentemente de localização, a heterogeneidade, ou detalhes de implementação resolvendo assim problemas de en- capsulamento e interoperabilidade. Legion define um conjunto de tipos de objetos que suportam os serviços básicos do sistema, tais como o serviço de nomes, binding, e a criação, ativação, desativação e eliminação de objetos. Este conjunto básico de objetos fornece os mecanismos que ajudam classes a implementar políticas adequa- das para as suas instâncias. Legion também permite aos usuários definir e construir as suas próprias classes de objetos. Grades de produção que usam Legion são NPACI Testbed [100] e NCBioGrid [101].

• Gridbus: o Projeto Gridbus está engajado na concepção e no desenvolvimento de tecnologias para grade com o objetivo de suportar aplicações de eScience e eBu- siness [102]. O projeto conta com ferramentas visuais para o desenvolvimento de aplicações distribuídas, escalonadores baseados em economia, serviços Web para pu- blicação de serviços da grade (Grid Market Directory - GMD), serviços de contabili- dade da grade, ferramentas para criação de testbeds dinâmicos e interativos, portais para a gestão baseada na Web de execução as aplicações da grade e o conjunto de ferramentas GridSim amplamente utilizado para a avaliação de desempenho [103]. O Gridbus tem como componentes de destaque o Gridbus Broker (um servico ne- gociador de dados para aplicações de escalonamento distribuído orientado a dados para recursos da grade com sistemas operacionais Windows e Unix), o Grid Bank (uma infraestrutura de contabilidade, autenticação e gerência de pagamentos) e o Grid Workflow Management System (um sistema de gerência de workflow). Exem- plos de grades de produção que usam de alguma forma o Gridbus são o ePhysics Portal [104], Australian Virtual Observatory [105], Belle Analysis Data Grid [106], Global Data Intensive Grid Collaboration [107], NeuroGrid [108] e Amsterdam Pri- vate Grid [109].

• Integrade: o projeto Integrade [110] é um esforço de várias universidades (USP, PUC-Rio, UFMS, UFG e UFMA) na construção de um middleware para Grade Computacional que usa o tempo ocioso de computadores pessoais para proces- samento intensivo (Grades Oportunistas) [112]. É um software aberto multi- plataforma, orientado a objetos, feito em CORBA [113] que permite aplicações de longa duração, seqüências paramétricas (saco de tarefas - BoT (Bag of Tasks)) e paralelas (modelos BSP (Bulk Synchronous Parallel) e MPI (Message Passing In-

terface) [111]). Implementa tolerância a falhas através de pontos de salvaguarda (checkpoints), que são incorporados às aplicações pelo uso de uma biblioteca de checkpoint. Provê uma interface gráfica para monitoramento dos recursos da Grade e das aplicações em execução. No entanto requer alteração nas aplicações (compi- lação, no mínimo) para que estas possam usar as facilidades da tolerância a falhas. Além disso é orientado a aplicações, não sendo possível usar os conceitos de Com- posição de Serviços.

• OurGrid: é um projeto desenvolvido pela UFCG em colaboração com a HP (He- wlett Packard) que visa uma solução para execução de aplicações BoT em Grades Computacionais [114]. OurGrid é software livre sobre o qual se criou uma Grade aberta, ao qual instituições e usuários podem aderir livremente. Ele está focado em aplicações BoT, incluindo data mining, pesquisas massivas, varredura de parâme- tros, simulações, fractais, biologia computacional e computação gráfica [115]. A solução OurGrid é composta pelo broker MyGrid, a comunidade OurGrid e a se- gurança Swan. MyGrid escalona aplicações BoT e permite a seu usuário combinar todas as máquinas a que ele tem acesso na sua “Grade Pessoal”. A comunidade OurGrid forma uma rede peer-to-peer que promove o compartilhamento de recursos em escala mundial. O Swan aproveita as características das aplicações BoT para prover um sandboxing que garante a execução segura de código desconhecido oriundo da Grade [116]. Os objetivos do projeto OurGrid são a simplicidade e as aplica- ções BoT, não apresentando características nativas que favoreçam a Composição de Serviços.

• Univa Grid Engine: é um escalonador de recursos distribuídos que gerencia tarefas em clusters e estações de trabalho [117]. O Grid Engine (GE) é usado ti- picamente em um conjunto de computadores em rede ou em clusters para HPC. O GE tem facilidades para gerência de recursos distribuídos como processadores, memória, armazenamento e licenças de software. O Univa Grid Engine é o sucessor dos produtos Sun Grid Engine e Oracle Grid Engine. O GE oferece políticas de prioridade e utilização, alta escalabilidade (um cluster pode conter mais de 10.000 nós e executar mais de 100 milhões de tarefas por mês), gerencia recursos através de métricas que são usadas em estratégias de escalonamento e avaliação de carga de trabalho e oferece suporte a processamento em lote, interativo e aplicações paralelas com tarefas espalhadas por núcleos e nós. Além disso, reduz o custo de execução de aplicações Apache Hadoop [118] disponibilizando uma infraestrtura compartilhada por uma variedade de aplicações ao invés de ter que manter um cluster dedicado exclusivo para aplicação Hadoop. Esse produto é usado pelo TSUBAME (super- computador da Universidade de Tecnologia de Tóquio) [119], pelo Centro de Com-

putação Avançada do Texas (Texas Advanced Computing Center) [120] e pelo San Diego Supercomputer Center [121]. Esse middleware é particularmente interessante por fazer parte da solução oferecida pelo provedor de nuvem pública Amazon para HPC.

Apesar das facilidades oferecidas pelas grades essa tecnologia exige certa especializa- ção do usuário, pois não é trivial a execução de tarefas nesse ambiente. O CEO contribui na preparação dos recursos através da publicação dinâmica de serviços (Seção 5.5.1), fa- zendo a transferência dos arquivos entre os recursos e gerenciando execuções sequencias e paralelas (Seção 5.4). Ademais, através do modelo para configuração de domínios (Se- ção 5.7) e do sistema de monitoramento (Seção 5.5.2), o CEO permite automatizar o uso de recursos oportunistas sem a intervenção do usuário.