IV Congresso Brasileiro de Computação
CBComp 2004
Brasil
Grids Computacionais Fundamentos, Ambientes e Experiências
M.A.R. Dantas
Departamento de Informática e Estatística (INE)
Universidade Federal de Santa Catarina (UFSC),
88040900, Brasil,
[email protected]
RESUMO
M.A.R Dantas. 2004. Grids Computacionais Fundamentos, Ambientes e Experiências. Congresso Brasileiro de
Ciência da Computação, Itajaí, 2004, 873 – 882. Itajaí, SC – Brasil, ISSN 1677-2822
Neste mini-curso introduzimos os conceitos fundamentais para o conhecimento do paradigma computacional
conhecido como grid computacional. Desta forma, apresentamos as características peculiares dos ambientes de
clusters e procuramos fazer uma distinção das abordagens. Interessante mencionar que as abordagens são
complementares e que existe um espaço para a utilização dessas formas de processamento. Fatores importantes na
decisão de qual paradigma é mais apropriado para uma solução são o custo, recursos disponíveis e localização física
dos componentes da solução proposta.
PALAVRAS DE INDEXAÇÃO ADITIONAIS: Computação distribuída, computação paralela, processamento de
alto-desempenho
I – Introdução
O processamento de alto-desempenho (PAD) é um
paradigma computacional que tem como um dos seus principais
objetivos a execução de milhares aplicações ao mesmo instante e
ainda o processamento de tarefas paralelas complexas com um
elevado grau de sucesso. Este tipo de processamento
tradicionalmente vinha ao longo de vários anos sendo baseado em
computadores paralelos específicos, tais como aqueles com as
arquiteturas massivamente paralelas (MPP) e os de memória
compartilhada (SMP).Na primeira categoria de arquitetura temos
como exemplos os computadores IBM SP e o Intel Paragon. Os
computadores Silicon Graphics Origin 3000 e Compaq ES40 são
exemplos de máquinas com arquitetura SMP.
Atualmente, para um melhor desempenho de diversas
aplicações em uma organização é comum o agrupamento de
inúmeros computadores de uma forma física local. Estas
configurações são conhecidas como clusters (ou agregados) de
computadores. A característica dessas configurações é a
interligação física de diversos computadores próximos através de
um equipamento de rede. Todos os elementos da configuração são
componentes facilmente encontrados no mercado. Por esta razão,
é usual que estes ambientes também sejam conhecidos como
COTS (Components Off The Shelf), ou seja componentes de
computadores que podem ser facilmente encontrados nas
prateleiras das lojas especializadas.
A figura 1 ilustra dois exemplos de clusters
convencionais formados por componentes comprados em uma loja
qualquer de produtos de informática. A configuração é
caracterizada por computadores IBM-PC interligados por um
switch FastEthernet de 100Mbps. Estas figuras representam
projetos de pesquisa que participamos com o objetivo de
desenvolvimento de aplicações para alto-desempenho. A figura
1.1 (a) representa uma configuração montada para a execução
aplicações de alto-desempenho no Brasil (um exemplo foi o
sequenciamento de Genoma). Já figura 1.1 (b), ilustra um
ambiente de pesquisa de um aluno brasileiro no Japão para o
estudo de aplicações sísmicas.
874
Dantas
As duas configurações apresentadas nas figuras 1 e 2
vêem ganhando considerável popularidade nas empresas, em
universidades e nos centros de pesquisas, pois são interessantes
plataformas para endereçar as demandas computacionais
distribuídas e paralelas com um relativo baixo custo. Nos Estados
Unidos e Europa já é comum o uso de tais configurações em
organizações tais como a NASA, bancos, centros de pesquisas de
previsão de tempo, laboratórios (e empresas) de bioinformática,
empresas das áreas de petróleo, aeroespacial, naval e consultoria
financeira.
(A)
Em adição ao uso das configurações de clusters que são
caracterizadas pela interligação física (ou virtual) local, os
ambientes geograficamente distribuídos começam a ser utilizados
em larga escala.A utilização desses ambientes tem com objetivo
auxiliar os programadores e usuários de aplicações distribuídas e
paralelas a resolver seus problemas mais rapidamente e com um
menor custo. Podemos ainda acrescentar que aplicações que não
poderiam ser resolvidas localmente, começam a ser consideradas
uma vez que é possível o uso de recursos em locais remotos.
Aplicações que requeiram uma grande quantidade de
processamento, espaço em memória e em disco, além do uso de
instrumentos científicos sofisticados podem dispor desses
elementos de maneira paralela distribuída. Várias organizações já
se beneficiam dessa agregação distribuída. Como vários
pesquisadores mencionam [Baker 2000, Baker 2001], é possível
imaginarmos que muitos problemas em diversas organizações
agora podem ser resolvidos sem a necessidade de um
supercomputador local.
(B)
Figura 1. Exemplos clássicos de cluster
Por outro lado, quando existe uma interligação virtual
(ou seja, não dedicada) estes ambientes são denominados como
Nows (Network of Workstations). Na figura 2, as estações de
trabalho apresentadas de nosso laboratório são um exemplo de
uma configuração de cluster virtual.
Nestes ambientes o
agrupamento virtual de máquinas ocorre através da ligação de
computadores locais que estão ociosos na organização, mas que
usualmente não estão fisicamente próximos e nem dedicados para
realizar tarefas para o cluster.
Inúmeros pacotes de software têm sido desenvolvidos
visando à melhoria na utilização dos sistemas distribuídos,
usualmente focando na taxa de utilização (throughput) ou
paralelismo das tarefas.
O objetivo principal da primeira categoria (throughput)
é a melhoria de distribuição de múltiplas tarefas independentes.
Em contraste, os ambientes de software paralelos são projetados
para um melhor desempenho de tarefas paralelas, estas
naturalmente dependentes, e devem atingir um desempenho
aceitável com o aumento do número de computadores
distribuídos. Na prática isto significa que todas as tarefas deverão
finalizar ao mesmo tempo (ou muito próximo) para a obtenção de
uma boa performance.
Exemplos de pacotes desenvolvidos para melhoria na
categoria de throughput são o Condor [Michael 1988], o LSF e o
LoadLever [IBM 1993]. Por outro lado, MPI [MPI 1994], PVM
[Geist 1994], ThreadMarks, Mirage+[Fleish 1994], Shasta são
clássicos exemplos de pacotes de troca de mensagem e memória
compartilhada distribuída que têm como meta um maior
desempenho das aplicações paralelas.
O uso dos ciclos fracamente acoplados de computadores
dispersos em uma rede geograficamente distribuída pode
representar um ambiente adaptativo interessante para
processamento
de
alto-desempenho.
Nestes
ambientes
computacionais, que podemos considerar como oportunista,
devemos considerar a heterogeneidade e o dinamismo natural das
configurações dispersas nas redes de computadores.
Figura 2. Exemplo de um ambiente de Now
874
875
Grids Computacionais Fundamentos, Ambientes e Experiências
Na universidade americana Rutgers de Nova Jersey
[Batheja 2001], por exemplo, existe um grupo de pesquisa que
apresentada um framework para a computação oportunista. Eles
utilizam tecnologias padronizadas para endereçar o problema da
heterogeneidade. O framework oportunista utiliza Java que prove
um modelo sandbox e JavaSpaces que permite mecanismos de
comunicação remota. Desta forma, esta proposta oportunista
prove a facilidade de submissão de códigos paralelos de uma
maneira remota para computadores dispersos em uma rede.
Outro exemplo de computação oportunista é
apresentado em nossas pesquisas [Dantas 1998, Dantas 2002a],
onde empregamos shell scripts e agentes móveis visando prover
aos programadores de aplicações paralelas uma transparência
quanto a heterogeneidade e o dinamismo da configuração
distribuída. Na figura 3 apresentamos a tela principal de um dos
nossos ambientes, onde é possível informar a um usuário onde
existem recursos disponíveis (tais como CPU, memória, disco e
quais os sistemas operacionais disponíveis) em um ambiente de
rede para a execução de sua aplicação paralela ou distribuída.
execuções). Podemos ainda mencionar a não existência de
nenhuma autoridade reguladora no uso de recursos disponíveis
(como nos clusters) ou serviços providos por organizações
virtuais (como em uma configuração de grid). O conceito
oportunista é baseado na utilização de recursos disponíveis de
maneira semelhante aos pacotes paralelos de software. Estes
pacotes foram projetados para a melhoria de execução de tarefas
paralelas. Contudo, o diferencial oportunista é o esforço adicional
que deve ser empreendido visando obter uma melhor performance
na presença de arquiteturas heterogêneas e no dinamismo das
configurações.
Da tabela 1 é possível entender que a diferença principal
entre um grid computacional e um ambiente de computação
oportunista é baseada no custo da utilização dos recursos ociosos.
Em uma configuração de grid existe o provimento dos serviços e
estes têm seus custos estabelecidos pelas organizações virtuais
que os disponibilizam. Por outro lado, o principal objetivo da
computação paralela oportunista é a utilização dos recursos
ociosos em grandes ambientes distribuídos com um custo
reduzido. Um clássico exemplo seria a abordagem do projeto
SETI@HOME .
Tabela I - Diferenças entre as Configurações:
Oportunista, Cluster e Grid
Característica
Domínio
Nós
Segurança do
Processament
o e Recurso
Custo
Figura 3. Interface para um ambiente de computação oportunista.
A configuração distribuída quando considera o uso de
recursos geograficamente distribuídos com uma cooperação
formal com o objetivo de melhorar, viabilizar e até tornar
economicamente possível uma aplicação é conhecida como um
grid computacinal.
A nomenclatura grid é baseada nas malhas de
interligação dos sistemas de energia elétrica. Em um sistema
elétrico, o usuário utiliza a energia sem se perguntar onde a
mesma foi gerada. De maneira semelhante, a idéia de um grid
computacional é que possamos criar um ambiente computacional
distribuído que possua mecanismos que permitam o
processamento, o armazenamento e uso de equipamentos de forma
transparente.
A diferença básica entre a computação paralela
oportunista, os clusters e grids computacionais é baseada na
utilização de ciclos fracamente acoplados de máquinas durante a
execução das tarefas paralelas (ou instantes antes de suas
Granularidad
e do
problema
Sistema
Operacional
Oportunista
Múltiplos
Milhões
Necessária
Cluster
Único
Milhares
Desnecessária
Grid
Múltiplos
Milhões
Necessária
Baixo, uso
exclusivo de
recursos
ociosos
Muito
grande
Alto,
pertencente a
um único
domínio
Grande
Alto, todavia
dividido
entre
domínios
Muito
Grande
Heterogêneo Homogêneo
Heterogêneo
Neste mini-curso, vamos estudar: os fundamentos, os ambientes e
algumas experiências já realizadas nessa nova abordagem
computacional conhecida grid. Nosso objetivo é que o leitor
entenda de forma clara o que são os grids, como estes são
construídos e o que os grids podem fazer para melhorar o
desempenho de suas aplicações em suas organizações.
II– Fundamentos
Um grid é um ambiente computacional de altodesempenho o qual é caracterizado por prover o compartilhamento
geograficamente distribuído de serviços por organizações
distribuídas geograficamente.
As organizações são conhecidas como organizações
virtuais (OV). Traçando uma comparação com a Internet, a
875
876
Dantas
entidade organização virtual seria semelhante a um site, todavia
com a possibilidade de prover serviços solicitados pelo usuário.
Uma organização virtual é uma entidade que compartilha recursos
sob uma determinada política em uma configuração de grid.
Exemplos de organizações virtuais são empresas, centros de
pesquisas e universidades que provêm facilidades de
armazenamento de dados, poder de processamento e o uso de
equipamentos (exemplos são os telescópios)
e aplicações
(exemplos são pacotes de software de simulação que podem
executar com dados fornecidos pelo próprio usuário).
Os grids podem ser considerados também sob o paradigma
de melhoria de alguns aspectos físicos nas redes de comunicação e
computadores, tais como:
•
melhor utilização de largura de banda
•
utilização agregada de um grande poder computacional
•
acesso rápido a dados, pacotes de software e dispositivos
remotos com qualidade de serviço (QoS).
•
Figura 4. Ambiente usuário e o ambiente grid.
Uma série de questionamentos comuns que são levantadas
por usuários iniciantes, são :
-
melhor utilização de CPUs remotas, memórias e espaço em
discos.
O leitor deve compreender que 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 uma forma intensa, após o desenvolvimento
da abordagem Web. Após o grande publico descobrir a
Internet, vinte anos depois de sua existência, o grande
esforço da indústria da informática se voltou para o
desenvolvimento de aplicações prontas sem o
questionamento de interoperabilidade no sentido
usuário-site.
De uma forma geral um grid é conceituado por muitos
[Foster 1999, Globus 2003, Grimshaw 2003, Hey 2003]
como :
“Um ambiente computacional distribuído paralelo que
permite o compartilhamento, a seleção, a agregação de recursos
autônomos e geograficamente distribuídos. Estas operações e
recursos podem ser utilizados durante a execução de uma
aplicação, dependendo de sua disponibilidade, capacidade,
desempenho e custo. O objetivo é prover aos usuários serviços
com os requisitos de qualidade corretos para o perfeito
funcionamento de suas aplicações” .
A abordagem de grid surgiu a cerca de dez anos e a
motivação, impulsionada por vários participantes do
desenvolvimento da Internet, é a interoperabilidade de
aplicações localizadas em sistemas de organizações
virtuais distribuídas geograficamente. Uma outra forma
de entender a diferença entre um grid e a Internet é a
facilidade que o usuário tem de submeter suas
aplicações para serem resolvidas. Na Internet o usuário
dispõe de um menu de serviços fechados.
Desta forma, podemos considerar que um grid computacional
tem como seu principal objetivo alcançar a interoperabilidade
entre as organizações virtuais,
através da habilidade de
cooperação de compartilhamento e agregação de recursos
computacionais distribuídos e disponibilizá-los como serviços.
Na figura 4 ilustramos um ambiente usuário fazendo acesso a
um ambiente de grid. Nesta figura o usuário possui uma
determinada aplicação que ele deseja que seja executada na
configuração. Importante observar que um usuário da Internet não
dispõe da facilidade de submissão de aplicação. A maioria dos
serviços na Internet são oferecidos na forma de pushing, ou seja o
usuário seleciona um serviço oferecido que é
Qual a diferença entre a Internet e o Grid ?
-
Qual seria a diferença entres os ambientes de cluster e
grid computacionais ?
O cluster é uma configuração de hardware e software
local, cujo ambiente tem um único proprietário, voltado
para solucionar os problemas de uma organização. Por
outro lado, um grid computacional tem como objetivo a
prestação de serviços de uma forma geograficamente
distribuída. Para um melhor entendimento do leitor,
podemos fazer uma analogia entre um cluster e uma
LAN (Local Area Network) e o grid e uma WAN (Wide
Area Network).
De uma outra forma, podemos ainda dizer que a
principal diferença entre os clusters e os grids é baseada
na maneira pela qual os recursos são gerenciados. Em
um cluster, os recursos são gerenciados por uma
autoridade central e os computadores trabalham juntos
876
877
Grids Computacionais Fundamentos, Ambientes e Experiências
como uma única entidade física. Nas configurações de
grid, cada organização virtual faz o gerenciamento de
seus computadores não objetivando uma visão única do
sistema. Em outras palavras, o usuário sabe da
existência de inúmeros serviços disponíveis e que de
alguma forma deverá fazer uma requisição de utilização
dos mesmos.
Aplicação
Para uma melhor visualização da diferença entre os clusters e
os grids poderíamos, também, fazer uma analogia com o sistema
telefônico. Cada empresa de telefonia representaria uma
configuração de cluster, onde a mesma tem seus recursos
gerenciados de forma centralizada. Por outro lado, a interligação
dos sistemas de diferentes empresas telefônicas, com seus diversos
serviços, seria um ambiente de grid. Imagine um usuário do
sistema quando o mesmo faz uma ligação. Se a ligação for local a
empresa prestadora de serviço, que é a autoridade central local,
decide como será efetuada a interconexão entre o telefone do
cliente e o telefone destino. Quanto às ligações de longas
distâncias (nacionais e internacionais), o usuário sabe que pode
efetuar uma ligação para todo o planeta, todavia é necessário
utilizar um DDD, ou um DDI, para falar com um telefone distante
no Brasil, ou exterior. Neste caso, tanto o DDD, quanto o DDI,
podem ser entendidos como os serviços prestados pelas
organizações, que são representadas pelas diversas empresas de
telecomunicação, que formam o grid para prover um serviço de
comunicação.
Coletivo
Recurso
Connectividade
Ambiente
5 (a)
Aplicações e Serviços
Como relação às organizações virtuais podemos dizer que
diversas métricas fazem com que estas sejam diferentes entre si.
Diferenças conhecidas que podemos citar se referem aos seus
principais objetivos, sua extensão geográfica, sua dimensão física,
o tempo permitido para uso de facilidades, sua estrutura e o tipo
de comunidade que utiliza a configuração do grid (exemplo
economistas, técnicos, engenheiros, cientistas, biólogos e usuários
leigos).
Middleware
De maneira análoga a Internet, e principalmente devido
a experiência com a mesma, pesquisadores e técnicos vêem
propondo modelos de arquitetura com o objetivo de uma
padronização que permita a interoperabilidade entre diferentes
organizações virtuais. Aspectos tais como autenticação,
autorização,
mecanismos
de
troca
de
mensagem,
compartilhamento de recursos, escalonamento e balanceamento de
tarefas são alguns dos pontos que devem existir e serem
estabelecidos de uma maneira uniforme para uma arquitetura de
grid computacional. Com este objetivo a seguir na figura 5,
apresentamos dois modelos [Foster 1999, Hey 2003] que vêm
ganhando aceitação na comunidade internacional para uma futura
padronização (de facto ou de direito) de uma arquitetura de grid.
Recursos
Redes
5 (b)
Figura 5. Modelos de Grid Computacionais
A figura 5 (a) é mais genérica e seus cinco níveis podem ser
entendidos como:
•
Ambiente - os componentes deste nível implementam
operações específicas locais que ocorrem em cada
recurso
como
resultado
das
operações
de
compartilhamento nos níveis superiores. De um lado,
devem ser implementados mecanismos de negociação
que façam um solicitação para obtenção de informações
sobre a estrutura, o estado e as possibilidades dos
recursos. Do outro lado, mecanismos de gerenciamento
de recursos devem fornecer formas de monitorar a
qualidade de serviço (QoS - Quality of Service).
877
878
Dantas
•
Conectividade – esta camada define os protocolos
básicos de comunicação e autenticação necessários para
as transações de rede específicas do grid. Os protocolos
de comunicação permitem a troca de dados entre os
níveis de ambiente e recursos. Entre os requisitos de
comunicação estão o transporte, o roteamento e o
serviço de nomes. Os protocolos de autenticação
constroem os serviços de comunicação de modo a
prover mecanismos seguros e criptográficos para a
verificação da identidade de usuários e recursos.
•
Recursos – neste nível encontramos os protocolos de
autenticação e comunicação do nível conectividade para
definir protocolos e API's (Application Programing
Interface) que forneçam segurança na negociação,
iniciação, monitoramento, controle, geração de
relatórios e outros detalhes envolvidos nas operações
com recursos individuais. As implementações destes
protocolos chamam as funções do nível de ambiente
para acessar e controlar os recursos locais.
•
•
Coletivo - enquanto no nível de recursos são tratadas as
operações no âmbito de cada recurso individualmente,
neste nível os componentes atuam nas interações entre
coleções de recursos. Os componentes dessa camada
baseiam-se nos níveis recursos e aplicação e
implementam uma grande variedade de serviços tais
como:
-
Serviços de diretório que permitem aos membros
de uma organização virtual descobrir quais são os
recursos desta organização.
-
Servidores de autorização comunitários
reforçam a política de acesso aos recursos.
•
•
Recursos - este nível é constituído pelo conjunto de
recursos que fazem parte do grid, incluindo servidores
primários e dispositivos de armazenamento. Exemplos
de configurações que representam ao nível de recursos
são os clusters, as Nows, os serviços de armazenamento
e
computadores
especiais
tais
como
os
supercomputadores.
•
Rede – O nível de rede é a base da conectividade para
os recursos do grid. Assim, podemos imaginar os
switches, roteadores e a infraestrutura das redes de
comunicação, tais como Sonet/SDH/DWDM, como
exemplos da camada de rede.
Na figura 6 apresentamos uma comparação funcional entre o
padrão TCP/IP, utilizado na rede Internet, e o primeiro modelo de
grid. Esta equivalência é interesse de ser ressaltada pois ajuda ao
leitor melhor visualizar os ambientes de grids computacionais e
também demonstra a preocupação de uma padronização de todos
aqueles envolvidos com esta nova abordagem tecnológica.
INTERNET
que
Aplicação – esta camada compreende as aplicações dos
usuários que operam no ambiente da organização
virtual. Os níveis anteriores provêem serviços úteis às
aplicações desenvolvidas que as invocam.
Uma outra arquitetura de modelo grid é apresenta na literatura
sobre o assunto na forma de quatro camadas. Na figura 5 (b)
ilustramos o modelo que deve ser compreendido da seguinte
maneira:
•
ambientes de armazenamento, redes e outros elementos)
participem em um ambiente de grid unificado. A
camada pode ser caracterizada pela sua inteligência,
trazida aos vários elementos unidos através de software
e domínio. Diversos protocolos e funções diferentes
devem existir na camada de middleware para o suporte
dos elementos heterogêneos de uma configuração de
grid. Exemplos de heterogeneidade são os diferentes
sistemas operacionais, sistemas de arquivos e
protocolos de comunicação entre redes.
Aplicação e Serviços - Os pacotes de software de
aplicação e serviços definem a camada mais alta de um
modelo de grid computacional. Neste nível devemos
incluir, também, os conjuntos de ferramentas de
desenvolvimento. Milhares de aplicações diferentes
compõem este nível, uma vez que variam de indústria
para indústria dependendo do problema do negócio fim
da organização. A porção de serviço deve prover
diversas funções de gerenciamento, incluindo
faturamento, contabilidade e medidas de métricas
utilizáveis – todos parâmetros importantes para o uso
virtual dos recursos compartilhados entre diferentes
usuários, departamentos e empresas.
Middleware – esta camada dever fornecer protocolos
que permitam que múltiplos elementos (servidores,
Aplicação
Aplicação
Coletivo
Recurso
Transporte
Conectividade
Ambiente
Internet
Enlace
Figura 6. Equivalência funcional entre os modelos da Internet
e do Grid
Os esforços de padronização da tecnologia de grid já ocorrem a
alguns anos, todavia nos últimos anos estes esforços começaram a
tomar um vulto maior devido ao uso da tecnologia por inúmeras
878
879
Grids Computacionais Fundamentos, Ambientes e Experiências
organizações. Exemplos de esforços no sentido de padronização
do ambiente de grid são:
•
Fórum Global do Grid (Global Grid Fórum
[Global 2003]): esta organização, composta por
uma comunidade de milhares de pesquisadores e
por diversos profissionais com larga experiência
em sistemas distribuídos, tem como objetivo
promover e prover suporte ao desenvolvimento,
utilização e implementação de tecnologias e
aplicações de grids. As recomendações são criadas
e documentadas a partir das melhores práticas
técnicas, experiência de usuários e guias de
implementação. Membros do GGF incluem
Hewlett-Packard, IBM, Intel, Microsoft, Silicon
Graphics e Sun dentre diversos outros membros.
III– Ambientes
Considerado o primeiro esforço em grande escala de um
ambiente de grid, a pesquisa empírica realizada no projeto I-WAY
[Iwa03], conhecido também como Internet do Futuro, revelou a
existência de cinco classes de aplicações usando um específico
paradigma computacional.
Desta forma, é comum a classificação das aplicações segundo um
paradigma de uso de computadores como apresentamos a seguir:
•
Supercomputação Distribuída: aplicações que
utilizam esta abordagem podem ser caracterizadas pelo
fato de que não é possível sua resolução em um único
sistema computacional. O ambiente de agregação de
computadores que estamos nos referindo pode ser
representado por todos os supercomputadores de um
país, por exemplo, ou por todos os computadores de
uma empresa. Na literatura técnica da área de grid, são
citados como clássicos os exemplos das abordagens
conhecidas como DIS (Distributed Interactive
Simulation), previsão de tempo e cosmologia. O DIS é
uma técnica de simulação empregada para modelar o
movimento e características de centenas (ou até
milhares) de entidades. Esta técnica usualmente é
utilizada para planejamento militar e ensino.
•
Computação de Alto-Desempenho: O objetivo maior
desse paradigma é resolver aquelas aplicações que
solicitam uma transferência grande de dados. O
ambiente computacional é usado para escalonar uma
grande quantidade de tarefas fracamente acopladas
(distribuídas) para a melhoria de utilização dos
computadores que possuem uma carga baixa de
utilização. São conhecidos vários exemplos, que estão
sob esta abordagem. Clássicas experiências são o
Condor High-Throughput e o LSF. O primeiro ambiente
de software, desenvolvido na Universidade de
Wisconsin, é empregado para o gerenciamento de
trabalho de um conjunto de centenas de máquinas em
diferentes laboratórios e outros conjuntos de máquinas
espalhadas pelo mundo. No caso do LSF (Load Share
Facility) da empresa Platform, é relatado o caso da
fabricante de microprocessadores AMD que utilizou
todas as máquinas de seus engenheiros que não estavam
sendo usadas em um determinado período, durante o
desenvolvimento dos seus processadores K6 e K7.
•
Computação Sob-Demanda: aplicações que se
enquadram nesta classe podem ser compreendidas como
aquelas que requerem o uso intensivo de recursos
computacionais que não estão disponíveis a nível local.
Os recursos computacionais devem ser entendidos com
pacotes de software, dados, arquivos e poder
computacional para obtenção de seus resultados
experimentais. A diferença básica para as aplicações
classificadas como supercomputação distribuída é
referente ao custo do desempenho. As aplicações sobdemanda utilizam os recursos de maneira colaborativa,
apenas empregam recursos que podem solicitar de forma
distribuída para melhoria de performance uma vez que
os recursos não existem localmente. Por outro lado, as
aplicações
conhecidas
como
supercomputação
Um outro aspecto interessante quanto ao trabalho do GGF diz
respeito ao entendimento da organização quanto a um grid
computacional. A organização faz a leitura de um grid
computacional como sendo aquele ambiente de computação
geograficamente distribuída que prove o alicerce para
inúmeros esforços de utilização global da Internet para a
construção de infraestruturas de computação distribuída e
comunicação. Desta forma, interoperabilidade de seus
componentes (software e hardware) deve ser um serviço
comum na configuração de um grid.
•
Projeto Globus [Globlus 03]: este projeto de
pesquisa tem como foco o desenvolvimento de
tecnologias fundamentais que são necessárias para
a construção dos grids computacionais. O projeto é
dividido em quatro atividades principais:
aplicações, pesquisas, ferramentas de software e
testes.
O
ambiente
globus
auxilia
o
desenvolvimento da tecnologia de grid através de
um conjunto de ferramentas abertas denominadas
de Globus Toolkit. O desenvolvido dessas
ferramentas
iniciou-se
pelo
esforço
dos
pesquisadores Ian Foster (University of Chicago) e
Carl Kesselman (University of Southern
California). Estes pesquisadores propuseram que o
conjunto de serviços do ambiente fosse
desenvolvido com o objetivo de que as aplicações
pudessem se utilizar dos serviços de grid sem a
necessidade de uma adaptação a um modelo
particular de programação. Alguns exemplos de
serviços do conjunto de ferramenta são a alocação
de recursos e gerenciamento de processos, os
serviços de comunicação, autenticação e segurança,
o acesso distribuído à informação de estrutura do
grid. Em adição, o estado dos processos, o acesso
remoto a dados e o monitoramento do sistema
(usando o elemento heart beat monitor) são ainda
aspectos importantes no ambiente.
Segundo este grupo, os grids podem ser entendidos como
ambientes onde aplicativos de software permitem a integração de
instrumentos,
dispositivos
de
visualização,
recursos
computacionais e de informação que são gerenciados por diversas
organizações dispersas geograficamente.
879
880
Dantas
distribuída dispõem de todos os recursos para seu
melhor desempenho.
•
•
Computação para Grande Quantidade de Dados: as
aplicações e o paradigma computacional nesta classe são
caracterizados pelo processamento de enorme
quantidade de dados distribuídos geograficamente.
Conhecidos exemplos são bibliotecas digitais e os
bancos de dados distribuídos. Podemos ainda citar o
caso do projeto Digital Sky Survey (ou pesquisa digital
do espaço).
encontrarmos na literatura acadêmica e comercial sobre o assunto
a seguinte classificação dos grids:
-
Nacional: o objetivo do grupo de usuários desse
ambiente é servir como um recurso computacional
estratégico e servir como uma ponte para as facilidades
de compartilhamento de um país.
-
Privado: este grupo é caracterizado pela utilização dos
recursos para a obtenção de resultados econômicos
diferenciais quando da utilização de inúmeros recursos
dispersos geograficamente. Exemplos de organizações
que formam ambientes privados de grid são empresas de
alta tecnologia na área de biotecnologia, naval,
aeroespacial além de empresas de investimento, de
previdência privada e outras organizações que
necessitam a execução de aplicações que requerem um
grande poder computacional ou grande quantidade de
dados. É comum encontrarmos a denominação para este
grupo de grid econômico.
-
Virtual: os grids virtuais na sua maioria são formados
por pesquisadores e cientistas que necessitam da
utilização de recursos computacionais, equipamentos
com alto custo e fazem sua disponibilização através de
troca de uso.
-
Público: este grupo é caracterizado por aqueles que suas
principais atividades incluem serviços que requeiram
uma grande quantidade de poder computacional.
Computação Colaborativa: a maior característica das
aplicações classificadas sob esta denominação é sua
orientação a melhoria do desenvolvimento das relações
humanas. Aplicações e recursos computacionais podem
ser compartilhados sem uma tarifa relacionada ao uso. O
projeto
NICE
(www.evl.uic.edu/tile/NICE/NICE/intro.html) é um
exemplo de ambiente de ensino colaborativo onde
crianças podem aprender conceitos sobre a natureza sem
estarem fisicamente próximas a mesma.
IV– Usuários
Um outro fator importante em qualquer nova tecnologia
é entender quais são os seus potenciais usuários, tanto pessoas
quanto organizações. Na utilização dos grids computacionais,
também, existe uma preocupação de compreensão em quem são
seus potenciais clientes. Assim, nesta seção vamos explorar esta
forma de melhor entender quem são os usuários da configuração
de grid.
Alguns questionamentos são importantes para que
possamos visualizar os grids e outros ambientes. Vale a pena
recordar que num passado não muito distante, digamos vinte anos,
era difícil de acreditar que seria possível disponibilizar toda a
informação que existe hoje na Internet. Desta forma, é comum
fazermos uma reflexão em um sentido idêntico para
compreendermos quais as organizações e usuários estariam se
beneficiando dos ambientes de grid.
Podemos levantar dois questionamentos para que possamos
entender melhor os grids, estes:
-
Quais as entidades que estariam interessadas em investir
em infraestrutura para a formação dos grids
computacionais?
-
Qual o grau de compartilhamento de recursos que
devemos imaginar que cada organização espera deste
ambiente?
V– Experiências
Quando um grid computacional é projetado, o mesmo deve
obedecer a um conjunto de requisitos para o atendimento das
aplicações de seus clientes. Este fato deve ser enfatizado, pois as
configurações de grid visam a melhoria de aplicações de uma
forma diferenciada e não de uma forma genérica.
Podemos traçar uma analogia entre a antiga forma de
trabalhar da Internet, (conhecida como melhor esforço) e sua
atual abordagem, a denominada Qualidade de Serviço (QoS).
Atualmente, todos aqueles envolvidos com o desenvolvimento de
aplicações na Internet entendem que as aplicações devem ter um
tratamento diferenciado segundo suas características. Em outras
palavras, a simples troca de uma mensagem eletrônica deve dispor
de menos largura de banda e retardo do que uma aplicação de
vídeo conferência. Desta forma, é importante que o leitor entenda
que existem diferentes experiências na utilização dos grids
computacionais. Vamos nesta seção apresentar alguns estudos de
casos e na seção de referência recomendada apontamos para uma
série de leituras de outras iniciativas.
Grids de Dados
As respostas para as duas perguntas anteriores são
pautadas pelos parâmetros de custo e benefício de
compartilhamento de recursos. Estes dois parâmetros nos ajudam
a uma classificação de comunidades de usuários de grid. É comum
•
•
•
•
Virtual Laboratory: Tools for Data Intensive
Science on Grid
EU DataGrid
DIDC Data Grid work
880
881
Grids Computacionais Fundamentos, Ambientes e Experiências
•
•
•
•
GriPhyN (Grid Physics Network)
HEPGrid (High Energy Physics
Networks)
Particle Physics Data Grid (PPDG)
Datacentric Grid
VI– Leitura Recomendada
and
Grid
Sistemas de Grid
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Compute Power Market
Global Operating Systems
XtremWeb
JAVELIN: Java-Based Global Computing
MILAN: Metacomputing In Large Asynchronous
Networks
Harness Parallel Virtual Machine Project
Management System for Heterogeneous Networks
PUNCH - Network Computing Hub
MOBIDICK
MetaNEOS
Amica
MultiCluster
Poland Metacomputing
Echelon: Agent Based Grid Computing
Bayanihan
NeuroGrid
GridLab
DAMIEN
CrossGrid
DIET
Sistemas de Grids Privados
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
GRACE: GRid Architecture for Computational
Economy
Compute Power Market (CPM)
G-Commerce
Mariposa: A New Approach to Distributed Data
The Information Economy
FORTH Information Economies
Share Meta
D'Agent
Program for Research on the Information Economy
Xenoservers - Accountable Execution of Untrusted
Programs
Electricity Trading Over the Internet Begins in Six New
England States
POPCORN
CSAR: Resource Tokens and Trading Pool
OCEAN - The Open Computation Exchange &
Arbitration Network
Spawn: A Distributed Computational Economy
Market-Based Computing
Multiagent systems
Todas as informações das iniciativas de grid computacionais
apresentadas acima podem ser facilmente encontradas na Internet
através de um pacote de localização como o Google.
V– Experiências
Com o objetivo de fornecer ao leitor mais fonte de
consulta sobre o assunto, nesta seção apresentamos algumas
sugestões de leituras adicionais.
Conforme cometamos anteriormente a organização GGF
[Global 2003] e os projetos Globus [Globus 2003] e Legion
[Legion 2003] são leituras iniciais indispensáveis para aqueles que
desejam se aprofundar no estado-da-arte da tecnologia de Grid.
Por outro lado, a leitura de [Foster 1999], [Dantas 2002b] e [Hey
2003] pode ajudar ao leitor no embasamento mais detalhado das
configurações dos grids de uma maneira mais formal. Os
ambientes comerciais podem ser observados em [Grimshaw
2003]. Algumas referências que são apresentas abaixo e não
utilizadas ao longo do texto, também, podem representar uma boa
indicação de leitura adicional [Czajkowski 1998, Bester 1997,
Brunett 1998, Buyya 2001].
Referências Bibliográficas
Baker, M., Cluster Computing Trends, Physics Seminar,
Liverpool University,
http://www.dcs.port.ac.uk/~mab/Talks/Liverpool00/, May 2000.
Baker, M., Technologies for MultiCluster/Grid Computer, Cluster
2001, Newport Beach, http://www.dcs.port.ac.uk/~mab/Tutorials/
Los Angeles, EUA, 2001.
Batheja, Jyoti, Parashar, M. A Framework for Opportunistic
Cluster Computing using Javaspaces, Lecture Notes in Computer
Science, HPCN Europe , pp 647-656, 2001.
Bester, J., Foster, I., Kesselman, C., Tedesco, J., and Tuecke, S.,
Gass: A Data Movement and Access Service for Wide Area
Computing System, In 7 (1997),
ftp://ftp.globus.org/pub/globus/papers/gass.pdf.
Brunett, S., Czajkowski, K., Foster, I., Fitzgerald, S., Johnson, A.,
Kesselman, C., Leigh, J., and Tuecke, S., Application Experiences
with the Globus Toolkit., In Proc. 7th IEEE Symp. on High
Performance Distributed Computing (July 1998), IEEE Computer
Society Press, ftp://ftp.globus.org/pub/globus/papers/globusapps.pdf.
Buyya, R. e Baker, M., Emerging Technologies for
MultiCluster/Grid Computing,
www.cacr.caltech.edu/cluster2001/program/abstracts/buyya.html,
2001.
Czajkowski, K., Foster, I., Karonis, N., Kesselman, C., Martin, S.,
Smith, W., and Tuecke, S, A Resource Management Architecture
for Metacomputing Systems., In The 4th Workshop on Job
Scheduling Strategies for Parallel Processing (Mar. 1998), IEEEP, pp. 4-18,ftp://ftp.globus.org/pub/globus/papers/gram97.pdf.
Dantas, M. A. R. and E.J. Zaluska, Efficient Scheduling of MPI
Applications on Networks of Workstations, FGCS Journal, V 13,
pp. 489-499, 1998.
881
882
Dantas
Dantas, M.A.R,J.G.C Lopes, T.G. Ramos, An Enhanced
Scheduling Approach in a Distributed Parallel Environment
using Mobile Agents, In Proc. 16th Annual International
Symposium on High-Performance Computing and Systems,
Moncton, Canada,IEEE Computer Society Press, 2002.
Hey, Tony, Fran Berman, Geoffrey Fox (Eds), Grid Computing:
Making The Global Infrastructure a Reality , John Wiley &
Sons, 2003, ISBN: 0470853190.
Dantas, Mario; Tecnologias de Redes de Comunicação e
Computadores, Axcel Books, 2002, ISBN 85-7323169-6.
FOSTER, Ian; KESSELMAN, Carl (Eds.). The Grid: Blueprint for
a New Computing Infrastructure. San Francisco, CA,
USA: Morgan Kaufmann Publishers, 1999. 677p. ISBN 155860-475-8.
Global Grid Fórum , http://www.gridforum.org, 2003
GloBlus, The Globus Project, Globus Toolkit 1.1.3 Sytem
Administration Guide, University of Shouthern
California, http://www.globus.org, December 2000.
Globus, The Globus Project, http://www.globus.org, 2003
Grimshaw, A., Ferrari, A., Knabe, F., Humprey, M.; Legion: An
Operating System for Wide-Area Computing,
http://www.ece.cmu.edu, 1999.
Geist, A. B. Al, Jack Dongarra and V. Sunderam, PVM : User's
Guide and Reference Manual (Version 3.3).Oak Ridge, USA: Oak
Ridge National Laboratory Technical Report ORNL/TM-12187,
May 1994.
Grid
Computing,
http://www.gridcomputing.com
IBM Corporation, IBM LoadLever : User's Guide. Kingston,
NY: IBM, September 1993.
I- WAY Project, http://www.iway.org
Fleish, N. J. B., R. Hyde, Mirage+: a kernel implementation of
distributed shared memory on a network of workstations,"
Software: Practice and Experience, pp.1-21, March 1994.
Legion,
University
of
Virginia,
http://legion.virginia.edu, 2003
Legion
Project,
Michael, M. L., J. Litzkow and M. W. Mutka, Condor A Hunter of
Idle Workstations," Proceedings of IEEE 8th International
Conference on Distributed Computing Systems, pp. 104-111,
1988.
MPI-Forum, MPI: A Message-Passing Interface Standard,"
International Journal of Supercomputer Application, vol. 8, no. 34, 1994.
882
Download

Grids Computacionais Fundamentos, Ambientes e