Buscar

Grid Computacional: Compartilhamento de Recursos

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