PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS

Transcription

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAISSistemas de InformaçãoGRID COMPUTING:CONCEITOS E APLICAÇÕESJaqueline Henrique Pereira CostaBetim2006

JAQUELINE HENRIQUE PEREIRA COSTAGRID COMPUTING:CONCEITOS E APLICAÇÕESTrabalho apresentado à disciplina Trabalhode Diplomação, do Curso de Sistemas deInformação da Pontifícia UniversidadeCatólica de Minas Gerais.Campus: BetimOrientador: Caio Julio Martins VelosoBetim2006

Jaqueline Henrique Pereira CostaGrid ComputingTrabalho apresentado à disciplina de Trabalho de Diplomação, do Curso de Sistemas deInformação da Pontifícia Universidade Católica de Minas Gerais,Betim, 2006.Caio Julio Martins Veloso (Orientador) – PUC Minas BetimSandro LaudaresMaria Inês Lage de Paula

A meus pais e minhas irmãs,Pelo apoio, dedicação e carinho em todos os momentos.

"Se plantarmos para um ano, devemos plantar cereais.Se plantarmos para uma década, devemos plantar árvores.Se plantarmos para toda a vida, devemos treinar e educar o homem."(Khantsu, século III a.c.)

RESUMONosso objetivo é a apresentar os conceitos principais de Grid Computing, diferenciando estanova tecnologia de soluções anteriores, que de alguma forma contribuíram para suaconcepção e desenvolvimento, tendo em vista, as implicações presentes e futuras de estruturascomputacionais desenvolvidas sob esta concepção. E aplicação de um estudo de caso, comouma ferramenta auxiliar na compreensão e exposição do tema abordado.Palavras-chave: Grid Computing, Sistemas Distribuídos, Clusters, Middleware.

ABSTRACTOur objective is to present the main concepts of the Grid Computing, being differentiated thisnew technology of previous solutions, that of some form had contributed for its conceptionand development, in view of, the future implications gifts and of developed computationalstructures under this conception. And application of a case study, as a tool auxiliary in theunderstanding and exposition of the boarded subject.Word-key: Grid Computing, Distributed Systems, Clusters, Middleware.

LISTA DE ILUSTRAÇÕESQUADRO 1 Diferença entre a abordagem adotada entre a Computação Filantrópica e osAmbientes Empresariais.20QUADRO 2 Sistemas fortemente acoplados x Sistemas fracamente acoplados.30QUADRO 3 Diferenças entre as configurações de cluster e grid.47QUADRO 4 Serviços e funcionalidades do Globus.63GRÁFICO 1 Consumo de Memória.70GRÁFICO 2 SpeedUP.71GRÁFICO 3 Velocidade de Execução.71

LISTA DE FIGURASFIGURA 1 Taxonomia para sistemas distribuídos e para os sistemas paralelos.27FIGURA 2 Configuração genérica de multiprocessadores.29FIGURA 3 Configurações genéricas de multicomputadores.29FIGURA 4 Configuração clássica de uma arquitetura SMP.31FIGURA 5 Configuração convencional de uma NUMA.34FIGURA 6 Configuração convencional de uma ccNUMA.35FIGURA 7 Configuração genérica de uma MPP.37FIGURA 8 Arquiteturas computacionais com múltiplos processadores.39FIGURA 9 Cluster de máquinas multiprocessadas.44FIGURA 10 Cluster dedicado.44FIGURA 11 Cluster não-dedicado.44FIGURA 12 Modelo em Camada 1.56FIGURA 13 Modelo em Camadas 2.56LISTA DE TABELAS

TABELA 1 Consumo de Memória e Tempo de Execução.69TABELA 2 Estimativa de Tempo de Execução.69LISTA DE SIGLAS

UFCG - Universidade Federal de Campina GrandeHP - HEWLETT-PACKARD LTDASETI - Search for Extraterrestrial IntelligenceTI – Tecnologia da InformaçãoPC – Personal ComputerMIT - Massachusetts Institute of TechnologyIBM - I nternational Business MachinesILAN - Local Área NetworksMIPS - Milhões de Instruções por SegundoGERPAV - Sistema de Gerenciamento da PavimentaçãoSISD - Single Instruction Single DataSIMD - Single Instruction Multiple DataMISD - Multiple Instruction Single DataMIMD - Multiple Instruction Multiple DataILLIAC - Illinois Automatic ComputerCM-2 – Connection Machine 2INM - Intellipool Network MonitorNUMA - Non-Uniform Memory AccessCC-NUMA - Cache Coherence Non-Uniform Memory AccessCRM - Customer Relationship ManagementERP – Enterprise Resource PlanningLISTA DE SIGLAS

