IV Congresso Brasileiro de Computação CBComp 2004 Brasil Grids Computacionais Fundamentos, Ambientes e Experiências M.A.R. Dantas Departamento de Informática e Estatística (INE) Universidade Federal de Santa Catarina (UFSC), 88040900, Brasil, [email protected] RESUMO M.A.R Dantas. 2004. Grids Computacionais Fundamentos, Ambientes e Experiências. Congresso Brasileiro de Ciência da Computação, Itajaí, 2004, 873 – 882. Itajaí, SC – Brasil, ISSN 1677-2822 Neste mini-curso introduzimos os conceitos fundamentais para o conhecimento do paradigma computacional conhecido como grid computacional. Desta forma, apresentamos as características peculiares dos ambientes de clusters e procuramos fazer uma distinção das abordagens. Interessante mencionar que as abordagens são complementares e que existe um espaço para a utilização dessas formas de processamento. Fatores importantes na decisão de qual paradigma é mais apropriado para uma solução são o custo, recursos disponíveis e localização física dos componentes da solução proposta. PALAVRAS DE INDEXAÇÃO ADITIONAIS: Computação distribuída, computação paralela, processamento de alto-desempenho I – Introdução O processamento de alto-desempenho (PAD) é um paradigma computacional que tem como um dos seus principais objetivos a execução de milhares aplicações ao mesmo instante e ainda o processamento de tarefas paralelas complexas com um elevado grau de sucesso. Este tipo de processamento tradicionalmente vinha ao longo de vários anos sendo baseado em computadores paralelos específicos, tais como aqueles com as arquiteturas massivamente paralelas (MPP) e os de memória compartilhada (SMP).Na primeira categoria de arquitetura temos como exemplos os computadores IBM SP e o Intel Paragon. Os computadores Silicon Graphics Origin 3000 e Compaq ES40 são exemplos de máquinas com arquitetura SMP. Atualmente, para um melhor desempenho de diversas aplicações em uma organização é comum o agrupamento de inúmeros computadores de uma forma física local. Estas configurações são conhecidas como clusters (ou agregados) de computadores. A característica dessas configurações é a interligação física de diversos computadores próximos através de um equipamento de rede. Todos os elementos da configuração são componentes facilmente encontrados no mercado. Por esta razão, é usual que estes ambientes também sejam conhecidos como COTS (Components Off The Shelf), ou seja componentes de computadores que podem ser facilmente encontrados nas prateleiras das lojas especializadas. A figura 1 ilustra dois exemplos de clusters convencionais formados por componentes comprados em uma loja qualquer de produtos de informática. A configuração é caracterizada por computadores IBM-PC interligados por um switch FastEthernet de 100Mbps. Estas figuras representam projetos de pesquisa que participamos com o objetivo de desenvolvimento de aplicações para alto-desempenho. A figura 1.1 (a) representa uma configuração montada para a execução aplicações de alto-desempenho no Brasil (um exemplo foi o sequenciamento de Genoma). Já figura 1.1 (b), ilustra um ambiente de pesquisa de um aluno brasileiro no Japão para o estudo de aplicações sísmicas. 874 Dantas As duas configurações apresentadas nas figuras 1 e 2 vêem ganhando considerável popularidade nas empresas, em universidades e nos centros de pesquisas, pois são interessantes plataformas para endereçar as demandas computacionais distribuídas e paralelas com um relativo baixo custo. Nos Estados Unidos e Europa já é comum o uso de tais configurações em organizações tais como a NASA, bancos, centros de pesquisas de previsão de tempo, laboratórios (e empresas) de bioinformática, empresas das áreas de petróleo, aeroespacial, naval e consultoria financeira. (A) Em adição ao uso das configurações de clusters que são caracterizadas pela interligação física (ou virtual) local, os ambientes geograficamente distribuídos começam a ser utilizados em larga escala.A utilização desses ambientes tem com objetivo auxiliar os programadores e usuários de aplicações distribuídas e paralelas a resolver seus problemas mais rapidamente e com um menor custo. Podemos ainda acrescentar que aplicações que não poderiam ser resolvidas localmente, começam a ser consideradas uma vez que é possível o uso de recursos em locais remotos. Aplicações que requeiram uma grande quantidade de processamento, espaço em memória e em disco, além do uso de instrumentos científicos sofisticados podem dispor desses elementos de maneira paralela distribuída. Várias organizações já se beneficiam dessa agregação distribuída. Como vários pesquisadores mencionam [Baker 2000, Baker 2001], é possível imaginarmos que muitos problemas em diversas organizações agora podem ser resolvidos sem a necessidade de um supercomputador local. (B) Figura 1. Exemplos clássicos de cluster Por outro lado, quando existe uma interligação virtual (ou seja, não dedicada) estes ambientes são denominados como Nows (Network of Workstations). Na figura 2, as estações de trabalho apresentadas de nosso laboratório são um exemplo de uma configuração de cluster virtual. Nestes ambientes o agrupamento virtual de máquinas ocorre através da ligação de computadores locais que estão ociosos na organização, mas que usualmente não estão fisicamente próximos e nem dedicados para realizar tarefas para o cluster. Inúmeros pacotes de software têm sido desenvolvidos visando à melhoria na utilização dos sistemas distribuídos, usualmente focando na taxa de utilização (throughput) ou paralelismo das tarefas. O objetivo principal da primeira categoria (throughput) é a melhoria de distribuição de múltiplas tarefas independentes. Em contraste, os ambientes de software paralelos são projetados para um melhor desempenho de tarefas paralelas, estas naturalmente dependentes, e devem atingir um desempenho aceitável com o aumento do número de computadores distribuídos. Na prática isto significa que todas as tarefas deverão finalizar ao mesmo tempo (ou muito próximo) para a obtenção de uma boa performance. Exemplos de pacotes desenvolvidos para melhoria na categoria de throughput são o Condor [Michael 1988], o LSF e o LoadLever [IBM 1993]. Por outro lado, MPI [MPI 1994], PVM [Geist 1994], ThreadMarks, Mirage+[Fleish 1994], Shasta são clássicos exemplos de pacotes de troca de mensagem e memória compartilhada distribuída que têm como meta um maior desempenho das aplicações paralelas. O uso dos ciclos fracamente acoplados de computadores dispersos em uma rede geograficamente distribuída pode representar um ambiente adaptativo interessante para processamento de alto-desempenho. Nestes ambientes computacionais, que podemos considerar como oportunista, devemos considerar a heterogeneidade e o dinamismo natural das configurações dispersas nas redes de computadores. Figura 2. Exemplo de um ambiente de Now 874 875 Grids Computacionais Fundamentos, Ambientes e Experiências Na universidade americana Rutgers de Nova Jersey [Batheja 2001], por exemplo, existe um grupo de pesquisa que apresentada um framework para a computação oportunista. Eles utilizam tecnologias padronizadas para endereçar o problema da heterogeneidade. O framework oportunista utiliza Java que prove um modelo sandbox e JavaSpaces que permite mecanismos de comunicação remota. Desta forma, esta proposta oportunista prove a facilidade de submissão de códigos paralelos de uma maneira remota para computadores dispersos em uma rede. Outro exemplo de computação oportunista é apresentado em nossas pesquisas [Dantas 1998, Dantas 2002a], onde empregamos shell scripts e agentes móveis visando prover aos programadores de aplicações paralelas uma transparência quanto a heterogeneidade e o dinamismo da configuração distribuída. Na figura 3 apresentamos a tela principal de um dos nossos ambientes, onde é possível informar a um usuário onde existem recursos disponíveis (tais como CPU, memória, disco e quais os sistemas operacionais disponíveis) em um ambiente de rede para a execução de sua aplicação paralela ou distribuída. execuções). Podemos ainda mencionar a não existência de nenhuma autoridade reguladora no uso de recursos disponíveis (como nos clusters) ou serviços providos por organizações virtuais (como em uma configuração de grid). O conceito oportunista é baseado na utilização de recursos disponíveis de maneira semelhante aos pacotes paralelos de software. Estes pacotes foram projetados para a melhoria de execução de tarefas paralelas. Contudo, o diferencial oportunista é o esforço adicional que deve ser empreendido visando obter uma melhor performance na presença de arquiteturas heterogêneas e no dinamismo das configurações. Da tabela 1 é possível entender que a diferença principal entre um grid computacional e um ambiente de computação oportunista é baseada no custo da utilização dos recursos ociosos. Em uma configuração de grid existe o provimento dos serviços e estes têm seus custos estabelecidos pelas organizações virtuais que os disponibilizam. Por outro lado, o principal objetivo da computação paralela oportunista é a utilização dos recursos ociosos em grandes ambientes distribuídos com um custo reduzido. Um clássico exemplo seria a abordagem do projeto SETI@HOME . Tabela I - Diferenças entre as Configurações: Oportunista, Cluster e Grid Característica Domínio Nós Segurança do Processament o e Recurso Custo Figura 3. Interface para um ambiente de computação oportunista. A configuração distribuída quando considera o uso de recursos geograficamente distribuídos com uma cooperação formal com o objetivo de melhorar, viabilizar e até tornar economicamente possível uma aplicação é conhecida como um grid computacinal. A nomenclatura grid é baseada nas malhas de interligação dos sistemas de energia elétrica. Em um sistema elétrico, o usuário utiliza a energia sem se perguntar onde a mesma foi gerada. De maneira semelhante, a idéia de um grid computacional é que possamos criar um ambiente computacional distribuído que possua mecanismos que permitam o processamento, o armazenamento e uso de equipamentos de forma transparente. A diferença básica entre a computação paralela oportunista, os clusters e grids computacionais é baseada na utilização de ciclos fracamente acoplados de máquinas durante a execução das tarefas paralelas (ou instantes antes de suas Granularidad e do problema Sistema Operacional Oportunista Múltiplos Milhões Necessária Cluster Único Milhares Desnecessária Grid Múltiplos Milhões Necessária Baixo, uso exclusivo de recursos ociosos Muito grande Alto, pertencente a um único domínio Grande Alto, todavia dividido entre domínios Muito Grande Heterogêneo Homogêneo Heterogêneo Neste mini-curso, vamos estudar: os fundamentos, os ambientes e algumas experiências já realizadas nessa nova abordagem computacional conhecida grid. Nosso objetivo é que o leitor entenda de forma clara o que são os grids, como estes são construídos e o que os grids podem fazer para melhorar o desempenho de suas aplicações em suas organizações. II– Fundamentos Um grid é um ambiente computacional de altodesempenho o qual é caracterizado por prover o compartilhamento geograficamente distribuído de serviços por organizações distribuídas geograficamente. As organizações são conhecidas como organizações virtuais (OV). Traçando uma comparação com a Internet, a 875 876 Dantas entidade organização virtual seria semelhante a um site, todavia com a possibilidade de prover serviços solicitados pelo usuário. Uma organização virtual é uma entidade que compartilha recursos sob uma determinada política em uma configuração de grid. Exemplos de organizações virtuais são empresas, centros de pesquisas e universidades que provêm facilidades de armazenamento de dados, poder de processamento e o uso de equipamentos (exemplos são os telescópios) e aplicações (exemplos são pacotes de software de simulação que podem executar com dados fornecidos pelo próprio usuário). Os grids podem ser considerados também sob o paradigma de melhoria de alguns aspectos físicos nas redes de comunicação e computadores, tais como: • melhor utilização de largura de banda • utilização agregada de um grande poder computacional • acesso rápido a dados, pacotes de software e dispositivos remotos com qualidade de serviço (QoS). • Figura 4. Ambiente usuário e o ambiente grid. Uma série de questionamentos comuns que são levantadas por usuários iniciantes, são : - melhor utilização de CPUs remotas, memórias e espaço em discos. O leitor deve compreender que a Internet é um ambiente estabelecido a três décadas, cuja função principal era a interconexão de ambientes computacionais distintos e geograficamente localizados. A Internet começou a ser utilizada de uma forma intensa, após o desenvolvimento da abordagem Web. Após o grande publico descobrir a Internet, vinte anos depois de sua existência, o grande esforço da indústria da informática se voltou para o desenvolvimento de aplicações prontas sem o questionamento de interoperabilidade no sentido usuário-site. De uma forma geral um grid é conceituado por muitos [Foster 1999, Globus 2003, Grimshaw 2003, Hey 2003] como : “Um ambiente computacional distribuído paralelo que permite o compartilhamento, a seleção, a agregação de recursos autônomos e geograficamente distribuídos. Estas operações e recursos podem ser utilizados durante a execução de uma aplicação, dependendo de sua disponibilidade, capacidade, desempenho e custo. O objetivo é prover aos usuários serviços com os requisitos de qualidade corretos para o perfeito funcionamento de suas aplicações” . A abordagem de grid surgiu a cerca de dez anos e a motivação, impulsionada por vários participantes do desenvolvimento da Internet, é a interoperabilidade de aplicações localizadas em sistemas de organizações virtuais distribuídas geograficamente. Uma outra forma de entender a diferença entre um grid e a Internet é a facilidade que o usuário tem de submeter suas aplicações para serem resolvidas. Na Internet o usuário dispõe de um menu de serviços fechados. Desta forma, podemos considerar que um grid computacional tem como seu principal objetivo alcançar a interoperabilidade entre as organizações virtuais, através da habilidade de cooperação de compartilhamento e agregação de recursos computacionais distribuídos e disponibilizá-los como serviços. Na figura 4 ilustramos um ambiente usuário fazendo acesso a um ambiente de grid. Nesta figura o usuário possui uma determinada aplicação que ele deseja que seja executada na configuração. Importante observar que um usuário da Internet não dispõe da facilidade de submissão de aplicação. A maioria dos serviços na Internet são oferecidos na forma de pushing, ou seja o usuário seleciona um serviço oferecido que é Qual a diferença entre a Internet e o Grid ? - Qual seria a diferença entres os ambientes de cluster e grid computacionais ? O cluster é uma configuração de hardware e software local, cujo ambiente tem um único proprietário, voltado para solucionar os problemas de uma organização. Por outro lado, um grid computacional tem como objetivo a prestação de serviços de uma forma geograficamente distribuída. Para um melhor entendimento do leitor, podemos fazer uma analogia entre um cluster e uma LAN (Local Area Network) e o grid e uma WAN (Wide Area Network). De uma outra forma, podemos ainda dizer que a principal diferença entre os clusters e os grids é baseada na maneira pela qual os recursos são gerenciados. Em um cluster, os recursos são gerenciados por uma autoridade central e os computadores trabalham juntos 876 877 Grids Computacionais Fundamentos, Ambientes e Experiências como uma única entidade física. Nas configurações de grid, cada organização virtual faz o gerenciamento de seus computadores não objetivando uma visão única do sistema. Em outras palavras, o usuário sabe da existência de inúmeros serviços disponíveis e que de alguma forma deverá fazer uma requisição de utilização dos mesmos. Aplicação Para uma melhor visualização da diferença entre os clusters e os grids poderíamos, também, fazer uma analogia com o sistema telefônico. Cada empresa de telefonia representaria uma configuração de cluster, onde a mesma tem seus recursos gerenciados de forma centralizada. Por outro lado, a interligação dos sistemas de diferentes empresas telefônicas, com seus diversos serviços, seria um ambiente de grid. Imagine um usuário do sistema quando o mesmo faz uma ligação. Se a ligação for local a empresa prestadora de serviço, que é a autoridade central local, decide como será efetuada a interconexão entre o telefone do cliente e o telefone destino. Quanto às ligações de longas distâncias (nacionais e internacionais), o usuário sabe que pode efetuar uma ligação para todo o planeta, todavia é necessário utilizar um DDD, ou um DDI, para falar com um telefone distante no Brasil, ou exterior. Neste caso, tanto o DDD, quanto o DDI, podem ser entendidos como os serviços prestados pelas organizações, que são representadas pelas diversas empresas de telecomunicação, que formam o grid para prover um serviço de comunicação. Coletivo Recurso Connectividade Ambiente 5 (a) Aplicações e Serviços Como relação às organizações virtuais podemos dizer que diversas métricas fazem com que estas sejam diferentes entre si. Diferenças conhecidas que podemos citar se referem aos seus principais objetivos, sua extensão geográfica, sua dimensão física, o tempo permitido para uso de facilidades, sua estrutura e o tipo de comunidade que utiliza a configuração do grid (exemplo economistas, técnicos, engenheiros, cientistas, biólogos e usuários leigos). Middleware De maneira análoga a Internet, e principalmente devido a experiência com a mesma, pesquisadores e técnicos vêem propondo modelos de arquitetura com o objetivo de uma padronização que permita a interoperabilidade entre diferentes organizações virtuais. Aspectos tais como autenticação, autorização, mecanismos de troca de mensagem, compartilhamento de recursos, escalonamento e balanceamento de tarefas são alguns dos pontos que devem existir e serem estabelecidos de uma maneira uniforme para uma arquitetura de grid computacional. Com este objetivo a seguir na figura 5, apresentamos dois modelos [Foster 1999, Hey 2003] que vêm ganhando aceitação na comunidade internacional para uma futura padronização (de facto ou de direito) de uma arquitetura de grid. Recursos Redes 5 (b) Figura 5. Modelos de Grid Computacionais A figura 5 (a) é mais genérica e seus cinco níveis podem ser entendidos como: • Ambiente - os componentes deste nível implementam operações específicas locais que ocorrem em cada recurso como resultado das operações de compartilhamento nos níveis superiores. De um lado, devem ser implementados mecanismos de negociação que façam um solicitação para obtenção de informações sobre a estrutura, o estado e as possibilidades dos recursos. Do outro lado, mecanismos de gerenciamento de recursos devem fornecer formas de monitorar a qualidade de serviço (QoS - Quality of Service). 877 878 Dantas • Conectividade – esta camada define os protocolos básicos de comunicação e autenticação necessários para as transações de rede específicas do grid. Os protocolos de comunicação permitem a troca de dados entre os níveis de ambiente e recursos. Entre os requisitos de comunicação estão o transporte, o roteamento e o serviço de nomes. Os protocolos de autenticação constroem os serviços de comunicação de modo a prover mecanismos seguros e criptográficos para a verificação da identidade de usuários e recursos. • Recursos – neste nível encontramos os protocolos de autenticação e comunicação do nível conectividade para definir protocolos e API's (Application Programing Interface) que forneçam segurança na negociação, iniciação, monitoramento, controle, geração de relatórios e outros detalhes envolvidos nas operações com recursos individuais. As implementações destes protocolos chamam as funções do nível de ambiente para acessar e controlar os recursos locais. • • Coletivo - enquanto no nível de recursos são tratadas as operações no âmbito de cada recurso individualmente, neste nível os componentes atuam nas interações entre coleções de recursos. Os componentes dessa camada baseiam-se nos níveis recursos e aplicação e implementam uma grande variedade de serviços tais como: - Serviços de diretório que permitem aos membros de uma organização virtual descobrir quais são os recursos desta organização. - Servidores de autorização comunitários reforçam a política de acesso aos recursos. • • Recursos - este nível é constituído pelo conjunto de recursos que fazem parte do grid, incluindo servidores primários e dispositivos de armazenamento. Exemplos de configurações que representam ao nível de recursos são os clusters, as Nows, os serviços de armazenamento e computadores especiais tais como os supercomputadores. • Rede – O nível de rede é a base da conectividade para os recursos do grid. Assim, podemos imaginar os switches, roteadores e a infraestrutura das redes de comunicação, tais como Sonet/SDH/DWDM, como exemplos da camada de rede. Na figura 6 apresentamos uma comparação funcional entre o padrão TCP/IP, utilizado na rede Internet, e o primeiro modelo de grid. Esta equivalência é interesse de ser ressaltada pois ajuda ao leitor melhor visualizar os ambientes de grids computacionais e também demonstra a preocupação de uma padronização de todos aqueles envolvidos com esta nova abordagem tecnológica. INTERNET que Aplicação – esta camada compreende as aplicações dos usuários que operam no ambiente da organização virtual. Os níveis anteriores provêem serviços úteis às aplicações desenvolvidas que as invocam. Uma outra arquitetura de modelo grid é apresenta na literatura sobre o assunto na forma de quatro camadas. Na figura 5 (b) ilustramos o modelo que deve ser compreendido da seguinte maneira: • ambientes de armazenamento, redes e outros elementos) participem em um ambiente de grid unificado. A camada pode ser caracterizada pela sua inteligência, trazida aos vários elementos unidos através de software e domínio. Diversos protocolos e funções diferentes devem existir na camada de middleware para o suporte dos elementos heterogêneos de uma configuração de grid. Exemplos de heterogeneidade são os diferentes sistemas operacionais, sistemas de arquivos e protocolos de comunicação entre redes. Aplicação e Serviços - Os pacotes de software de aplicação e serviços definem a camada mais alta de um modelo de grid computacional. Neste nível devemos incluir, também, os conjuntos de ferramentas de desenvolvimento. Milhares de aplicações diferentes compõem este nível, uma vez que variam de indústria para indústria dependendo do problema do negócio fim da organização. A porção de serviço deve prover diversas funções de gerenciamento, incluindo faturamento, contabilidade e medidas de métricas utilizáveis – todos parâmetros importantes para o uso virtual dos recursos compartilhados entre diferentes usuários, departamentos e empresas. Middleware – esta camada dever fornecer protocolos que permitam que múltiplos elementos (servidores, Aplicação Aplicação Coletivo Recurso Transporte Conectividade Ambiente Internet Enlace Figura 6. Equivalência funcional entre os modelos da Internet e do Grid Os esforços de padronização da tecnologia de grid já ocorrem a alguns anos, todavia nos últimos anos estes esforços começaram a tomar um vulto maior devido ao uso da tecnologia por inúmeras 878 879 Grids Computacionais Fundamentos, Ambientes e Experiências organizações. Exemplos de esforços no sentido de padronização do ambiente de grid são: • Fórum Global do Grid (Global Grid Fórum [Global 2003]): esta organização, composta por uma comunidade de milhares de pesquisadores e por diversos profissionais com larga experiência em sistemas distribuídos, tem como objetivo promover e prover suporte ao desenvolvimento, utilização e implementação de tecnologias e aplicações de grids. As recomendações são criadas e documentadas a partir das melhores práticas técnicas, experiência de usuários e guias de implementação. Membros do GGF incluem Hewlett-Packard, IBM, Intel, Microsoft, Silicon Graphics e Sun dentre diversos outros membros. III– Ambientes Considerado o primeiro esforço em grande escala de um ambiente de grid, a pesquisa empírica realizada no projeto I-WAY [Iwa03], conhecido também como Internet do Futuro, revelou a existência de cinco classes de aplicações usando um específico paradigma computacional. Desta forma, é comum a classificação das aplicações segundo um paradigma de uso de computadores como apresentamos a seguir: • Supercomputação Distribuída: aplicações que utilizam esta abordagem podem ser caracterizadas pelo fato de que não é possível sua resolução em um único sistema computacional. O ambiente de agregação de computadores que estamos nos referindo pode ser representado por todos os supercomputadores de um país, por exemplo, ou por todos os computadores de uma empresa. Na literatura técnica da área de grid, são citados como clássicos os exemplos das abordagens conhecidas como DIS (Distributed Interactive Simulation), previsão de tempo e cosmologia. O DIS é uma técnica de simulação empregada para modelar o movimento e características de centenas (ou até milhares) de entidades. Esta técnica usualmente é utilizada para planejamento militar e ensino. • Computação de Alto-Desempenho: O objetivo maior desse paradigma é resolver aquelas aplicações que solicitam uma transferência grande de dados. O ambiente computacional é usado para escalonar uma grande quantidade de tarefas fracamente acopladas (distribuídas) para a melhoria de utilização dos computadores que possuem uma carga baixa de utilização. São conhecidos vários exemplos, que estão sob esta abordagem. Clássicas experiências são o Condor High-Throughput e o LSF. O primeiro ambiente de software, desenvolvido na Universidade de Wisconsin, é empregado para o gerenciamento de trabalho de um conjunto de centenas de máquinas em diferentes laboratórios e outros conjuntos de máquinas espalhadas pelo mundo. No caso do LSF (Load Share Facility) da empresa Platform, é relatado o caso da fabricante de microprocessadores AMD que utilizou todas as máquinas de seus engenheiros que não estavam sendo usadas em um determinado período, durante o desenvolvimento dos seus processadores K6 e K7. • Computação Sob-Demanda: aplicações que se enquadram nesta classe podem ser compreendidas como aquelas que requerem o uso intensivo de recursos computacionais que não estão disponíveis a nível local. Os recursos computacionais devem ser entendidos com pacotes de software, dados, arquivos e poder computacional para obtenção de seus resultados experimentais. A diferença básica para as aplicações classificadas como supercomputação distribuída é referente ao custo do desempenho. As aplicações sobdemanda utilizam os recursos de maneira colaborativa, apenas empregam recursos que podem solicitar de forma distribuída para melhoria de performance uma vez que os recursos não existem localmente. Por outro lado, as aplicações conhecidas como supercomputação Um outro aspecto interessante quanto ao trabalho do GGF diz respeito ao entendimento da organização quanto a um grid computacional. A organização faz a leitura de um grid computacional como sendo aquele ambiente de computação geograficamente distribuída que prove o alicerce para inúmeros esforços de utilização global da Internet para a construção de infraestruturas de computação distribuída e comunicação. Desta forma, interoperabilidade de seus componentes (software e hardware) deve ser um serviço comum na configuração de um grid. • Projeto Globus [Globlus 03]: este projeto de pesquisa tem como foco o desenvolvimento de tecnologias fundamentais que são necessárias para a construção dos grids computacionais. O projeto é dividido em quatro atividades principais: aplicações, pesquisas, ferramentas de software e testes. O ambiente globus auxilia o desenvolvimento da tecnologia de grid através de um conjunto de ferramentas abertas denominadas de Globus Toolkit. O desenvolvido dessas ferramentas iniciou-se pelo esforço dos pesquisadores Ian Foster (University of Chicago) e Carl Kesselman (University of Southern California). Estes pesquisadores propuseram que o conjunto de serviços do ambiente fosse desenvolvido com o objetivo de que as aplicações pudessem se utilizar dos serviços de grid sem a necessidade de uma adaptação a um modelo particular de programação. Alguns exemplos de serviços do conjunto de ferramenta são a alocação de recursos e gerenciamento de processos, os serviços de comunicação, autenticação e segurança, o acesso distribuído à informação de estrutura do grid. Em adição, o estado dos processos, o acesso remoto a dados e o monitoramento do sistema (usando o elemento heart beat monitor) são ainda aspectos importantes no ambiente. Segundo este grupo, os grids podem ser entendidos como ambientes onde aplicativos de software permitem a integração de instrumentos, dispositivos de visualização, recursos computacionais e de informação que são gerenciados por diversas organizações dispersas geograficamente. 879 880 Dantas distribuída dispõem de todos os recursos para seu melhor desempenho. • • Computação para Grande Quantidade de Dados: as aplicações e o paradigma computacional nesta classe são caracterizados pelo processamento de enorme quantidade de dados distribuídos geograficamente. Conhecidos exemplos são bibliotecas digitais e os bancos de dados distribuídos. Podemos ainda citar o caso do projeto Digital Sky Survey (ou pesquisa digital do espaço). encontrarmos na literatura acadêmica e comercial sobre o assunto a seguinte classificação dos grids: - Nacional: o objetivo do grupo de usuários desse ambiente é servir como um recurso computacional estratégico e servir como uma ponte para as facilidades de compartilhamento de um país. - Privado: este grupo é caracterizado pela utilização dos recursos para a obtenção de resultados econômicos diferenciais quando da utilização de inúmeros recursos dispersos geograficamente. Exemplos de organizações que formam ambientes privados de grid são empresas de alta tecnologia na área de biotecnologia, naval, aeroespacial além de empresas de investimento, de previdência privada e outras organizações que necessitam a execução de aplicações que requerem um grande poder computacional ou grande quantidade de dados. É comum encontrarmos a denominação para este grupo de grid econômico. - Virtual: os grids virtuais na sua maioria são formados por pesquisadores e cientistas que necessitam da utilização de recursos computacionais, equipamentos com alto custo e fazem sua disponibilização através de troca de uso. - Público: este grupo é caracterizado por aqueles que suas principais atividades incluem serviços que requeiram uma grande quantidade de poder computacional. Computação Colaborativa: a maior característica das aplicações classificadas sob esta denominação é sua orientação a melhoria do desenvolvimento das relações humanas. Aplicações e recursos computacionais podem ser compartilhados sem uma tarifa relacionada ao uso. O projeto NICE (www.evl.uic.edu/tile/NICE/NICE/intro.html) é um exemplo de ambiente de ensino colaborativo onde crianças podem aprender conceitos sobre a natureza sem estarem fisicamente próximas a mesma. IV– Usuários Um outro fator importante em qualquer nova tecnologia é entender quais são os seus potenciais usuários, tanto pessoas quanto organizações. Na utilização dos grids computacionais, também, existe uma preocupação de compreensão em quem são seus potenciais clientes. Assim, nesta seção vamos explorar esta forma de melhor entender quem são os usuários da configuração de grid. Alguns questionamentos são importantes para que possamos visualizar os grids e outros ambientes. Vale a pena recordar que num passado não muito distante, digamos vinte anos, era difícil de acreditar que seria possível disponibilizar toda a informação que existe hoje na Internet. Desta forma, é comum fazermos uma reflexão em um sentido idêntico para compreendermos quais as organizações e usuários estariam se beneficiando dos ambientes de grid. Podemos levantar dois questionamentos para que possamos entender melhor os grids, estes: - Quais as entidades que estariam interessadas em investir em infraestrutura para a formação dos grids computacionais? - Qual o grau de compartilhamento de recursos que devemos imaginar que cada organização espera deste ambiente? V– Experiências Quando um grid computacional é projetado, o mesmo deve obedecer a um conjunto de requisitos para o atendimento das aplicações de seus clientes. Este fato deve ser enfatizado, pois as configurações de grid visam a melhoria de aplicações de uma forma diferenciada e não de uma forma genérica. Podemos traçar uma analogia entre a antiga forma de trabalhar da Internet, (conhecida como melhor esforço) e sua atual abordagem, a denominada Qualidade de Serviço (QoS). Atualmente, todos aqueles envolvidos com o desenvolvimento de aplicações na Internet entendem que as aplicações devem ter um tratamento diferenciado segundo suas características. Em outras palavras, a simples troca de uma mensagem eletrônica deve dispor de menos largura de banda e retardo do que uma aplicação de vídeo conferência. Desta forma, é importante que o leitor entenda que existem diferentes experiências na utilização dos grids computacionais. Vamos nesta seção apresentar alguns estudos de casos e na seção de referência recomendada apontamos para uma série de leituras de outras iniciativas. Grids de Dados As respostas para as duas perguntas anteriores são pautadas pelos parâmetros de custo e benefício de compartilhamento de recursos. Estes dois parâmetros nos ajudam a uma classificação de comunidades de usuários de grid. É comum • • • • Virtual Laboratory: Tools for Data Intensive Science on Grid EU DataGrid DIDC Data Grid work 880 881 Grids Computacionais Fundamentos, Ambientes e Experiências • • • • GriPhyN (Grid Physics Network) HEPGrid (High Energy Physics Networks) Particle Physics Data Grid (PPDG) Datacentric Grid VI– Leitura Recomendada and Grid Sistemas de Grid • • • • • • • • • • • • • • • • • • • • Compute Power Market Global Operating Systems XtremWeb JAVELIN: Java-Based Global Computing MILAN: Metacomputing In Large Asynchronous Networks Harness Parallel Virtual Machine Project Management System for Heterogeneous Networks PUNCH - Network Computing Hub MOBIDICK MetaNEOS Amica MultiCluster Poland Metacomputing Echelon: Agent Based Grid Computing Bayanihan NeuroGrid GridLab DAMIEN CrossGrid DIET Sistemas de Grids Privados • • • • • • • • • • • • • • • • • GRACE: GRid Architecture for Computational Economy Compute Power Market (CPM) G-Commerce Mariposa: A New Approach to Distributed Data The Information Economy FORTH Information Economies Share Meta D'Agent Program for Research on the Information Economy Xenoservers - Accountable Execution of Untrusted Programs Electricity Trading Over the Internet Begins in Six New England States POPCORN CSAR: Resource Tokens and Trading Pool OCEAN - The Open Computation Exchange & Arbitration Network Spawn: A Distributed Computational Economy Market-Based Computing Multiagent systems Todas as informações das iniciativas de grid computacionais apresentadas acima podem ser facilmente encontradas na Internet através de um pacote de localização como o Google. V– Experiências Com o objetivo de fornecer ao leitor mais fonte de consulta sobre o assunto, nesta seção apresentamos algumas sugestões de leituras adicionais. Conforme cometamos anteriormente a organização GGF [Global 2003] e os projetos Globus [Globus 2003] e Legion [Legion 2003] são leituras iniciais indispensáveis para aqueles que desejam se aprofundar no estado-da-arte da tecnologia de Grid. Por outro lado, a leitura de [Foster 1999], [Dantas 2002b] e [Hey 2003] pode ajudar ao leitor no embasamento mais detalhado das configurações dos grids de uma maneira mais formal. Os ambientes comerciais podem ser observados em [Grimshaw 2003]. Algumas referências que são apresentas abaixo e não utilizadas ao longo do texto, também, podem representar uma boa indicação de leitura adicional [Czajkowski 1998, Bester 1997, Brunett 1998, Buyya 2001]. Referências Bibliográficas Baker, M., Cluster Computing Trends, Physics Seminar, Liverpool University, http://www.dcs.port.ac.uk/~mab/Talks/Liverpool00/, May 2000. Baker, M., Technologies for MultiCluster/Grid Computer, Cluster 2001, Newport Beach, http://www.dcs.port.ac.uk/~mab/Tutorials/ Los Angeles, EUA, 2001. Batheja, Jyoti, Parashar, M. A Framework for Opportunistic Cluster Computing using Javaspaces, Lecture Notes in Computer Science, HPCN Europe , pp 647-656, 2001. Bester, J., Foster, I., Kesselman, C., Tedesco, J., and Tuecke, S., Gass: A Data Movement and Access Service for Wide Area Computing System, In 7 (1997), ftp://ftp.globus.org/pub/globus/papers/gass.pdf. Brunett, S., Czajkowski, K., Foster, I., Fitzgerald, S., Johnson, A., Kesselman, C., Leigh, J., and Tuecke, S., Application Experiences with the Globus Toolkit., In Proc. 7th IEEE Symp. on High Performance Distributed Computing (July 1998), IEEE Computer Society Press, ftp://ftp.globus.org/pub/globus/papers/globusapps.pdf. Buyya, R. e Baker, M., Emerging Technologies for MultiCluster/Grid Computing, www.cacr.caltech.edu/cluster2001/program/abstracts/buyya.html, 2001. Czajkowski, K., Foster, I., Karonis, N., Kesselman, C., Martin, S., Smith, W., and Tuecke, S, A Resource Management Architecture for Metacomputing Systems., In The 4th Workshop on Job Scheduling Strategies for Parallel Processing (Mar. 1998), IEEEP, pp. 4-18,ftp://ftp.globus.org/pub/globus/papers/gram97.pdf. Dantas, M. A. R. and E.J. Zaluska, Efficient Scheduling of MPI Applications on Networks of Workstations, FGCS Journal, V 13, pp. 489-499, 1998. 881 882 Dantas Dantas, M.A.R,J.G.C Lopes, T.G. Ramos, An Enhanced Scheduling Approach in a Distributed Parallel Environment using Mobile Agents, In Proc. 16th Annual International Symposium on High-Performance Computing and Systems, Moncton, Canada,IEEE Computer Society Press, 2002. Hey, Tony, Fran Berman, Geoffrey Fox (Eds), Grid Computing: Making The Global Infrastructure a Reality , John Wiley & Sons, 2003, ISBN: 0470853190. Dantas, Mario; Tecnologias de Redes de Comunicação e Computadores, Axcel Books, 2002, ISBN 85-7323169-6. FOSTER, Ian; KESSELMAN, Carl (Eds.). The Grid: Blueprint for a New Computing Infrastructure. San Francisco, CA, USA: Morgan Kaufmann Publishers, 1999. 677p. ISBN 155860-475-8. Global Grid Fórum , http://www.gridforum.org, 2003 GloBlus, The Globus Project, Globus Toolkit 1.1.3 Sytem Administration Guide, University of Shouthern California, http://www.globus.org, December 2000. Globus, The Globus Project, http://www.globus.org, 2003 Grimshaw, A., Ferrari, A., Knabe, F., Humprey, M.; Legion: An Operating System for Wide-Area Computing, http://www.ece.cmu.edu, 1999. Geist, A. B. Al, Jack Dongarra and V. Sunderam, PVM : User's Guide and Reference Manual (Version 3.3).Oak Ridge, USA: Oak Ridge National Laboratory Technical Report ORNL/TM-12187, May 1994. Grid Computing, http://www.gridcomputing.com IBM Corporation, IBM LoadLever : User's Guide. Kingston, NY: IBM, September 1993. I- WAY Project, http://www.iway.org Fleish, N. J. B., R. Hyde, Mirage+: a kernel implementation of distributed shared memory on a network of workstations," Software: Practice and Experience, pp.1-21, March 1994. Legion, University of Virginia, http://legion.virginia.edu, 2003 Legion Project, Michael, M. L., J. Litzkow and M. W. Mutka, Condor A Hunter of Idle Workstations," Proceedings of IEEE 8th International Conference on Distributed Computing Systems, pp. 104-111, 1988. MPI-Forum, MPI: A Message-Passing Interface Standard," International Journal of Supercomputer Application, vol. 8, no. 34, 1994. 882