Programação Paralela em Arquiteturas Multi-Core/Aplicações Internet: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Linha 80:
==== Definição ====
A computação em grade (do Inglês [[Wikipedia:|grid computing]]) é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma [[Wikipedia:|máquina virtual]]. Esses processos serão executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, evitando assim o desperdício de processamento da máquina utilizada. A metáfora adotada na computação em grade é a da rede eletrica (grid, em Inglês). Isto é, o poder computacional deveria estar disponível na Internet da mesma forma que energia elétrica está disponível na tomada: sob demanda e de maneira transparente.▼
Uma experiência de integração de processamento distribuído é o projeto SETI@home [http://setiathome.ssl.berkeley.edu/], uma continuação do projeto da NASA de busca de inteligência extraterrestre. Usando um software que pode ser baixado pela Internet, um microcomputador pode analisar sinais do rádio telescópio de Arecibo. Atualmente, existem 4 milhões de assinantes em 224 países, criando um computador virtual com uma performance de 20 Tflops.▼
Um outro exemplo são as famosas redes peer-to-peer, como Emule (Edonkey), Kazaa, Gnutella, em que se compartilham arquivos por exemplo, mas sem nenhum controle de acesso e não interoperam entre si. Com a evolução dessas aplicações elas acabaram por inter-operar e haverá uma convergência de interesses entre computação ponto a ponto, Internet e computação em grade. ▼
A diferença existente entre a computação distribuída e computação em grade se dá pelo fato de que a computação distribuída é um conceito que vem dos anos 80 e 90, e consiste na possibilidade de resolver um determinado problema computacional através da utilização de diferentes recursos distribuídos geograficamente. A computação distribuída passa a ser uma “Computação em Grade” no momento em que existe uma infra-estrutura física e uma infra-estrutura lógica (software) que permita coordenar os trabalhos que vão ser processados e garantir a sua qualidade de serviço.▼
▲A computação em grade (do Inglês [[Wikipedia:|grid computing]]) é um modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma [[Wikipedia:|máquina virtual]]. Esses processos serão executados no momento em que as máquinas não estão sendo utilizadas pelo usuário, evitando assim o desperdício de processamento da máquina utilizada. A metáfora adotada na computação em grade é a da rede eletrica (grid, em Inglês). Isto é, o poder computacional deveria estar disponível na Internet da mesma forma que energia elétrica está disponível na tomada: sob demanda e de maneira transparente.
O surgimento das Grids Computacionais nasceu da comunidade de Processamento de Alto Desempenho (PAD). O conceito foi apresentado pelos pesquisadores Ian Foster e Carl Kesselman, sendo composto por uma infra-estrutura de hardware e software que permite-nos acesso a grandes capacidades computacionais geograficamente distribuídas, de forma confiável, consistente, econômica e persistente. Na verdade o conceito é antigo, mas com uma nova dinâmica, em que se pode utilizar a capacidade de computação (ex. Storage/CPU) sem ter que se preocupar de onde vem, como é mantida, fazendo uma metáfora às redes elétricas.
▲Uma experiência de integração de processamento distribuído é o projeto SETI@home, uma continuação do projeto da NASA de busca de inteligência extraterrestre. Usando um software que pode ser baixado pela Internet, um microcomputador pode analisar sinais do rádio telescópio de Arecibo. Atualmente, existem 4 milhões de assinantes em 224 países, criando um computador virtual com uma performance de 20 Tflops.
Chamamos de Organização Virtual (VO) quando temos participantes que desejam compartilhar recursos para poder concluir uma tarefa. Além disso, o compartilhamento esta além de apenas troca de documentos, isto pode envolver acesso direto a software remoto, computadores, dados, sensores e outros recursos.
▲Um outro exemplo são as famosas redes peer-to-peer, como Emule (Edonkey), Kazaa, Gnutella, em que se compartilham arquivos por exemplo, mas sem nenhum controle de acesso e não interoperam entre si. Com a evolução dessas aplicações elas acabaram por inter-operar e haverá uma convergência de interesses entre computação ponto a ponto, Internet e computação em grade.
[[Image:VirtOrg.png|thumb|right|Virtual Organizations accessing different and overlapping sets of resources]]
▲A diferença existente entre a computação distribuída e computação em grade se dá pelo fato de que a computação distribuída é um conceito que vem dos anos 80 e 90, e consiste na possibilidade de resolver um determinado problema computacional através da utilização de diferentes recursos distribuídos geograficamente. A computação distribuída passa a ser uma “Computação em Grade” no momento em que existe uma infra-estrutura física e uma infra-estrutura lógica (software) que permita coordenar os trabalhos que vão ser processados e garantir a sua qualidade de serviço.
Grids são construídos como um grupamento de serviços básicos independentes. Um aspecto essencial dos serviços de Grid é que esses estão disponíveis uniformemente através dos ambientes distribuídos na Grid. Os serviços são agrupados em um sistema integrado, também chamado de middleware. Exemplos de ferramentas atuais de Grid incluem Globus, Legion, OpenGrid, AppLeS.
Linha 104 ⟶ 102:
Um ambiente de cluster constitui em um sistema formado por hardware e software conectados em um local apenas, servindo a usuários que estão trabalho somente em um projeto, usado exclusivamente para resolver os problemas computacionais de uma determinada organização. Por outro lado, um Grid presta serviços de uma forma geograficamente distribuída. Em um cluster, os recursos são gerenciados por uma entidade central, e os computadores agem como se fosse um único dispositivo. Nas configurações em Grid, cada “organização virtual” faz o gerenciamento de seus recursos não tendo a visão de uma imagem única do sistema. Ou seja, o usuário tem consciência dos diversos serviços disponíveis e que deverá requisitá-los para sua utilização. Portanto, os Grids são mais heterogêneos, complexos e distribuídos.
==== Benefícios e Desafios ====▼
▲==== Benefícios ====
Um Grid possui muitos benefícios, entre os quais podemos citar:
Linha 121 ⟶ 117:
*Aproveitamento de recursos ociosos – pode-se aproveitar os ciclos de processamento idle disponíveis dos PCs desktops que se encontram em várias localidades pelo planeta. Por exemplo, os computadores que se encontram tipicamente ociosos durante a noite de uma empresa em Tókio pode ser utilizado durante o dia para operações na América do Sul.
A computação em grade, por ser uma tecnologia ainda muito recente, possui muitos desafios operacionais e de pesquisa a serem combatidos. Apenas para exemplificar, citamos alguns deles:
|