AC - Assistente de ComunicaçãoT3D - Toro 3D bidireccionalSP - Scalable POWERparallelAP - Scalar ParallelVPP - Vector ParallelSR2000 – SohoRAID 2000NOWs - Networks of WorkstationsCOWs - Cluster of WorkstationsCLUMPs - Cluster of sMPsWAN - rede geograficamente distribuídaHTTP - Hypertext Transfer ProtocolOGSA - Open Grid Standards ArchitectureVO - Organização VirtualIME-USP – Instituto de Matemática e Estatística da Universidade de São PauloPUC-Rio – Pontificia Universidade Catolica do Rio de JaneiroUFMS – Universidade Federal de Mato Grosso do SulAPI - Apllication Programing InterfaceRMS - Resource Management and Systems – Sistemas Gerenciadores de Tarefas e RecursosPVM - Parallel Virtual MachineMPI - Message Passing InterfaceLISTA DE SIGLAS

HPC - High Performance ComputingMPI - Message Passing InterfacePV - Parallel VirtualBSP – Bulk Synchronous ParallelCGM - Coarse Grained MulticomputerGRACE - Grid Architecture for Computational EconomyBOINC - Berkeley Open Infrastructure for Network ComputingHPC Research Grid - High Performance Computing Research GridCENAPAD - Centro Nacional de Processamento de Alto DesempenhoCBF - Centro de Pesquisa e Documentação da Fundação Getúlio VargasLNCC – Laboratório Nacional de Computação CientíficaRAM – Random Access MemoryMB – Mega ByteHD – Hard DiskGB – Giga ByteS.O. – Sistema OperacionalNAMD - Not Another Molecular DynamicsSUMÁRIO

1 INTRODUÇÃO.141.1JUSTIFICATIVA.161.2OBJETIVOS.172 FUNDAMENTAÇÃO TEÓRICA.181.1EVOLUÇÃO DOS SISTEMAS DISTRIBUÍDOS.232.2 ARQUITETURA DE SISTEMAS COMPUTACIONAIS .252.3 COMPUTAÇÃO DISTRIBUÍDA E GRID COMPUTING.393 ANÁLISE COMPARATIVA.431.2CLUSTER X GRID COMPUTING.431.3AMBIENTE WEB X GRID COMPUTING.484 CONFIGURAÇÕES DE UMA ARQUITETURA UTILIZANDO OS CONCEITOSDE GRID COMPUTING.511.4COJUNTOS DE SOFTWARES E FERRAMENTAS UTILIZADAS PELA GRID.581.4.1PVM (Parallel Virtual Machine) e MPI ( Message Passing Interface).591.4.2Ferrramenta RMS (Resource Management and Systems – Sistemas Gerenciadores de Tarefas e Recursos)621.4.3Middleware.625 EXEMPLO DE PROJETOS .666 ESTUDO DE CASO.687 CONCLUSÃO.748 REFERÊNCIAS.76

141 INTRODUÇÃOO conceito de Grid Computing apresenta um novo paradigma computacional, que tempor objetivo a integração de recursos computacionais através de uma infra-estrutura, capaz deoferecer confiabilidade, consistência, economia e persistência na execução de aplicações quenecessitem de um grande poder computacional.O Grid Computing surgiu como uma solução para os problemas de disponibilidade eflexibilidade de demanda a partir da implementação de redes de alto desempenho, e tevecomo base o modelo de sistemas distribuídos, amplamente usado no meio acadêmico,conhecido como Cluster.As características principais do Grid que o diferencia do Cluster, são a possibilidadedo uso de recursos heterogêneos, ou seja, utilização de processadores, memórias e sistemasoperacionais de diversas marcas, modelos e fabricantes, disponíveis nos nós “cooperativos”que compõem esta estrutura, mesmo que estes nós se encontrem dispersos geograficamente,sendo esta a característica mais importante na caracterização desta tecnologia.Ian Foster define o Grid Computing como uma “infra-estrutura que permite o usointegrado e colaborativo de computadores de alto desempenho, redes de interconexões, basesde dados e instrumentos científicos pertencidos e gerenciados por múltiplas organizações.”(FOSTER, 1998).Como exemplificação do Grid, é comum o uso de uma analogia desta infra-estruturacom as redes elétricas:“A infra-estrutura de um Grid é análoga à grade de energia elétrica que provê acessoconsistente, pervasivo e transparente a energia elétrica independente da origem” (GÓES et al.,2005), ou seja, a Grid Computing é uma infra-estrutura que dispõe recursos computacionais

