Trabalho sobre Grids e Clusters

Propaganda
PONTÍFICIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
Sistemas de Informação-Introdução a Computação
GRIDS E CLUSTERS COMPUTACIONAIS
Cristian Alberto dos Santos
Davidson David da Silva
José Roberto Ferreira
Lucas Marçal Moreira
Marcelo Gomes Silva
Mary Ellen Dorneles Evangelista
Belo Horizonte
2007
II
SUMÁRIO
1. INTRODUÇÃO.....................................................................................................................3
2. CLUSTERS COMPUTACIONAIS.....................................................................................4
2.1 Ferramentas de instalação, configuração e manutenção.................................................5
2.2 Ferramentas de monitoração............................................................................................ 6
2.3 Ferramentas de escalonamento........................................................................................ 6
2.3.1 Métodos de escalonamento...............................................................................................7
2.4 Tipos de Clusters..................................................................................................................8
3. GRIDS COMPUTACIONAIS........................................................................................... 10
3.1 Características dos grids.................................................................................................. 10
3.1.1 Diferenças entre Clusters e Grids.................................................................................. 11
3.1.2 Diferenças entre Grid x Peer To Peer (P2P)................................................................. 11
3.1.3 Diferenças entre internet web e grid.............................................................................. 11
3.2 Benefícios dos Grids.........................................................................................................12
3.3 Ferramentas e padrões.................................................................................................... 13
3.4 Tipos de Grids.................................................................................................................. 13
3.5 Alcance dos grids..............................................................................................................14
3.6 Exemplos de Grids........................................................................................................... 14
4. CONSIDERAÇÕES FINAIS............................................................................................. 15
5. REFERÊNCIAS BIBLIOGRÁFICAS..............................................................................16
3
1. INTRODUÇÃO
Devido à necessidade de se processar grandes quantidades de dados, como alternativa
mais barata perante os supercomputadores, surgiu na década de 1960 uma forma de interligar
vários computadores e compartilhar seus recursos visando obter uma solução comercialmente
viável. Começaram então a serem criados estruturas de computação distribuídas, como por
exemplo grids e clusters.
O cluster é um sistema que compreende dois ou mais computadores ou sistemas
trabalhando em conjunto para executar aplicações ou tarefas cujas máquinas não teriam
capacidade para realizá-las individualmente.
A idéia inicial sobre clusters foi desenvolvida pela IBM, nesta época o sistema HASP
(Houston Automatic Spoling Priority) e seu sucessor, JES (Job Entry System) proviam uma
maneira de distribuir tarefas nos mainframes interligados.
Porém esta novidade (clusters) perdeu força na década de 80 com o surgimento de
microcomputadores de alta performance, redes de alta velocidade e ferramentas padronizadas
para computação distribuídas.
Nos anos 90, uma nova arquitetura de computação distribuída foi proposta, vários
modelos foram especificados, dentre eles a tecnologia em grade (grid computing), em
comparação às redes elétricas. Foi apresentado ao usuário como um computador virtual,
ocultando toda infra-estrutura distribuída, assim como a energia que chega na tomada elétrica.
Seu objetivo era casar tecnologias heterogêneas, onde se pudesse compartilhar
processamento, espaço de armazenamento, dados, aplicações, etc.
A computação em grade vem ganhando destaque nos últimos anos, com empresas
investindo nos grids para seus ambientes corporativos.
A principal diferença entre um cluster e um grid é que um cluster possui um
controlador central, um único ponto de onde é possível utilizar todo o poder de processamento
do cluster. Os demais nós são apenas escravos que servem a este nó central. Os clusters são
mais usados em atividades de pesquisa, resolvendo problemas complicados e na renderização
de gráficos 3D. Os grids por sua vez são uma arquitetura mais "democrática" onde embora
possa existir algum tipo de controle central, temos um ambiente fundamentalmente
cooperativo, onde empresas, universidades ou mesmo grupos de usuários compartilham os
ciclos ociosos de processamento em seus sistemas em troca de poder utilizar parte do tempo
de processamento do grid.
4
2. CLUSTERS COMPUTACIONAIS
Cluster é uma palavra da língua inglesa que significa: “número de coisas da mesma
espécie, crescendo ou se aproximando a um grupo”, cluster computacional é compreendido
como uma arquitetura redundante de equipamentos, que permite uma espécie de
espelhamento de funções equivalentes e que são operadas simultaneamente para conterem os
mesmos dados em replicação, de tal forma interligados, para que caso haja falha de parte ou
de um dos equipamentos agrupados, o outro assume todos os serviços automaticamente, sem
interrupção.
Um cluster é um conjunto de computadores independentes conectados por rede que
formam um sistema único através do uso de software. Em geral clusters são classificados
segundo alguns critérios. Um cluster é dito homogêneo quanto todos os nós da máquina
possuem a mesma configuração; caso contrário eles são conhecidos como heterogêneos. Já o
número de processadores existentes por máquina permite a classificação entre mono (um
processador) ou multiprocessados (vários processadores). Uma terceira classificação leva em
conta o modo de configuração do cluster. Neste caso, um cluster pode ser formado através de
um determinado número de computadores ou até de constelações (cluster de clusters).
Para que exista, um cluster é preciso de pelo menos dois computadores.
Evidentemente quanto mais computadores existir, maiores serão os custos de implementação
e manutenção. Mas ainda assim, os custos costumam ser menores do que a
aquisição/manutenção de computadores poderosos.
Cada computador de cluster é denominado um nó ou nodo. Todos devem ser
interconectados de maneira a formarem uma rede. Essa rede precisa ser criada de uma forma
que permita o acréscimo e a retirada de um nó (em caso de danos, por exemplo), mas sem
interromper o funcionamento do cluster. O sistema operacional usado nos computadores deve
ser de um mesmo tipo. Isso porque existem particularidades em cada sistema operacional que
poderiam impedir o funcionamento do cluster. Independente do sistema operacional usado, é
preciso usar um software que permita a montagem do cluster em si. Esse software vai ser
responsável, entre outras coisas, pela distribuição do processamento. Esse é um ponto crucial
na montagem de cluster. É preciso que o software trabalhe de forma que erros e defeitos
sejam detectados, oferecendo meios de providenciar reparos, mas sem interromper as
atividades do cluster.
Os clusters podem ser usados para uma infinidade de aplicações, basicamente para
5
qualquer uma que exija processamento pesado. Como exemplo de aplicações, temos previsão
metereológica, simulações geotérmicas, renderização de efeitos especiais, simulações
financeiras, distribuição de carga, biotecnologia, petroquímica, mineração de dados,
processamento de imagens e servidores de música e jogos para a Internet.
Basicamente, qualquer tipo de aplicação crítica, ou seja, aplicações que não podem
parar de funcionar ou não podem perder dados (como sistemas de bancos, por exemplo),
podem usar as tecnologias de cluster, desde que devidamente configurados para não serem
sujeitos a falhas graves. Assim, o cluster deve contar com nobreaks ou geradores que
garantam o funcionamento do sistema mesmo nos casos de queda de energia, alem de meios
de manutenção e detecção de falhas.
O uso de clusters tem sido uma das alternativas adotadas para o desenvolvimento de
sistemas computacionais paralelos. No entanto, a configuração e manutenção deste tipo de
arquitetura envolvem diversos fatores sendo simplificada pela existência de ferramentas
específicas para cada problema, desde a instalação do sistema operacional, até a definição de
ferramentas para a configuração, manutenção, monitoramento e escalonamento de tarefas.
2.1 Ferramentas de instalação, configuração e manutenção
• Kickstart: é um sistema desenvolvido para RedHat Linux que permite colocar todas
as seleções que o usuário faria na instalação manual, como seleção da linguagem, partições,
pacotes a serem instalados, etc, em um arquivo de configuração.
• FAI (Fully Automatic Installation): é um conjunto de scripts e arquivos de
configuração para instalação automatizada de sistema Debian Linux .
• Replicator: outro recurso desenvolvido exclusivamente para sistemas Debian Linux,
funcionando como um duplicador de instalação.
• ALICE: é um sistema para SuSE Linux que permite instalar e configurar várias
máquinas automaticamente com o mínimo possível de interação humana. Baseado em
interfaces como syslinuxrc, YaST e suseconfig, além de instalar os sistema operacional,
ALICE também pode criar grupos e usuários, ativar serviços, etc.
• OSCAR (Open Source Cluster Application Resources): É um ambiente para a
instalação, configuração e gerenciamento de clusters. Apresenta de forma integrada os
recursos mais utilizados em cluster, disponibilizando a configuração automática de
componentes, bem como a instalação eficiente do ambiente básico como sistema operacional
e ferramentas de administração e operação.
6
2.2 Ferramentas de monitoração
A monitoração é um processo que consiste em apresentar a utilização dos recursos de
um cluster através da análise de dados recolhidos continuamente do sistema. Desta forma é
possível obter informações sobre a existência de máquinas ociosas ou com problemas,
utilização da rede, capacidade de processamento do processador e quantidade de memória
utilizada, permitindo assim a tomada de decisões.
Atualmente existem diversas ferramentas que permitem verificar o estado de um
ambiente de maneira simples e intuitiva:
• Ganglia: é uma ferramenta de monitoração para clusters e grids desenvolvida de
forma distribuída e escalável. Um módulo centralizador coleta e atualiza as informações,
enquanto que cada nó mantém uma cópia do estado corrente do sistema. Os dados coletados
podem ser visualizados graficamente através de uma interface Web. Com Ganglia é possível
monitorar qualquer tipo de informação, uma vez que o usuário pode definir métricas
específicas através de outra aplicação, além daquelas já coletadas pelo próprio sistema.
• Parmon: é uma ferramenta comercial que possui uma arquitetura centralizada, sendo
dividida em duas partes: servidor, responsável por monitorar o nó, e cliente, onde é feita a
centralização de todos os dados monitorados e a visualização gráfica e on-line ou textual das
informações. Parmon permite adquirir informações dos recursos do sistema de vários nós,
acompanhar processos e logs do sistema, além de definir eventos de alerta (trigger) ao
administrador do cluster. Também é possível monitorar CPU, memória, rede e disco e
executar alguns comandos paralelos.
• SCMS: tem como objetivo monitorar de forma simples, eficiente e robusta clusters
de pequeno e médio porte através de uma arquitetura centralizada organizada num módulo de
monitoração e num módulo de centralização, o qual armazena os dados monitorados e atende
as requisições dos clientes. A ferramenta permite monitorar o uso de CPU, memória, rede e
disco, além de fornecer informações úteis sobre a configuração dos nós do cluster.
• RVision: foi desenvolvida com o objetivo de ser adaptável a diferentes clusters,
tendo uma arquitetura aberta e configurável. Possui uma interface para a comunicação de
clientes com o núcleo da ferramenta. A arquitetura é centralizada
2.3 Ferramentas de escalonamento
A escalabilidade é um fator diferencial dos ambientes de cluster, pois a configuração
7
pode crescer à medida que mais recursos estiverem disponíveis. Com o escalonamento de
recursos o processamento efetua-se de forma eficiente, minimizando o tempo de execução das
tarefas e maximizando a utilização de recursos computacionais disponíveis.
2.3.1 Métodos de escalonamento
−
Local: refere-se ao problema de atribuição de fatias de tempo de um processador
aos processos, é normalmente realizado pelo sistema operacional.
− Global: define onde executar um processo, portanto mais aplicáveis aos sistemas
distribuídos, divide se em:
• Escalonamento estático: neste caso a atribuição de processos aos processadores é
realizada antes do início da execução do programa. Desta forma é necessário que se tenha
informações dos tempos de execução dos processos e dos elementos de processamento
disponíveis em tempo de compilação.
• Escalonamento dinâmico: é realizada a redistribuição de processos aos
processadores durante a execução dos programas, segundo algum critério. Devido à
dificuldade em se estimar o tempo de execução de um processo e a natureza dinâmica dos
recursos computacionais, os métodos dinâmicos realizam a redistribuição de processos entre
os elementos de processamento, tirando trabalho dos processadores que tenham ficado mais
carregados e transferindo para aqueles processadores menos carregados.
As ferramentas de escalonamento mais conhecidas são:
• CCS (Computing Center Software): desenvolvido pelo Centro de Computação
Paralela de Paderborn (Alemanha), o objetivo de CCS é gerenciar sistemas MPP
(Computação Massivamente Paralela) e clusters num sistema de planejamento.
• PBS (Portable Batch System): Desenvolvido inicialmente pela NASA e
posteriormente apresentado em uma versão comercial, PBS apresenta suporte a tarefas tanto
de um único sistema como de múltiplos sistemas.
• Condor: é uma ferramenta que pode ser usada para gerenciar clusters e múltiplos
clusters. As tarefas são armazenadas em uma lista de espera. Algumas das características de
Condor são a submissão distribuída de tarefas, prioridades para usuários e tarefas, suporte a
múltiplos modelos de tarefas, checkpointing e migração, suspensão de tarefa e posterior
continuação, autenticação e autorização, entre outros.
• Maui: é um escalonador de tarefas configurável e otimizado, capaz de suportar
diferentes técnicas de escalonamento, prioridades dinâmicas, reserva de recursos e
compartilhamento justo. Implementado em Java.
• Crono: possui como objetivo principal o gerenciamento de clusters pequenos e
8
médios num sistema de planejamento, uma vez que a utilização do cluster ocorre por meio de
de agendamentos. Ele foi desenvolvido pela PUC-RS, disponibilizando serviços necessários
para compartilhar um cluster entre vários usuários.
2.4 Tipos de Clusters
Cluster Beowulf - Foi fundamentado em 1994, pela NASA, com a finalidade de
processar as informações espaciais que a entidade recolhia. Desde então, grandes empresas
(como HP e IBM) e universidades (como a brasileira Unesp) vêm construindo clusters deste
tipo e com cada vez mais nós. O que o distingue dos outros tipos são as seguintes
características:
− As conexões dos nós podem ser feitas por redes do tipo ethernet;
− Existe um servidor responsável por controlar todo o cluster;
− O sistema operacional é baseado no Linux;
− Pode se usar computadores comuns, inclusive modelos considerados obsoletos.
De maneira generalizada, o cluster Beowulf, permite a construção de sistemas de
processamento que podem alcançar altos valores de gigaflops (um gigaflop equivale a um
bilhão de instruções de ponto flutuante executada por segundo). Isso tudo com o uso de
computadores comuns e um sistema operacional com código fonte livre.
Cluster para alta disponibilidade: a alta disponibilidade refere-se a sistemas que
praticamente não param de funcionar. Usados em aplicação de missão crítica, eles costumam
ter meios eficientes de proteção e detecção de falhas.
Cluster para balanceamento de carga: é muito usado na internet, em servidores de
e-mail, comercio eletrônico e sistemas de lojas, neste tipo de cluster, é necessário que haja
monitoração constante da comunicação e mecanismos de redundância. Caso contrario
qualquer falha pode interromper seu funcionamento.
Cluster combo: este tipo reúne características de balanceamento de carga e alta
disponibilidade.
Cluster MOSIX: Multicomputer Operating System for Unix, é um conjunto de
ferramentas de clusters para Linux, voltado ao tipo balanceamento de carga. Uma de suas
principais características é a não necessidade de aplicações de recursos de software voltados
ao cluster, como acontece com o Beowulf. O MOSIX é eficiente na tarefa de distribuição
dinâmica de processamento entre os computadores do cluster.
9
3. GRIDS COMPUTACIONAIS
O Grid Computing teve origem no início da década de 90 para atender a uma demanda
específica da área científica. Ian Foster, do Laboratório Nacional Argonne, apresentou a
proposta de uma associação entre laboratórios mundiais com a finalidade de compartilhar
parte de sua capacidade computacional ociosa e o conhecimento de seus pesquisadores por
meio de uma rede de computadores permeável e interconectável entre si, independentes e
amplamente dispersos como plataforma de execução de aplicações paralelas.
A partir da instituição não governamental Globus.org, que estruturou o modelo de
Grid Computing proposto por Foster, é que o conceito se tornou popular. Houve então a
disseminação do conceito entre as instituições científicas, porém, com a evolução das
pesquisas e tecnologias utilizadas pela indústria para computação distribuída, houve
naturalmente uma convergência entre o mundo acadêmico e empresarial. Assim, a idéia é
prover uma infra-estrutura que viabilize serviços sob demanda, permitindo uma maior
colaboração entre varias instituições, através do compartilhamento de seus serviços e
recursos, e utilizando mecanismos que facilitem a interoperabilidade.
3.1 Características dos grids
• Recursos coordenados que não se sujeitam a um controle centralizado - sistemas em
Grid podem englobar recursos entre os mais variados tipos, desde o desktop de um usuário até
um supercomputador. Pode haver um controle local em uma empresa, mas não existe um
controle central para todo o grid;
• Utilizar padrões abertos, interfaces e protocolos de propósito geral - é essencial para
que os sistemas em Grid possam realizar funções fundamentais como autenticação,
autorização, descobrimento de recursos e acesso a eles, sem perder a capacidade de escalar e
interagir com diferentes plataformas de hardware e software;
• Prover o mínimo em qualidade de serviços (como segurança, tempo de resposta e
disponibilidade);
O Grid computacional para efeito didático pode ser compreendido em três categorias:
A primeira é quando um número indeterminado de computadores é usado para
processar uma única função (TASK).
Uma segunda categoria de uso de Grid, é o processamento de uma TASK ou um
conjunto de funções (tasks) que requerem um grande volume de processamento de instruções
10
ou de dados e informações em um universo finito de computadores. Essa segunda categoria
tem como princípio o mesmo da anterior, pois processa uma task específica, porém em um
universo de computadores confinados e que tenham permissão para aceso a um banco de
dados específico.
A terceira categoria, a mais aderente à engenharia de sistemas, é constituída por uma
arquitetura de Grid em conformidade com as necessidades características de um sistema
aplicativo qualquer. O exemplo mais contundente é o Grid utilizado para a pesquisa na
internet provisionada pelo Google.
3.1.1. Diferenças entre Clusters e Grids
• os clusters são fisicamente centralizados, isto é, os 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;
• 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;
•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;
• é possível criar grids utilizando clusters como membros, entretanto o contrário não é
possível.
3.1.2. Diferenças entre Grid x Peer To Peer (P2P)
Tanto sistemas peer to peer quanto sistemas em Grid compartilham de um conjunto de
problemas em comum, porém, peer to peer diz respeito à infra-estrutura e design de uma rede,
à infra-estrutura de acesso, compartilhamento e busca de informações, ao passo que Grid diz
respeito ao acesso e compartilhamento de recursos computacionais.
3.1.3. Diferenças entre internet web e grid
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 forma intensa após o desenvolvimento da abordagem web, após o
grande público descobrir a Internet através dos serviços web vinte anos atrás como o esforço
da indústria da informática para o desenvolvimento de aplicações prontas sem o
11
questionamento de interoperabilidade no sentido do usuário-site. O grid surgiu a dez anos
impulsionado por vários participantes do desenvolvimento da Internet, e a interoperabilidade
de aplicações localizadas em sistemas de organizações virtuais distribuídas geograficamente.
3.2 Benefícios dos Grids
• Explorar recursos subutilizados e recursos adicionais - recursos que podem ser
utilizados: ciclos de CPU, espaço em disco, conexões de rede, equipamentos científicos;
• Capacidade de processamento paralelo - uma aplicação escrita utilizando-se de
algoritmos e técnicas de programação paralela pode ser dividida em partes menores e estes
podem ser separados e processados independentemente. Cada uma destas partes de código
podem ser executadas em uma máquina distinta no Grid, melhorando a performance;
• Dispositivos e organizações virtuais - recursos e máquinas podem ser agrupados e
trabalharem juntos formando o que pode ser chamado de uma Organização Virtual;
• Confiabilidade - utilizando-se uma abordagem baseada em Grids, com máquinas
espalhadas em diversos lugares diferentes, quando uma falha atinge uma parte do Grid as
demais podem continuar sua operação normalmente;
• A computação em Grid permite que as organizações possam agregar recursos com
toda a infraestrutura dos ITs, não importando localização global. Isso elimina situações onde
um site esteja sendo executado com sua capacidade máxima, enquanto outros tenham ciclos
disponíveis;
• Poderosa plataforma de suporte a Organizações Virtuais - organizações podem
melhorar dramaticamente sua qualidade e velocidade de produtos e serviços disponibilizados,
enquanto os custos de IT são reduzidos por habilitar a colaboração transparente dos recursos
compartilhados;
• Acesso distribuído a diversos tipos de recursos - permite que empresas acessem e
compartilhem bases de dados de forma remota. Isto é essencialmente benéfico para as
ciências da saúde ou comunidades de pesquisa, onde volumes grandiosos de dados são
gerados e analisados durante todo dia;
• Colaboração entre centro de pesquisas - possibilita a larga dispersão das
organizações para que facilmente possam colaborar em projetos pela criação da habilidade do
compartilhamento de tudo, desde aplicações a dados, até projetos de engenharia, etc;
• Melhor utilização de largura de banda - pode criar a mais robusta e resistente infraestrutura de IT, com melhor capacidade de responder a desastres;
12
• Aproveitamento de recursos ociosos – pode aproveitar os ciclos de processamento
idle disponíveis dos PCs de mesa que encontram-se em várias localizações em múltiplas
faixas de tempo (time zones). Por exemplo, os computadores que se encontram tipicamente
em idle durante a noite de uma empresa em Tókio podem ser utilizados durante o dia para
operações na América do Sul.
3.3 Ferramentas e padrões
A utilização de padrões é um requisito para os Grids. Os padrões estão sendo
desenvolvidos pelo Global Grid Forum, uma entidade que possui centenas de membros,
representando mais de 400 organizações e empresas em mais de 50 países:
●
Open Grid Services Architecture (OGSA): define o que são os serviços e toda
a estrutura que pode ser provida em um ambiente grid.
●
Open Grid Services Infrastructure (OGSI): é a especificação concreta da
infraestrutura da OGSA. Baseado nas tecnologias de Grids e Web Services, é o
middleware para os chamados serviços do Grid, definindo como construir,
gerenciar e expandir um serviço.
●
Globus Toolkit: implementação das especificações OGSA/OGSI. Usando os
Commodity Grid Toolkits é possível trabalhar em outras linguagens como Python,
Perl, etc.
●
IBM Grid Toolbox: versão comercial do Globus. C e Java
●
Ourgrid: projeto desenvolvido pela Universidade Federal de Campina Grande.
Java
●
Ferramentas comerciais: Platform LSF, Avaki Grid Server,
3.4 Tipos de Grids
Grids computacionais - Ciclos de processamento são os recursos compartilhados
neste tipo. Existem três formas de explorar os recursos computacionais em um grid:
• executar uma aplicação em qualquer máquina disponível do grid, independentemente
de onde esteja localizada;
• quebrar o aplicativo em partes menores para que estas possam ser executadas
paralelamente através do grid;
• executar uma tarefa que precisa rodar várias vezes em diferentes máquinas do grid.
13
Grids de dados - O espaço de armazenamento disponível em cada máquina é
compartilhado pelo grid. Desta forma aumenta a capacidade de armazenamento como um
todo, além de aumentar a performance, compartilhamento e confiabilidade dos dados.
Utilizando todo o espaço como se fosse um sistema de arquivos só para todo o grid facilita a
localização de determinado arquivo, sendo que este pode estar dividido em partes menores e
espalhado pelas máquinas participantes. Sistemas de gerenciamento podem duplicar dados
sensíveis em várias máquinas provendo uma redundância.
Grids de rede - Este tipo de grid tem como principal funcionalidade prover serviços
de comunicação tolerantes a falhas e com alta performance. Máquinas com conexões ociosas
podem ser utilizadas para enviar porções de dados ou prover redundância nas transmissões.
3.5 Alcance dos grids
Cluster Grid - Grid mais simples, utilizando o máximo dos recursos de um
departamento e alocados por prioridades;
Enterprise Grid - os recursos são partilhados na empresa ou Universidade,
computação a pedido definida por regras e acesso a múltiplos grupos;
Global Grid - os recursos são distribuídos pela Internet, e globalmente.
3.6 Exemplos de Grids
●
ChinaGrid (interligação de universidades e governo);
●
Molecular Modeling Laboratory – UNC (desenvolvimento de drogas);
●
DEISA (interligação de laboratórios científicos);
●
AccessGrid (video conferência e e-learning);
●
TeraGrid (interligação de universidades);
●
Seti@home: Search for Extra-Terrestrial Intelligence (Busca por Inteligência
Extra-Terrestre);
●
Climaprection.net: visa melhorar a previsão do clima à longo prazo;
●
LHC@home: utilizado para melhorar o acelerador de partículas LHC (Large
Hadron* Collider – Grande Colisor de Hadrons). Obs.: Hadron é uma partícula
sub-atômica de grande força nuclear.
●
Predictor@home: utilizado para prever a estrutura de uma proteína a partir de uma
seqüência protéica.
14
4. CONSIDERAÇÕES FINAIS
As tecnologias de Clustering possibilitam a solução de diversos problemas que
envolvem grande volume de processamento. As aplicações que um cluster pode ter são
diversas, indo desde a simples melhora no desempenho de um determinado sistema ou a
hospedagem de um site, até o processo de pesquisas científicas complexas. Todo o
processamento pode ser feito de maneira que pareça ser um único computador dotado de alta
capacidade. Assim, é possível que determinadas aplicações sejam implementadas em cluster,
mas sem interferir no funcionamento de outras aplicações que estejam relacionadas.
A computação em Grid é uma área recente e extremamente dinâmica. Grande parte do
interesse em Computação em Grid advém do potencial de atingir níveis de paralelismo
inimagináveis em outras plataformas de execução de aplicações paralelas. Tais níveis de
paralelismo podem se traduzir em tanto mais performance para aplicações existentes, quanto
também a possibilidade de executar aplicações inteiramente novas, com gigantescos requisitos
de computação e armazenamento. Mas, além de tão grande avanço técnico para a área de
Processamento de Alto Desempenho (PAD), Computação em Grid é também muito
interessante no que diz respeito à convergência entre tecnologias de PAD e computação
empresarial.
A Computação em Grid ainda está em sua infância, há diversas questões em aberto na
área. É urgentemente necessário a criação de modelos de programação que melhor exponham
a natureza do Grid ao programador, e em melhores formas de lidar com grandes massas de
dados no Grid. Grids são mais complexos e dinâmicos que outras plataformas para execução
de aplicações paralelas. Para garantir performance é necessário conceber abstrações úteis, que
permitam o programador codificar estratégias de adaptação à complexidade do Grid.
Finalizando, os benefícios dos clusters e grids vão além de uma simples plataforma
para execução de aplicações locais ou em larga escala. A idéia é facilitar a colaboração de
grupos de pesquisa distribuídos.
Desafios operacionais e de pesquisa a serem vencidos
●
Localização dos recursos;
●
Reserva de recursos;
●
Capacidade para adaptar-se a mudanças no ambiente;
●
Criação e escalonamento das tarefas;
●
Autonomia de cada grupo participante definir suas próprias seguranças;
●
Recursos requisitados podem estar em diferentes localidades.
15
5. REFERÊNCIAS BIBLIOGRÁFICAS
1. ALECRIM, Emersom. Clusters: principais conceitos. Disponível em: <www.
infowester. com>. Acesso em: 05 maio 2007.
2. CHEDE, Cezar Taurion. Grid computing : um novo paradigma computacional.
Rio de Janeiro: Brasport, 2004 146p. ISBN 8574521930. Acesso em 05 maio 2007.
3. DANTAS, Mario. Computação distribuída de alto desempenho: redes clusters e
grids computacionais. Rio de Janeiro: Axel Books do Brasil, 2005. 278 p.
4. DAVID, Mário. "grid”: Um novo paradigma de computação. Universidade AutónomaLisboa. Lisboa/Portugal. 2005. Acesso em 05 maio 2007.
5. GROPP, William. Beowulf cluster computing with linux. 2nd ed. Cambridge, MA:
MIT Press, 2003 618p. ISBN 0262692929.
6. MCT apóia iniciativas de governo eletrônico, Computação Brasil, Sociedade
Brasileira de Computação, home page: www.sbc.org.br. Acesso em 05 maio 2007.
7. MELLO,
Rodrigo; SENGER,
Luciano José;
YANG,
Laurence
Tianruo.
Performance evaluation of route: a load balancing algorithm for grid
computing. Revista de Informática Teórica e Aplicada, Porto Alegre, v.13, n.1,
p.87-108, jun. 2006. Acesso em 05 maio 2007.
8. M. Pasin and D. L. Kreutz. Arquitetura e administração de aglomerados. In
Terceira Escola Regional de Alto Desempenho, Santa Maria, 2003. Sociedade
Brasileira de Computação - UNISINOS / UFSM / UNILASSALE.
9. NEVES, Marcelo V. CHARÃO, Andrea S.. Laboratório de Sistemas de Computação Curso de Ciência da Computação, UFSM {veiga,andrea}@inf.ufsm.br (artigo).
10. SCHEPKE, Claudio, DIVERIO, Tiarajú A. Programa de Pós-Graduação em Computação Instituto de Informática, UFRGS {cschepke,diverio}@inf.ufrgs.br (artigo).
11. SCHEPKE, Claudio et al. Panorama de ferramentas para gerenciamento de
clusters. Disponível em <www. googleacademico.com>. Acesso em 05 maio 2007.
Download