Prévia do material em texto
ENSINO PRECENSIAL COM SUPORTE EM EAD SISTEMS DE INFORMAÇÃO ERIC VALENZI FILARDI – RA 267232012 GRID COMPUTACIONAL GUARULHOS 2014 ERIC VALENZI FILARDI – RA 267232012 MARCELO PERON DURAN - RA GRID COMPUTACIONAL Trabalho apresente ao curso de Sistemas de informação, da faculdade Eniac para a disciplina de Computação Paralela Prof. Cao GUARULHOS 2014 Introdução De forma resumida, um grade computacional, ou grid, é um serviço para o compartilhamento de poder de processamento e capacidade de armazenamento pela internet, a fim de se otimizar as tarefas realizadas. A ideia do grid é ir bem além de ser apenas um meio de comunicação entre computadores e busca transformar a rede global de computadores em um único e vasto recurso computacional. Primeiramente, cabe diferenciar a Computação em Grid da Computação Distribuída. O investigador da Adetti, Paulo Trezentos explica que, este último é um conceito vindo dos anos 80 e 90 que fala da possibilidade de resolução de um problemas, utilizando-se recursos espalhados geograficamente. Segundo a definição de Andrew Tanenbaum, a um sistema distribuído é uma "coleção de computadores independentes que se apresenta ao usuário como um sistema único e consistente." Paulo Trezentos afirma também que este tipo de sistema se torna uma grid quando é estabelecida uma infra estrutura de software e de hardware que possibilite a coordenação das tarefas de modo a garantir a qualidade do serviço oferecido. Já segundo João Gabriel, professor do Departamento de Informática da Universidade de Coimbra, as grades são uma particularidade da computação distribuída, em que a orientação é feita especialmente para aplicações que necessitam de alta capacidade de cálculo e/ou transmissão de dados. O termo Grade Computacional surgiu em meados da década de 90 para denotar um paradigma de computação distribuída voltado ao compartilhamento de recursos. Esse compartilhamento de recursos pode ser realizado em um ambiente heterogêneo, geograficamente distribuído e sub administrações independentes. Como exemplo desse paradigma, o projeto SETI@Home faz uso de uma Grade Computacional que utiliza os ciclos ociosos de computadores espalhados por todo o mundo para analisar dados referentes a sinais de rádio recebidos por um telescópio, localizado em Porto Rico, em busca de vida http://www.adetti.pt/ inteligente fora do planeta Terra. Os recursos desses participantes formam uma estrutura computacional com uma capacidade coletiva de processamento de dezenas de teraflops. Para empresas com diversas filiais espalhadas pelo mundo, pode ser mais interessante compartilhar recursos ociosos do que adquirir um supercomputador de maior custo. Embora o paradigma de Grade Computacional ofereça amplas vantagens com relação ao compartilhamento de recursos, o comportamento egoísta dos participantes pode prejudicar o crescimento de uma grade. Uma solução para esse problema seria condicionar o uso de um recurso ao oferecimento de outros. É interessante saber a origem do termo Grid. Ele foi criado com base nos sistemas de energia elétrica( power grids), onde se usa a eletricidade sem se ter o conhecimento de onde ela foi gerada, e de forma transparente para os usuários. Segundo Ian Foster, as Grids podem ser definidas de dois modos. Como sendo um método de se compartilhar recursos e se resolver problemas em organizações virtuais multi-institucionais dinâmicas e como sistemas que dão suporte a criação de aplicações paralelas que agregam e fornecem recursos heterogêneos distribuídos geograficamente de forma consistente e barata. De fato, uma grade computacional é como um grande 'supercomputador virtual' que aumenta a velocidade de aplicações paralelizáveis. Ademais, tal capacidade vem sendo incrementada nos últimos anos por causa de alguns fatores como o aumento do desempenho e a redução do custo dos microprocessadores e das redes de forma geral. Tal computador tem o papel de realizar a sincronização das tarefas, gerenciar a utilização dos recursos, transferir informações, gerenciar protocolos de comunicação, garantir a segurança de forma transparente ao usuário. Este, pode ceder recursos à uma aplicação escolhida, além de enviar suas próprias tarefas para serem realizadas no ambiente virtual. A utilização da computação em grid costuma obedecer aos seguintes conceitos: Computação oportunista: Faz uso da capacidade de processamento não utilizada pelos computadores, executando processos em prioridades mais baixas de modo a não prejudicar a realização de outros processos ou a utilização do computador pelo usuário. Técnicas de varrimento de CPU( ou CPU-scavenging, cycle-scavenging, cycle-stealing ou shared computing) são aplicadas de modo a tornar possível a utilização do tempo ocioso de um sistema. Tipicamente, o uso de computação oportunista utiliza ciclos de instrução que seriam desperdiçados à noite, durante o almoço ou mesmo em segundos dispersos ao longo do dia quando o computador está esperando por um input do usuário ou por dispositivos lentos. Na prática, além do poder puro da CPU, computadores que participam de uma grid cedem também um pouco de espaço no disco rígido, memória RAM e banda de rede. Computação voluntária ou Computação filantrópica: O usuário interessado em ajudar certo projeto se cadastra neste e instala o aplicativo cliente em seu computador. Podem ser destacados alguns tipos de grades: -Grid computacional: Tem o enfoque voltado para o processamento de dados. Portanto é importante que se tenha máquinas de alto desempenho. -Grid varredor: Nesse tipo de grid é feita uma varredura no pc dos recursos e ciclos de CPU ociosos, para que possam ser utilizados pela grid. Contudo, os donos dos computadores sempre têm o controle sobre os recursos que estão participando do Grid. -Grid de dados: Nesse tipo de grid, diversas organizações armazenam e acessam os dados compartilhados. Neste caso, os usuário não sabem aonde se localizam os dados, apesar de temer acesso às informações. Note que os tipos supracitados não são mutuamente excludentes. Ou seja, uma mesma grid pode ser um grid computacional, varredor e de dados ao mesmo tempo, se apresentar as características necessárias. Arquitetura: A arquitetura Grid é comumente descrita através de camadas, que provêm funções específicas, sendo que as camadas mais altas são mais centradas no usuário, enquanto que as mais baixas no hardware. A camada mais baixa é a da rede, que tem o papel de conectar os recursos da grid. Acima da camada da rede se encontram os recursos, tais como computadores, serviços de armazenamento, catálogos eletrônicos, sensores que estão conectados a rede. Logo em seguida, a camada do middleware fornece ferramentas que permitem que elementos distintos(servers, redes de armazenamento, etc) participem na grade. Como uma analogia, pode-se dizer que o middleware é o cérebro da grid, pois é a 'inteligência' que une e controla outros elementos. Por último, a camada mais alta da estrutura é a que se refere a aplicação propriamente dita, que inclui aplicações em diversas áreas como em engenharia e financias, além de portais e desenvolvimento de ferramentas que auxiliam as aplicações. Nas arquiteturas em grade mais comuns, a camada de aplicação fornece o chamado serviceware, que se consiste de funções gerais de gerência como medir quem fornece recursos e quem os usa, uma atividade importante quando se compartilha recursos de uma diversidade de instituições entre um grande número de usuários. A camada do middleware é dividida em outras duas camadas. A primeira é a de recursos e protocolos de conectividade, que cuidam da comunicação em rede entre diferentes computadores e recursos de grid. Nesta camada, protocolosde comunicação são usados para que computadores que contribuam numa grid reconheçam mensagens relevantes no contexto da grid e ignorem qualquer outra mensagem vinda pela internet, isto é, permite que os recursos se comuniquem entre si, possibilitando troca de dados. Além desses, existem os protocolos de autentificarão, que fornecem mecanismos seguros de verificar a identidade tanto dos usuários, como dos recursos. A segunda camada é dos serviços coletivos, que também são baseados em protocolos. Estes são os protocolos de informação, que obtêm informação sobre a estrutura e o estado dos recursos numa grade computacional a os protocolos de gerência, que negociam o acesso a recursos de um modo uniforme. Serviços coletivos abrangem atividades como realizar update de diretórios dos recursos disponíveis, monitorar e diagnosticar problemas, replicar dados, fornecer serviços de policiamento para rastrear que pode fazer o que e quando. Folding@Home, ou FAH, é uma Grid lançada em outubro de 2000 e construída para intensamente computar simulações de como moléculas biológicas se moldam em seu estado funcional, analisando também as doenças relacionadas, como BSE, Alzeheimer, Huntington, Osteogensis imperfect. Atualmente é gerenciado pelo Pande Group, que é uma organização sem fins lucrativos, dedicada à pesquisa científica e à educação, que se compromete a não vender nenhum dado ou ter qualquer lucro sobre ele. É localizado dentro do departamento de química da Universidade de Stanford, sob supervisão do professor Vijay Pande. Atualmente, esta grid é o mais poderoso computador virtual do mundo, segundo o Guinness. Contribuintes deste projeto podem ter 'user names', que são usados pra se manter um histórico das contribuições feitas. Cada usuário pode rodar o programa cliente em um ou mais computadores. Além disso, os usuário podem contribuir sob o nome de um ou mais times, enquanto que recebem pontos que indicam o número e a dificuldade das tarefas realizadas. A velocidade de formação das proteínas é incrivelmente rápida, algumas tão velozes como um milionésimo de segundo. Enquanto esse valor é muito rápido na escala de uma pessoa, é consideravelmente longo para que os computadores simulem. De fato, demora-se cerca de um dia para se simular um nano segundo. Infelizmente, as proteínas se formam na ordem de dezenas de microssegundos. Portanto, demoraria 10.000 dias de uso da CPU para simular sua formação. Isto é, tem-se que esperar 30 anos de CPU para se obter apenas um resultado. Por causa disso, o projeto Folding@home é extremamente importante, enquanto que acelera as simulações realizadas. Em se tratando da segurança, o software do Folding@Home se conecta periodicamente somente ao servidor de dados em Stanford e baixa unidades de trabalho, que são pacotes de dados utilizados na computação, e os manda de volta ao servidor. Além disso, são utilizadas assinaturas virtuais de 2048 bits para garantir que aquilo que está sendo recebido são os verdadeiros pacotes de Stanford. Caso as assinaturas não sejam iguais, seja na entrada ou na saída, o cliente irá jogar fora os dados e começar de novo. Isso garante que está sendo feita a segurança mais rigorosa. Por último, o cliente/screen saver é disponibilizado apenas do site do projeto, de modo a garantir a integridade do software. Em setembro de 2007, o projeto oficialmente obteve performance maior que um petaFlop, se tornando o primeiro sistema computacional a atingir tal capacidade de processamento, apesar de que já havia tido pontos de fico acima de um petaFlop em março do mesmo ano. No momento, opera acima de 1 petaFlop integralmente, tendo a maioria da performance vinda dos clientes para o Playstation3 (Ícone do FAH na XrossMediaBar do Playstation3) . (Cliente do FAH em funcionamento em um Playstation3) Grid x Cluster Uma das controvérsias existentes em torno dos sistemas em Grid, deve-se ao fato destes serem comumente confundidos com clusters. Porém, antes de definir as diferenças entre um cluster e um Grid é preciso conhecer a definição de um cluster e como este trabalha. A definição de Buya para cluster é a que segue: “A cluster is made up of multiple interconnected http://www.gta.ufrj.br/grad/08_1/grades/img/PS3-FoldingatHome.jpg http://www.gta.ufrj.br/grad/08_1/grades/img/PS3-FoldingatHome.jpg http://www.gta.ufrj.br/grad/08_1/grades/img/PS3-FoldingatHome.jpg http://www.gta.ufrj.br/grad/08_1/grades/img/Abeta-PS3.png http://www.gta.ufrj.br/grad/08_1/grades/img/Abeta-PS3.png http://www.gta.ufrj.br/grad/08_1/grades/img/Abeta-PS3.png nodes that co-operatively work together as a single unified resource. Unlike Grids, clusters resources are owned by a single organization andthey are managed by a centralized resource management and scheduling system. That means that all users of a cluster have to go through a centralized system that manages allocation of resources to application jobs.” (trad.: um conjunto de múltiplos nós interconectados que trabalham cooperativamente juntos como um único recurso. Ao contrário dos Grids, os recursos de um clusters são pertencentes a uma única organização e eles são gerenciamentos por um recurso de gerenciamento e escalonamento centralizado. Isto significa que os usuários de um cluster tem que passar por um sistema centralizado que gerencia a alocação de recursos para os trabalhos das aplicações). Através dessa definição de Buya fica bastante claro afirmar quais são os pontos chaves nos quais os clusters se diferem dos grids • os clusters são fisicamente centralizados, isto é, o membros (nós) de um cluster encontram-se dispersos sobre uma mesma área física (um prédio, sala, datacenter, etc). • os recursos (poder de processamento, memória, etc) de um cluster são administrados pela organização responsável pelo cluster. Em um Grid, a administração deste recurso cabe a cada um dos responsáveis pelos nós do Grid. Além disso, segundo a definição de cluster utilizada por Buya, bem como o que foi estudado anteriormente, é fácil compreender alguns dos outros aspectos que definem a diferença entre ambos: • os grids, devido a sua estrutura descentralizada, têm uma disposição de recursos computacionais muito mais heterogênea do que um cluster. Ou seja, a variação do poder de processamento, memória, disco, etc dos membros de um grid é muito maior do que aquela encontrada nos membros de um cluster (aonde o que se deseja geralmente é o contrário, caso contrário, poderia configurar-se como um gargalo). • os membros (nós) de um grid não precisam estar permanentemente inter- conectados. • clusters tendem a serem utilizados para solução de problemas lineares, ao passo que Grids devem ser utilizados para sistemas capazes de serem processados em paralelo. Por fim, é importante ressaltar que é possível criar grids utilizando clusters como membros, entretanto o contrário não é possível. Conclusão ? Referencias. "O que é Grid Computing": http://paulotrezentos.polo- sul.org/articles/Recortes/jornal.publico.pt/publico/2003/02/17/Computadores/TI0 6CX01.html Marcos Pitanga, "Uma visão introdutória": http://www.clubedohardware.com.br/artigos/124/1 Portal Folding@ Home: http://folding.stanford.edu/ Open Grid Forum: http://www.gridforum.org/ Wikipedia sobre Folding@Home: http://en.wikipedia.org/wiki/Folding@Home Wikipedia sobre Computação em Grade: http://en.wikipedia.org/wiki/Grid_computing http://paulotrezentos.polo-sul.org/articles/Recortes/jornal.publico.pt/publico/2003/02/17/Computadores/TI06CX01.html http://paulotrezentos.polo-sul.org/articles/Recortes/jornal.publico.pt/publico/2003/02/17/Computadores/TI06CX01.html http://paulotrezentos.polo-sul.org/articles/Recortes/jornal.publico.pt/publico/2003/02/17/Computadores/TI06CX01.html http://paulotrezentos.polo-sul.org/articles/Recortes/jornal.publico.pt/publico/2003/02/17/Computadores/TI06CX01.htmlhttp://www.clubedohardware.com.br/artigos/124/1 http://www.clubedohardware.com.br/artigos/124/1 http://folding.stanford.edu/ http://www.gridforum.org/ http://en.wikipedia.org/wiki/Folding@Home http://en.wikipedia.org/wiki/Grid_computing http://en.wikipedia.org/wiki/Grid_computing