15para quem deles precisar, deste que este seja um dos membros da rede. Estes recursos podemestar em PCs espalhados pelo mundo inteiro, executando suas aplicações sem que este saibaexatamente como e quais recursos estão sendo usados durante a operação.Esta tecnologia atualmente tem recebido grande incentivo de diversas faculdades ecentros de pesquisa, entre eles podemos citar o projeto OurGrid que conta com a participaçãoda UFCG (Universidade Federal de Campina Grande) e da empresa HP. Este projeto temcomo foco “a criação de tecnologias que viabilizem o uso de Grids da forma mais rápida edireta possível”. (HEWLETT-PACKARD BRASIL COMPUTADORES LTDA., 2005).Outros projetos de destaque são o SETI@home voltado à pesquisa por vidaextraterrestre e o Globus que foi o “embrião dos esforços mundiais de pesquisa edesenvolvimento desta área” (CHEDE, 2004) e que hoje concentra esforços nodesenvolvimento e aperfeiçoamento de ferramentas para a consolidação da tecnologia.Este trabalho apresenta os resultados dos esforços empreendidos no entendimentodestas iniciativas e dos conceitos principais relativos ao Grid Computing buscandocaracterizar sua estrutura, formas de implementação e sua aplicabilidade.Através da elaboração de um estudo de caso, obtivemos resultados que mostram ospontos positivos e negativos do uso deste conceito para solução de problemas relacionados àcomputação de alto desempenho.O futuro desta tecnologia promete ser promissor, porém depende de pessoasespecializadas para sua manipulação. A adoção em áreas como TI, por exemplo, exigem asuperação de algumas limitações, como profissionais especializados e políticas de segurança.No entanto, em outros setores como jogos interativos, em que as aplicações sãoaltamente paralisáveis apresentam uma eficiente utilização.

16A empresa Buterfly, por exemplo, de games interativos pela Internet, foi criada coma idéia de Grid. O modelo exigia computação sob demanda, típicos da GridComputing. A solução encontrada foi criar uma Grid composta por 2 clusters,baseados em plataformas Intel, hospedadas em data centers da IBM. Todos osservidores são conectados uns aos outros por rede de alta velocidade. Durante aexecução do jogo, cada servidor comunica-se a todos os outros na Grid em temporeal, criando uma arquitetura peer-to-peer (P2P). (CHEDE, 2004).Novas ferramentas para a aplicação da Grid Computing, em diferentes contextos vêmsendo desenvolvidas, e a expectativa é que estas iniciativas possam contribuir noaperfeiçoamento e padronização de ferramentas utilizadas na Grid Computing para atender asnecessidades especificas de cada projeto.1.1 JUSTIFICATIVACom a disseminação dos conceitos da Computação em Grade - conhecida tambémcomo Grid Computing - no meio acadêmico, surgiu a necessidade de diferenciar esta novatecnologia das tecnologias existentes.O conhecimento de seus benefícios futuros e os esforços que vem sendo realizados pordiversos centros de pesquisas auxilia o estudo e compreensão desta tecnologia.A expectativa é de que a Computação em Grade ofereça um grande podercomputacional no qual ocorra o acesso a recursos distribuídos geograficamente, de maneiraconsistente, confiável econômica e persistente; sendo usada em aplicações que utilizandocompartilhamento de dados de forma remota, facilita a colaboração entre centros de pesquisasde diversos lugares do mundo, envolvidos em projetos que requerem uma grande capacidadede cálculo e/ou grande quantidades de dados, além de oferecer a proposta de redução decustos e melhor utilização de recursos nos ambientes cooperativos.

171.2 OBJETIVOSEste trabalho tem como objetivo consolidar os conhecimentos adquiridos ao longo docurso de graduação em Sistemas de Informação no que se refere aos sistemas deprocessamento de alto desempenho com caracteristicas de baixo grau de acoplamento edispersos geograficamente, usualmente denominados de Computação em Grade ou GridComputing ou simplesmente Grid.Mais especificamente, podem ser citados os seguintes objetivos: Caracterizar o conceito de Grid; Apresentar e contextualizar as diferentes acepçoes deste termo, encontrados naliteratura; Avaliar, através de um pequeno estudo de caso, os aspectos tecnicos e dedesempenho de um problema de computaçao de alto desempenho simulando o tipode escalonamento encontrado em Grids.

