Professional Documents
Culture Documents
1
1.Índice
1.Introdução................................................................................................................................................4
1.1. Computação Paralela.....................................................................................................................4
1.2. Computação Distribuída.................................................................................................................4
1.2.1. Computação Distribuída: Arquitetura............................................................................................4
1.3.Um Pouco de História......................................................................................................................5
1.4. Conceitos........................................................................................................................................5
1.5. Arquitetura......................................................................................................................................6
1.6. Utilização........................................................................................................................................7
1.7. Grid x Cluster..................................................................................................................................8
1.8. Grid x Peer To Peer (P2P).............................................................................................................9
1.9. Grid x Supercomputadores.............................................................................................................9
1.10. Exemplos de Grids.......................................................................................................................9
2.Global Grid Forum...................................................................................................................................9
3.Globus Alliance........................................................................................................................................9
4.Globus Toolkit........................................................................................................................................10
4.1.Arquitetura.....................................................................................................................................10
4.1.1.Common Runtime.......................................................................................................................11
4.1.1.1.Bibliotecas Comuns C.............................................................................................................11
4.1.1.2.C Web Services Core..............................................................................................................11
4.1.1.3.Java WS Core...........................................................................................................................12
4.1.1.4.Globus XIO – eXtensible Input Output......................................................................................12
4.1.2.Camada de Segurança...............................................................................................................12
4.1.2.1.CAS..........................................................................................................................................12
4.1.2.2.Serviço de Delegação...............................................................................................................12
4.1.3.Camada de Gerenciamento de Dados.........................................................................................12
4.1.3.1.GridFTP....................................................................................................................................12
4.1.3.2.RFT Public Interface.................................................................................................................13
4.1.3.3.RLS Public Interface.................................................................................................................13
4.1.4.Camada de Gerenciamento de Execução.................................................................................13
4.1.5.Informações de Serviços............................................................................................................13
4.1.5.1.WS MDS...................................................................................................................................13
5.BOINC.......................................................................................................................................... ....14
6.Conclusão..............................................................................................................................................14
7.1.Autorização para uso de imagens.................................................................................................15
8.Referências Bibliográficas.....................................................................................................................16
2
Resumo
Abstract
3
1. Introdução 1.2. Computação Distribuída
4
executada no servidor, podendo o atualmente.
servidor atender 1 ou mais clientes
Adiciolnamente, é interessante notar que,
simultaneamente. Ex.: servidor ftp e
em geral, um computador atual é tão potente
cliente ftp.
quanto um gigantesco supercomputador de uma
• 3-Camadas: arquitetura semelhante à década atrás, tornando o conceito de meta
cliente/servidor, entretanto à lógica computação ultrapassado.
específica da aplicação é executada
em um agente intermediário.
• Peer To Peer: arquitetura na qual não
existe um agente responsável por 1.4. Conceitos
gerenciar ou prover recursos. Neste
caso estas responsabilidades são
divididas entre todos os agentes da Assim como nos clusters, muito do poder
rede. computacional de um Grid está dívido em
diversas máquinas (também chamadas de
Entretanto, essas 3 arquiteturas não são membros). Desta forma é possível assegurar que
as únicas existentes, embora sejam as mais o trabalho de um sistema Grid não está
importantes e conhecidas. Para a completude do relacionado apenas ao processamento de dados,
artigo é conveniente citar, também, a existência mas também ao gerenciamento dos recursos
das seguintes arquiteturas: n-camadas, orientada alocados ao sistema. Por fim, isto torna possível
à serviço, código móvel, repositório replicável, etc. dividir o funcionamento básico de um Grid em
camadas: camada de rede, camada de recursos,
middleware, aplicação e serviços.
5
Ainda, o CERN[9], define 5 conceitos recurso.
básicos para a definição de um cluster:
• Compartilhamento de recursos: refere-se
ao compartilhamento de recursos
computacionais.
6
possível citar: mantém atualizado o
diretório de recursos disponíveis, negocia
a utilização, envio e processamento de
dados, monitora e diagnostica problemas
no grid, provê fácil acessibilidade a dados
críticos através da sua replicação, provê
• Aplicação e Serviços: aplicações políticas de acesso ao grid.
(científicas, econômicas, de engenharia,
etc) que rodam no grid, ferramentas de • Aplicação: aplicações que rodam no grid.
desenvolvimento, portais, etc. É a responsável por obter as credenciais
de segurança necessárias para obtenção
dos dados, negocia a obtenção de dados
Entre os experts em grids, porém, não é com a camada de serviços coletivos,
incomum encontrar os grids definidos conforme a monitorar o progresso das requisições,
sua estrutura física (hardware, redes, aplicação processamento e transferências de
etc). Embora um pouco mais complicada de ser dados.
entendida por pessoas com pouca ou nenhuma
experiência com tecnologia em geral, esta fornece
uma visão ainda mais clara sobre as n-camadas Por fim, é interessante notar que ambas
que compôem um Grid. Esta definição pode ser as definições das camadas de um grid tratam a
melhor entendida no gráfico abaixo: camada de aplicação como a camada mais alta e
visível pelo usuário.
1.6. Utilização
7
• de acordo com o seu grau de paralelismo, de múltiplos nós interconectados que trabalham
isto é, de acordo com a quantidade de cooperativamente juntos como um único recurso.
pequenas operações que podem ocorrer Ao contrário dos Grids, os recursos de um
simultaneamente. clusters são pertencentes a uma única
organização e eles são gerenciamentos por um
• de acordo com a sua granularidade, ou
recurso de gerenciamento e escalonamento
seja, de acordo com a inter-dependência
centralizado. Isto significa que os usuários de um
do resultado de pequenas operações em
cluster tem que passar por um sistema
curso, variáveis armazenadas no sistema.
centralizado que gerencia a alocação de recursos
Este ainda se subdivide em “fine-grained”
para os trabalhos das aplicações).
e “coarse-grained” (também conhecidos
como “embarassingly parallel”). Através dessa definição de Buya fica
Grosseiramente falando, problemas bastante claro afirmar quais são os pontos
puramente “fine-grained” se saem melhor chaves nos quais os clusters se diferem dos grids
em grandes, monolíticos
• os clusters são fisicamente
supercomputadores ao passo que
centralizados, isto é, o membros (nós)
“coarse-grained” se saem melhor em
de um cluster encontram-se dispersos
grids.
sobre uma mesma área física (um
prédio, sala, datacenter, etc).
Problemas destacados como “fine- • os recursos (poder de
grained” são também identificados como sendo processamento, memória, etc) de um
do tipo “high performance computing” e os cluster são administrados pela
“coarse-grained” como “high throughput organização responsável pelo cluster.
computing”. É interessante notar, entretanto, que Em um Grid, a administração deste
muitos dos problemas existentes são uma mistura recurso cabe a cada um dos
de ambos os tipos. responsáveis pelos nós do Grid.
Em geral, estes problemas caracterizam-
se por serem grandes demais para serem
Além disso, segundo a definição de
processados por um único cluster ou
cluster utilizada por Buya, bem como o que foi
supercomputador. De certa forma, neste tipo de
estudado anteriormente, é fácil compreender
problema é possível obter uma vazão de dados e
alguns dos outros aspectos que definem a
processamento muito maior através da utilização
diferença entre ambos:
de um sistema em Grid do que utilizando um
supercomputador de capacidade de • os grids, devido a sua estrutura
processamento semelhante. 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
1.7. Grid x Cluster processamento, memória, disco, etc
dos membros de um grid é muito
maior do que aquela encontrada nos
Uma das controvérsias existentes em membros de um cluster (aonde o que
torno dos sistemas em Grid, deve-se ao fato se deseja geralmente é o contrário,
destes serem comumente confundidos com caso contrário, poderia configurar-se
clusters. como um gargalo).
Porém, antes de definir as diferenças • os membros (nós) de um grid não
entre um cluster e um Grid é preciso conhecer a precisam estar permanentemente
definição de um cluster e como este trabalha. A inter-conectados.
definição de Buya[1] para cluster é a que segue: • clusters tendem a serem utilizados
“A cluster is made up of multiple interconnected para solução de problemas lineares,
nodes that co-operatively work together as a ao passo que Grids devem ser
single unified resource. Unlike Grids, clusters utilizados para sistemas capazes de
resources are owned by a single organization and serem processados em paralelo.
they are managed by a centralized resource
management and scheduling system. That means Por fim, é importante ressaltar que é
that all users of a cluster have to go through a possível criar grids utilizando clusters como
centralized system that manages allocation of membros, entretanto o contrário não é possível.
resources to application jobs.” (trad.: um conjunto
8
Hadrons). Obs.: Hadron é uma
partícula sub-atômica de grande força
nuclear.
1.8. Grid x Peer To Peer (P2P)
• Climaprection.net: visa melhorar a
previsão do clima à longo prazo.
Dada sua natureza também • Predictor@home: utilizado para
descentralizada, não seria de se admirar que prever a estrutura de uma proteína a
alguém se perguntasse quais as diferenças e partir de uma seqüência protéica.
semelhanças entre um grid e uma rede p2p.
Segundo Ledlie[3] em seu artigo “Scooped
Again”, tanto sistemas peer to peer quanto
sistemas em Grid compartilham de um conjunto 2. Global Grid Forum
de problemas em comum.
É importante notar, porém, que peer to
peer diz respeito à infra-estrutura e design de O Global Grid Forum (GGF) é uma
uma rede. Portanto é possível afirmar que peer to entidade que reúne usuários, empresas e
peer diz respeito à infra-estrura de acesso, desenvolvedores de Grids no mundo todo. Entre
compartilhamento e busca de informações, ao alguns dos membros do GGF é importante citar:
passo que Grid diz respeito ao acesso e Nasa, IBM, Intel, Microsoft, Oracle, Cisco,
compartilhamento de recursos computacionais. Novartis, etc. É interessante notar que entre os
membros do GCF não encontram-se apenas
empresas de tecnologia, como é o caso da já
citada Novartis, que atua na industria
farmaceutica.
1.9. Grid x Supercomputadores
O principal trabalho do GGF consiste em
definir padrões, políticas e boas práticas
Supercomputador é um termo, de uso relacionadas ao desenvolvimento de grids,
amplo, utilizado para definir recursos criando também, uma comunidade internacional
computacionais de altíssimo desempenho. de troca de idéias, experiências e requerimentos
Idependente da sua estrutura física e lógica, este relacionados à computação em grid.
termo é utilizado para definir recursos
O GGF é a entidade que produz o GGF
computacionais como: clusters, grids, etc.
Document Series, uma série de documentos que
Supercomutadores, do ponto de vista de definem os padrões de funcionamento (por
uma estrutura física e computacional única, exemplo, autenticação, comunicação,
também podem fazer parte de um Grid. transmissão de dados, etc) de um grid. É
baseado nestes padrões que a Globus Alliance
desenvolveu o Globus Toolkit.
3. Globus Alliance
Finalizando a introdução sobre Grids, é
interessante exemplificar a sua utilização atual, de
modo a poder avaliar um pouco da sua aplicação A Globus Alliance é uma comunidade
prática. Como exemplo de sistemas em Grid, internacional cujo objetivo é pesquisar e
podem ser citados: desenvolver as tecnologias fundamentais para o
• Seti@home: Search for Extra- desenvolvimento e implantação de um grid. Entre
Terrestrial Intelligence (Busca por os participantes membros to “core team” do
Inteligência Extra-Terrestre). Este projeto encontram-se: o Laboratório Nacional
projeto é utilizado para analisar os Argonne da Universidade de Chicago,
dados recebidos pelo rádio-telescópio Universidade de Endinburgo (EPCC), Centro
Arecibo, localizado em Arecibo – Nacional de Aplicações de Supercomputadores
Porto Rico. (NCSA), Laboratório de Computação de Alta
Performance da Universidade do Norte de Illinois,
• LHC@home: utilizado para melhorar o Instituto Real de Tecnologia da Suécia,
acelerador de partículas LHC (Large Corporação Univa e o Instituto de Informações da
Hadron* Collider – Grande Colisor de Universidade do Sul da California. Além destes
9
participantes, inúmeras outras universidades ao Assim como acontece em um grande
redor do mundo contribuem para o projeto. número de projetos OpenSource, o GT conta com
uma vasta gama de canais de fornecimento de
Membros da Globus Alliance participam
suporte, contando com chats, listas de
em uma grande variedade de projetos de
discussões e workshops para treinamento e
computação em Grid, nas mais diversas áreas:
suporte.
astronomia, química, engenharia civil,
meteorologia, geologia, medicina, etc.
A grande contribuição da Globus Alliance
para a pesquisa e desenvolvimento de grids 4.1.Arquitetura
chama-se Globus Toolkit, que é um conjunto de
bibliotecas e programas utilizados no
desenvolvimento e implantação de Grids. O GT4, como mencionado anteriormente,
é um conjunto de ferramentas (aplicativos e
bibliotecas) para desenvolvimento de sistemas
distribuídos.
4. Globus Toolkit De modo geral, o GT4 é estruturalmente
dividido em:
O Globus Toolkit, também conhecido • camada de segurança
como GT4, onde 4 refere-se a sua versão, é um • camada de gerenciamento de dados
dos mais famosos e usados conjuntos de
ferramentas para desenvolvimento e • camada de gerenciamento de execução
implementação de Grids. O GT é um projeto de • informações de serviços
código-fonte aberto/livre iniciado por volta de
1998 pela Globus Alliance e é inteiramente • common runtime (sistemas de execução
desenvolvido implementando padrões abertos. comuns)
O GT permite que se compartilhe, com
segurança através de uma rede, banco de dados,
poder de processamento e muito mais.
O GT4 provê ferramentas e meios para
gerenciamento de recursos, segurança, infra-
estrutura, portabilidade, tolerância a falhas e
muito mais, ao mesmo tempo respeitando a
singularidade de cada entidade que possa vir a
utiliza-lo.
Muitas entidades, empresas e
universidades ao redor do mudo são usuários do
Globus Toolkit, entre elas podemos citar:
• Centro de Terremotos do Sul da
California, o qual utiliza o GT para
visualização de dados simulação de de
terremotos. Estas simulações cobrem
uma vasta área e utilizam-se de gráficos
de alta-resolução, podendo cada
simulação, chegar a 40TeraBytes de
dados.
10
4.1.1.Common Runtime diversas outras linguagens, como Fortran, C++,
Pascal e muitas outras.
O C WS Core é incluí:
O Common Runtime é um conjunto de
bibliotecas e ferramentas cujos objetivos são • Um container para serviços
prover um conjunto de serviços Web e pré-web • Uma interface de programação de
independente de plataforma, permitir a construção aplicações (API, Application
e o desenvolvimento desses serviços em Programming Interface, em inglês)
múltiplas camadas e aumentar a funcionalidade plugável para serviços.
nas camadas mais baixas da pilha de serviços.
• Uma API para gerenciamento de
O Common Runtime implementa uma recursos
enorme quantidade de protocolos padrão web,
entre os quais é importante citar: XML (eXtensible • Uma API para gerenciamento de
Markup Language), SOAP (Simple Object Access clientes notificadores
Protocol), WSDSL (Web Services Description • Bindings (ligadores) geradores de
Language), TLS (Transport Layer Security), WSDL para C.
X.509, HTTP (HyperText Transfer Protocol),
SMTP (Simple Mail Transfer Protocol) e muitos • Serviços de apoio e suporte a
outros. segurança.
11
O Java WS Core é divido em duas partes Através da utilização de uma estrutura de
o serviço e o recurso. O serviço é responsável por chaves público-privadas, permite a delegação de
executar a lógica de negócios no recurso, sendo credenciais utilizadas para acessar recursos
que o recurso representa um estado gerenciável. no/do grid.
O Java WS Core implementa os padrões
WSRF e WSN (Web Services Notification).
4.1.3.Camada de Gerenciamento de
Dados
4.1.1.4.Globus XIO – eXtensible
Input Output
A Camada de Gerenciamento de Dados é
a responsável por armazenar, transferir e
gerenciar os dados distribuídos. Ele é constituído
O Globus XIO é a biblioteca de entrada e
de 3 ferramentas principais: GridFTP, Reliable
saída do Globus, e através da qual conexões são
File Transfer Service (RFT service, serviço de
abertas e fechadas.
transferência confiável) e Replica Location
Implementada na linguagem C e definida Service (RLS, serviço de localização de réplicas).
através da utilização de funções de callback, ela
torna possível a utilização de um modelo de
programação assíncrono baseado em eventos.
4.1.3.1.GridFTP
Esta biblioteca permite, entre outras
coisas , que usuários definam “drivers” através O GridFTP é um das
dos quais os dados enviados pelos usuários ferramentas/biblioteca utilizadas pelo Globus
poderão passar, servindo de propósito específico Toolkit para implementar transferência de
à aplicação. arquivos de maneira eficiente.
O GridFTP suporta não apenas o
protocolo FTP tradicional, mas também algumas
extensões cuja finalidade é deixa-lo mais seguro.
4.1.2.Camada de Segurança Além disso permite a inclusão de plugins cujo
objetivo é aumentar a funcionalidade e a
tolerância a falhas do conjunto.
Esta é a camada responsável pela
autorização e autenticação dentro do Globus Por fim, é importante notar que o GridFTP
Toolkit. Ela é subdividada em duas partes é um protocolo padrão, conforme definido pelo
menores: CAS (Central Authentication Service – Global GridForum em conjunto com uma série de
Serviço Central de Autenticação) e Delegation RFCs (Requests For Comments) da IETF
Service (Serviço de Delegação). (Internet Engineering Task Force).
Embora o GridFTP com toda sua
simplicidade seja uma ferramenta poderosa, em
muitos casos ele não é um serviço eficiente para
4.1.2.1.CAS transferência de dados, além de contar com
algumas pontos negativos que podem ser de
extrema importância em alguns casos. Como
É o responsável por gerenciar as políticas falhas do GridFTP pode-se citar o fato de ele
de acesso em uma VO (Virtual Organization – mantém um socket permanentemente aberto com
Organização Virtual). o servidor durante a transferência de dados o que
As políticas de acesso são armazenadas acaba se tornando um empecilho durante longas
em um banco de dados, que é acessador através transferências de dados. Outro detalhe a ser
de uma interface de administração. lembrado a respeito do GridFTP é que este não é
um WSP.
12
Visando atender as deficiências 4.1.5.Informações de Serviços
existentes no GridFTP, o RFT é um serviço que
implementa o padrão WSP, além de ser
concordante com o WSRF. É a camada responsável por, entre outras
No caso do Globus Toolkit, o RFT é coisas monitoração e descobrimento de sistemas
disponibilizado através de classes em Java, e recursos disponíveis no Grid. No Globus Toolkit
entretanto, segundo a documentação oficial é composto pelos WS MDS e Pre WS MDS.
disponível no site, este ainda encontra-se em
processo de melhoramento. 4.1.5.1.WS MDS
Adicionalmente é interessante notar que o
serviço RFT e implementado tendo o GridFTP
como base. O WS MDS (Monitoring and Discovery
System) é o sistema cuja finalidade é permitir e
facilitar ao usuários a descoberta e monitoração
de recursos disponíveis em uma organização
4.1.3.3.RLS Public Interface virtual. No Globus Toolkit é composto pelos
seguintes componentes:
• Agregator Framework: utilizado para
O RLS é o serviço responsável por construir serviços de coleta e agregação
localizar as réplicas de dados nos dispositivos de de dados.
armazenamento físico que compõem o grid.
• Information Providers: uma fonte de
O RLS atua como um registro múltiplo, dados utilizada pelo serviço agregador.
mantendo informações sobre os arquivos em
diversos servidores, aumentando a • Index Service: um serviço de agregação e
disponibilidade dos dados e diminuindo os pontos indexação de dados.
de falha. • WebMDS: um front-end web para o Index
Service.
13
tolerância a falhas: suporta escalonadores
separados e conta com um algorítimo
inteligente para evitar que clientes
sobrecarreguem o servidor após um
down-time.
• Código-fonte disponível: distribuído sobre
a LGPL (Lesser General Public License),
permite, entre outras coisas, que seu
código fonte seja distribuído em conjunto
com software proprietário/fechado.
• Múltiplataforma: o BOINC funciona em
Linux, Windows, MacOS e outros
sistemas operacionais.
6. Conclusão
14
7.Anexos (the University of Chicago) do not have authority to give you
permission to use them.
For the two SCEC images (second and fourth), please contact
Marcus
Thiebaux <thiebaux@ISI.EDU>.
7.1.Autorização para uso de imagens I do not have a current contact for the CERN lead ion image, but
the
CERN publicity office
Algumas das imagens utilizadas neste (http://info.web.cern.ch/Press/ContactUs.html)
would be a place to start. (We obtained permission to use it at
artigo são de propriedade do CERN e foram least
gentilmente cedidas, sem qualquer custo, para two years ago.)
uso neste artigo através dos seguintes emails:
Thanks In Advance
Otavio R. Piske
Dear Otavio, please feel free to go ahead and use the images that
you need, just remember, please, to add somewhere close to
them "Courtesy of www.gridcafe.org"
Best Regards
Rosy
Thanks In Advance
--
Otavio R. Piske – AngusYoung
You may use the first image without any concern at all.
The last three images were obtained from our science partners
and we
15
8. Referências Bibliográficas http://setiweb.ssl.berkeley.edu/
5) LHC@home: http://athome.web.cern.ch
16