182 FUNDAMENTAÇÃO TEÓRICAGrid Computing é um termo em inglês que na tradução mais aceita em portuguêssignifica “computação em grade”.De maneira simples, podemos disser que a Grid Computing é representada por umaestrutura em que diversos sistemas computacionais compartilham recursos para execução deuma determinada tarefa, ou de um conjunto de tarefas independentes.A partir de um estudo abrangente sobre o tema, descobrimos, no entanto, que osconceitos de Grid Computing possuem características advindas de outras tecnologias econceitos próprios que merecem um entendimento de diversas áreas de estudo, como sistemasdistribuídos e computação paralela, e a partir deste momento o conceito começa a ser tornarmais amplo.Os primeiros estudos sobre o tema tiveram[.] início na década de 90 para atender uma demanda específica da área cientifica.Ian Foster, do Laboratório Nacional Argonne, apresentou a proposta de umaassociação entre laboratórios mundiais com a finalidade de compartilhar parte de suacapacidade computacional ociosa e o conhecimento de seus pesquisadores por meiode uma rede de computadores permeável e interconectável entre si. (SANTOS,2005a).De acordo com (FOSTER, 2002), Grid Computing é uma “infra-estrutura que permiteo uso integrado e colaborativo de computadores de alto desempenho, redes de interconexões,bases de dados e instrumentos científicos pertencidos e gerenciados por múltiplasorganizações.” (FOSTER, 2002).Através de uma analogia muito usada na exemplificação do Grid Computing, podemosdisser que:

19[.] esta infra-estrutura é análoga à grade de energia elétrica que provê acessoconsistente, pervasivo e transparente a energia elétrica independente da origem. Agrade de energia elétrica disponibiliza energia elétrica sob demanda e esconde dousuário detalhes como a origem da energia e a complexidade da malha detransmissão e distribuição. Ou seja, se temos um equipamento elétrico,simplesmente o conectando na tomada para que ele receba energia. Uma gradecomputacional, portanto, seria uma rede na qual o indivíduo se conecta para obterpoder computacional (ciclos, armazenamento, software, periféricos, etc.). (GÓES etal., 2005).Os recursos disponíveis em uma Grid podem estar geograficamente distribuídos eserem utilizados em diversos projetos de pesquisa de maneira controlada, sem que ajainterrupções no processo. Para isso, é necessário que na infra-estrutura construída utilizandoos conceitos e ferramentas da Grid Computing, seja implementada soluções para segurançados dados que circulam pela rede, quando isso se fizer necessário.No ambiente acadêmico como em outros ambientes em que os projetos são voltados adescobertas em beneficio a sociedades, o uso de uma Grid é vista por Chede (2004) como“computação filantrópica”.“Na computação filantrópica, a participação é voluntária e existe enquanto houverinteresse e disposição do usuário.” (CHEDE, 2004).Em uma empresa devem ser evitados imprevistos e, portanto, os conceitos decomputação filantrópica não se aplicam neste ambiente, em que a disponibilidade e aintegridade dos dados são uns dos fatores importantes no que diz respeito à segurança dosdados. (CHEDE, 2004)“Um ambiente empresarial geralmente mantém seus PCs conectados em redes de altavelocidade da conexão muito maiores e estáveis que as esperadas na computação filantrópica,aberta à Internet.”(CHEDE, 2004).

20Abaixo temos uma comparação entre as duas abordagens:ConexõesParticipaçãoAdministração onexão remota, de baixavelocidade.VoluntáriaNão existem políticas nemobrigatoriedade de adoçãoAmbientes diversosAmbienteEmpresarialConectados em redes de altavelocidadePode ser compulsóriaExistem políticas a seremseguidasPadronizadasQuadro 1: Diferença entre a abordagem adotada entre a Computação Filantrópica e os Ambientes Empresariais.Fonte: CHEDE, 2004.Um exemplo de computação filantrópica que merece destaque é o projeto Seti@home,que tem movido esforços na investigação por vida extraterrestre.O projeto SETI (Search for Extraterrestrial Intelligence) “é uma experiência científicaque usa computadores interconectados pela Internet na busca por inteligência Extraterrestre1”(SETI@Home). “Os participantes do SETI@Home cedem voluntariamente o uso do tempodisponível dos seus computadores.” (STANTON, 2004).“Usando um software que pode ser baixado pela Internet, um microcomputador podeanalisar sinais de rádio do telescópio de Arecibo. Atualmente existem 4 milhões de assinantesem 224 países, criando um computador virtual com uma performance de 20 Tflops.”(PITANGA, 2004).O poder computacional alcançado com este projeto tem mostrado uma solução rápidae viável para computação de trabalhos científicos que precisam de diversos recursoscomputacionais para o processamento de grandes quantidades de dados, evitando ao máximoa invi

INM - Intellipool Network Monitor NUMA - Non-Uniform Memory Access CC-NUMA - Cache Coherence Non-Uniform Memory Access CRM - Customer Relationship Management ERP – Enterprise Resource Planning LISTA DE SIGLAS. AC - Assistente de Comunicação T3D - Toro 3D bidireccional