Grid Computing
-
Upload
jackie-costa -
Category
Documents
-
view
1.457 -
download
2
Transcript of Grid Computing
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
Sistemas de Informação
GRID COMPUTING:
CONCEITOS E APLICAÇÕES
Jaqueline Henrique Pereira Costa
Betim2006
JAQUELINE HENRIQUE PEREIRA COSTA
GRID COMPUTING:
CONCEITOS E APLICAÇÕES
Trabalho apresentado à disciplina Trabalho de Diplomação, do Curso de Sistemas de Informação da Pontifícia Universidade Católica de Minas Gerais.Campus: BetimOrientador: Caio Julio Martins Veloso
Betim2006
Jaqueline Henrique Pereira Costa
Grid Computing
Trabalho apresentado à disciplina de Trabalho de Diplomação, do Curso de Sistemas de
Informação da Pontifícia Universidade Católica de Minas Gerais,
Betim, 2006.
Caio Julio Martins Veloso (Orientador) – PUC Minas Betim
Sandro Laudares
Maria Inês Lage de Paula
A meus pais e minhas irmãs,
Pelo apoio, dedicação e carinho em todos os momentos.
"Se plantarmos para um ano, devemos plantar cereais.
Se plantarmos para uma década, devemos plantar árvores.
Se plantarmos para toda a vida, devemos treinar e educar o homem."
(Khantsu, século III a.c.)
RESUMO
Nosso objetivo é a apresentar os conceitos principais de Grid Computing, diferenciando esta
nova tecnologia de soluções anteriores, que de alguma forma contribuíram para sua
concepção e desenvolvimento, tendo em vista, as implicações presentes e futuras de estruturas
computacionais desenvolvidas sob esta concepção. E aplicação de um estudo de caso, como
uma ferramenta auxiliar na compreensão e exposição do tema abordado.
Palavras-chave: Grid Computing, Sistemas Distribuídos, Clusters, Middleware.
ABSTRACT
Our objective is to present the main concepts of the Grid Computing, being differentiated this
new technology of previous solutions, that of some form had contributed for its conception
and development, in view of, the future implications gifts and of developed computational
structures under this conception. And application of a case study, as a tool auxiliary in the
understanding and exposition of the boarded subject.
Word-key: Grid Computing, Distributed Systems, Clusters, Middleware.
LISTA DE ILUSTRAÇÕES
QUADRO 1 Diferença entre a abordagem adotada entre a Computação Filantrópica e os
Ambientes Empresariais...........................................................................................................20
QUADRO 2 Sistemas fortemente acoplados x Sistemas fracamente acoplados.....................30
QUADRO 3 Diferenças entre as configurações de cluster e grid.............................................47
QUADRO 4 Serviços e funcionalidades do Globus.................................................................63
GRÁFICO 1 Consumo de Memória.........................................................................................70
GRÁFICO 2 SpeedUP..............................................................................................................71
GRÁFICO 3 Velocidade de Execução.....................................................................................71
LISTA DE FIGURAS
FIGURA 1 Taxonomia para sistemas distribuídos e para os sistemas paralelos......................27
FIGURA 2 Configuração genérica de multiprocessadores.......................................................29
FIGURA 3 Configurações genéricas de multicomputadores....................................................29
FIGURA 4 Configuração clássica de uma arquitetura SMP.....................................................31
FIGURA 5 Configuração convencional de uma NUMA..........................................................34
FIGURA 6 Configuração convencional de uma ccNUMA......................................................35
FIGURA 7 Configuração genérica de uma MPP......................................................................37
FIGURA 8 Arquiteturas computacionais com múltiplos processadores..................................39
FIGURA 9 Cluster de máquinas multiprocessadas...................................................................44
FIGURA 10 Cluster dedicado...................................................................................................44
FIGURA 11 Cluster não-dedicado............................................................................................44
FIGURA 12 Modelo em Camada 1..........................................................................................56
FIGURA 13 Modelo em Camadas 2.........................................................................................56
LISTA DE TABELAS
TABELA 1 Consumo de Memória e Tempo de Execução.......................................................69
TABELA 2 Estimativa de Tempo de Execução.......................................................................69
LISTA DE SIGLAS
UFCG - Universidade Federal de Campina Grande
HP - HEWLETT-PACKARD LTDA
SETI - Search for Extraterrestrial Intelligence
TI – Tecnologia da Informação
PC – Personal Computer
MIT - Massachusetts Institute of Technology
IBM - IInternational Business Machines
LAN - Local Área Networks
MIPS - Milhões de Instruções por Segundo
GERPAV - Sistema de Gerenciamento da Pavimentação
SISD - Single Instruction Single Data
SIMD - Single Instruction Multiple Data
MISD - Multiple Instruction Single Data
MIMD - Multiple Instruction Multiple Data
ILLIAC - Illinois Automatic Computer
CM-2 – Connection Machine 2
INM - Intellipool Network Monitor
NUMA - Non-Uniform Memory Access
CC-NUMA - Cache Coherence Non-Uniform Memory Access
CRM - Customer Relationship Management
ERP – Enterprise Resource Planning
LISTA DE SIGLAS
AC - Assistente de Comunicação
T3D - Toro 3D bidireccional
SP - Scalable POWERparallel
AP - Scalar Parallel
VPP - Vector Parallel
SR2000 – SohoRAID 2000
NOWs - Networks of Workstations
COWs - Cluster of Workstations
CLUMPs - Cluster of sMPs
WAN - rede geograficamente distribuída
HTTP - Hypertext Transfer Protocol
OGSA - Open Grid Standards Architecture
VO - Organização Virtual
IME-USP – Instituto de Matemática e Estatística da Universidade de São Paulo
PUC-Rio – Pontificia Universidade Catolica do Rio de Janeiro
UFMS – Universidade Federal de Mato Grosso do Sul
API - Apllication Programing Interface
RMS - Resource Management and Systems – Sistemas Gerenciadores de Tarefas e Recursos
PVM - Parallel Virtual Machine
MPI - Message Passing Interface
LISTA DE SIGLAS
HPC - High Performance Computing
MPI - Message Passing Interface
PV - Parallel Virtual
BSP – Bulk Synchronous Parallel
CGM - Coarse Grained Multicomputer
GRACE - Grid Architecture for Computational Economy
BOINC - Berkeley Open Infrastructure for Network Computing
HPC Research Grid - High Performance Computing Research Grid
CENAPAD - Centro Nacional de Processamento de Alto Desempenho
CBF - Centro de Pesquisa e Documentação da Fundação Getúlio Vargas
LNCC – Laboratório Nacional de Computação Científica
RAM – Random Access Memory
MB – Mega Byte
HD – Hard Disk
GB – Giga Byte
S.O. – Sistema Operacional
NAMD - Not Another Molecular Dynamics
SUMÁRIO
1 INTRODUÇÃO...............................................................................................................14
1.1 JUSTIFICATIVA.........................................................................................................16
1.2 OBJETIVOS.................................................................................................................17
2 FUNDAMENTAÇÃO TEÓRICA.................................................................................18
1.1 EVOLUÇÃO DOS SISTEMAS DISTRIBUÍDOS......................................................23
2.2 ARQUITETURA DE SISTEMAS COMPUTACIONAIS...........................................25
2.3 COMPUTAÇÃO DISTRIBUÍDA E GRID COMPUTING.........................................39
3 ANÁLISE COMPARATIVA.........................................................................................43
1.2 CLUSTER X GRID COMPUTING.............................................................................43
1.3 AMBIENTE WEB X GRID COMPUTING.................................................................48
4 CONFIGURAÇÕES DE UMA ARQUITETURA UTILIZANDO OS CONCEITOS
DE GRID COMPUTING.......................................................................................................51
1.4 COJUNTOS DE SOFTWARES E FERRAMENTAS UTILIZADAS PELA GRID...58
1.4.1 PVM (Parallel Virtual Machine) e MPI ( Message Passing Interface).....................................................59
1.4.2 Ferrramenta RMS (Resource Management and Systems – Sistemas Gerenciadores de Tarefas e
Recursos)...................................................................................................................................................61
1.4.3 Middleware...............................................................................................................................................62
5 EXEMPLO DE PROJETOS..........................................................................................66
6 ESTUDO DE CASO.......................................................................................................68
7 CONCLUSÃO.................................................................................................................74
8 REFERÊNCIAS..............................................................................................................76
1 INTRODUÇÃO
O conceito de Grid Computing apresenta um novo paradigma computacional, que tem
por objetivo a integração de recursos computacionais através de uma infra-estrutura, capaz de
oferecer confiabilidade, consistência, economia e persistência na execução de aplicações que
necessitem de um grande poder computacional.
O Grid Computing surgiu como uma solução para os problemas de disponibilidade e
flexibilidade de demanda a partir da implementação de redes de alto desempenho, e teve
como base o modelo de sistemas distribuídos, amplamente usado no meio acadêmico,
conhecido como Cluster.
As características principais do Grid que o diferencia do Cluster, são a possibilidade
do uso de recursos heterogêneos, ou seja, utilização de processadores, memórias e sistemas
operacionais de diversas marcas, modelos e fabricantes, disponíveis nos nós “cooperativos”
que compõem esta estrutura, mesmo que estes nós se encontrem dispersos geograficamente,
sendo esta a característica mais importante na caracterização desta tecnologia.
Ian Foster define o Grid Computing como uma “infra-estrutura que permite o uso
integrado e colaborativo de computadores de alto desempenho, redes de interconexões, bases
de dados e instrumentos científicos pertencidos e gerenciados por múltiplas organizações.”
(FOSTER, 1998).
Como exemplificação do Grid, é comum o uso de uma analogia desta infra-estrutura
com as redes elétricas:
“A infra-estrutura de um Grid é análoga à grade de energia elétrica que provê acesso
consistente, pervasivo e transparente a energia elétrica independente da origem” (GÓES et al.,
2005), ou seja, a Grid Computing é uma infra-estrutura que dispõe recursos computacionais
14
para quem deles precisar, deste que este seja um dos membros da rede. Estes recursos podem
estar em PCs espalhados pelo mundo inteiro, executando suas aplicações sem que este saiba
exatamente como e quais recursos estão sendo usados durante a operação.
Esta tecnologia atualmente tem recebido grande incentivo de diversas faculdades e
centros de pesquisa, entre eles podemos citar o projeto OurGrid que conta com a participação
da UFCG (Universidade Federal de Campina Grande) e da empresa HP. Este projeto tem
como foco “a criação de tecnologias que viabilizem o uso de Grids da forma mais rápida e
direta possível”. (HEWLETT-PACKARD BRASIL COMPUTADORES LTDA..., 2005).
Outros projetos de destaque são o SETI@home voltado à pesquisa por vida
extraterrestre e o Globus que foi o “embrião dos esforços mundiais de pesquisa e
desenvolvimento desta área” (CHEDE, 2004) e que hoje concentra esforços no
desenvolvimento e aperfeiçoamento de ferramentas para a consolidação da tecnologia.
Este trabalho apresenta os resultados dos esforços empreendidos no entendimento
destas iniciativas e dos conceitos principais relativos ao Grid Computing buscando
caracterizar sua estrutura, formas de implementação e sua aplicabilidade.
Através da elaboração de um estudo de caso, obtivemos resultados que mostram os
pontos positivos e negativos do uso deste conceito para solução de problemas relacionados à
computação de alto desempenho.
O futuro desta tecnologia promete ser promissor, porém depende de pessoas
especializadas para sua manipulação. A adoção em áreas como TI, por exemplo, exigem a
superação de algumas limitações, como profissionais especializados e políticas de segurança.
No entanto, em outros setores como jogos interativos, em que as aplicações são
altamente paralisáveis apresentam uma eficiente utilização.
15
A empresa Buterfly, por exemplo, de games interativos pela Internet, foi criada com a idéia de Grid. O modelo exigia computação sob demanda, típicos da Grid Computing. A solução encontrada foi criar uma Grid composta por 2 clusters, baseados em plataformas Intel, hospedadas em data centers da IBM. Todos os servidores são conectados uns aos outros por rede de alta velocidade. Durante a execução do jogo, cada servidor comunica-se a todos os outros na Grid em tempo real, criando uma arquitetura peer-to-peer (P2P). (CHEDE, 2004).
Novas ferramentas para a aplicação da Grid Computing, em diferentes contextos vêm
sendo desenvolvidas, e a expectativa é que estas iniciativas possam contribuir no
aperfeiçoamento e padronização de ferramentas utilizadas na Grid Computing para atender as
necessidades especificas de cada projeto.
1.1 JUSTIFICATIVA
Com a disseminação dos conceitos da Computação em Grade - conhecida também
como Grid Computing - no meio acadêmico, surgiu a necessidade de diferenciar esta nova
tecnologia das tecnologias existentes.
O conhecimento de seus benefícios futuros e os esforços que vem sendo realizados por
diversos centros de pesquisas auxilia o estudo e compreensão desta tecnologia.
A expectativa é de que a Computação em Grade ofereça um grande poder
computacional no qual ocorra o acesso a recursos distribuídos geograficamente, de maneira
consistente, confiável econômica e persistente; sendo usada em aplicações que utilizando
compartilhamento de dados de forma remota, facilita a colaboração entre centros de pesquisas
de diversos lugares do mundo, envolvidos em projetos que requerem uma grande capacidade
de cálculo e/ou grande quantidades de dados, além de oferecer a proposta de redução de
custos e melhor utilização de recursos nos ambientes cooperativos.
16
1.2 OBJETIVOS
Este trabalho tem como objetivo consolidar os conhecimentos adquiridos ao longo do
curso de graduação em Sistemas de Informação no que se refere aos sistemas de
processamento de alto desempenho com caracteristicas de baixo grau de acoplamento e
dispersos geograficamente, usualmente denominados de Computação em Grade ou Grid
Computing ou simplesmente Grid.
Mais especificamente, podem ser citados os seguintes objetivos:
Caracterizar o conceito de Grid;
Apresentar e contextualizar as diferentes acepçoes deste termo, encontrados na
literatura;
Avaliar, através de um pequeno estudo de caso, os aspectos tecnicos e de
desempenho de um problema de computaçao de alto desempenho simulando o tipo
de escalonamento encontrado em Grids.
17
2 FUNDAMENTAÇÃO TEÓRICA
Grid Computing é um termo em inglês que na tradução mais aceita em português
significa “computação em grade”.
De maneira simples, podemos disser que a Grid Computing é representada por uma
estrutura em que diversos sistemas computacionais compartilham recursos para execução de
uma determinada tarefa, ou de um conjunto de tarefas independentes.
A partir de um estudo abrangente sobre o tema, descobrimos, no entanto, que os
conceitos de Grid Computing possuem características advindas de outras tecnologias e
conceitos próprios que merecem um entendimento de diversas áreas de estudo, como sistemas
distribuídos e computação paralela, e a partir deste momento o conceito começa a ser tornar
mais amplo.
Os primeiros estudos sobre o tema tiveram
[...] início na década de 90 para atender uma demanda específica da área cientifica. 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. (SANTOS, 2005a).
De acordo com (FOSTER, 2002), Grid Computing é uma “infra-estrutura que permite
o uso integrado e colaborativo de computadores de alto desempenho, redes de interconexões,
bases de dados e instrumentos científicos pertencidos e gerenciados por múltiplas
organizações.” (FOSTER, 2002).
Através de uma analogia muito usada na exemplificação do Grid Computing, podemos
disser que:
[...] esta infra-estrutura é análoga à grade de energia elétrica que provê acesso consistente, pervasivo e transparente a energia elétrica independente da origem. A
18
grade de energia elétrica disponibiliza energia elétrica sob demanda e esconde do usuário detalhes como a origem da energia e a complexidade da malha de transmissão e distribuição. Ou seja, se temos um equipamento elétrico, simplesmente o conectando na tomada para que ele receba energia. Uma grade computacional, portanto, seria uma rede na qual o indivíduo se conecta para obter poder computacional (ciclos, armazenamento, software, periféricos, etc.). (GÓES et al., 2005).
Os recursos disponíveis em uma Grid podem estar geograficamente distribuídos e
serem utilizados em diversos projetos de pesquisa de maneira controlada, sem que aja
interrupções no processo. Para isso, é necessário que na infra-estrutura construída utilizando
os conceitos e ferramentas da Grid Computing, seja implementada soluções para segurança
dos dados que circulam pela rede, quando isso se fizer necessário.
No ambiente acadêmico como em outros ambientes em que os projetos são voltados a
descobertas em beneficio a sociedades, o uso de uma Grid é vista por Chede (2004) como
“computação filantrópica”.
“Na computação filantrópica, a participação é voluntária e existe enquanto houver
interesse e disposição do usuário.” (CHEDE, 2004).
Em uma empresa devem ser evitados imprevistos e, portanto, os conceitos de
computação filantrópica não se aplicam neste ambiente, em que a disponibilidade e a
integridade dos dados são uns dos fatores importantes no que diz respeito à segurança dos
dados. (CHEDE, 2004)
“Um ambiente empresarial geralmente mantém seus PCs conectados em redes de alta
velocidade da conexão muito maiores e estáveis que as esperadas na computação filantrópica,
aberta à Internet.”(CHEDE, 2004).
Abaixo temos uma comparação entre as duas abordagens:
19
ComputaçãoFilantrópica
AmbienteEmpresarial
Conexões Conexão remota, de baixa velocidade.
Conectados em redes de alta velocidade
Participação Voluntária Pode ser compulsóriaAdministração e Segurança
Não existem políticas nem obrigatoriedade de adoção
Existem políticas a serem seguidas
Homogeneidade Ambientes diversos Padronizadas
Quadro 1: Diferença entre a abordagem adotada entre a Computação Filantrópica e os Ambientes Empresariais.Fonte: CHEDE, 2004.
Um exemplo de computação filantrópica que merece destaque é o projeto Seti@home,
que tem movido esforços na investigação por vida extraterrestre.
O projeto SETI (Search for Extraterrestrial Intelligence) “é uma experiência científica
que usa computadores interconectados pela Internet na busca por inteligência Extraterrestre1”
(SETI@Home). “Os participantes do SETI@Home cedem voluntariamente o uso do tempo
disponível dos seus computadores.” (STANTON, 2004).
“Usando um software que pode ser baixado pela Internet, um microcomputador pode
analisar sinais de rádio do telescópio de Arecibo. Atualmente existem 4 milhões de assinantes
em 224 países, criando um computador virtual com uma performance de 20 Tflops.”
(PITANGA, 2004).
O poder computacional alcançado com este projeto tem mostrado uma solução rápida
e viável para computação de trabalhos científicos que precisam de diversos recursos
computacionais para o processamento de grandes quantidades de dados, evitando ao máximo
a inviabilidade financeira da pesquisa.
Segundo Chede (2004), “a utilização de milhares de PCs“cria um computador virtual
que pode ser considerado um dos mais potentes do mundo”, que é exatamente o que vem
acontecendo com o projeto SETI@home. “Se todo o trabalho efetuado para o projeto fosse
1 “Is a scientific experiment that uses Internet-connected computers in the Search for Extraterrestrial Intelligence (SETI@Home, 2006).”
20
feito por um único PC com microprocessador Pentium seriam necessários mais de 1.3000.000
anos.” (CHEDE, 2004).
De encontro as contribuições oferecidas pela Grid Computing, o Instituto de
Matemática e o Departamento de Ciência da Computação, da Universidade Federal da Bahia
criaram o Projeto TopGrid (LAGE, 2005), e apresentam como motivações para o uso da Grid
Computing os seguintes pontos:
Necessidades de se processar grandes quantidades de dados;Alternativa mais barata perante os super computadores;Possibilidade do uso de recursos dispersos geograficamente;Disponibilizarão recursos e serviços com se fossem eletricidade;Compartilhar recursos e/ou serviços e,Utilização do tempo ocioso de recursos. (LAGE, 2005).
O uso de computadores para compartilhamento de recursos tem conquistado muitas
áreas de interesse, “governos, empresas e organizações de pesquisa estão trabalhando em
associação para criar redes de supercomputação, e que disponibilizarão estes recursos
computacionais agregados de um grupo para qualquer computador conectado” (PITANGA,
2004).
Como descreve (PINTANGA, 2004), MacCarty do MIT, em 1961, já previa o que
temos como grid: “se computadores do tipo que eu imagino, se tornarem os computadores do
futuro, então a computação poderá algum dia ser organizada como um serviço público, assim
como a telefonia o é [...] Esse serviço poderá ser tornar a base da nova e importante
indústria.” (MACCARTY apud PINTANGA, 2004).
Complementando esta idéia, Gandouf diretor da IBM, acredita que “Bits devem ser
uma torneira que pinga bits. Computação tem que ser utilidade pública.” (VALIM, 2002).
Enquanto cientistas e pesquisadores da área trabalham para tornar isso possível,
podemos vislumbrar outras iniciativas em benefício à sociedade que vem sendo
empreendidas, para atender o mais breve possível a população.
21
Um exemplo seria a parceria que a HP vem realizado com a UFCG (Universidade
Federal de Campina Grande) em parceria com o laboratório HP Labis Bristol no estudo das
contribuições do uso de Grid.
Mowbray citado por (GRADE..., 2004), declara que:
[...] é fantástico trabalhar num projeto que suporta aplicativos como o de classificação de medicamentos para tratar uma variante brasileira do HIV/AIDS, e o planejamento de água no Nordeste brasileiro, uma região propensa à seca.
A adoção de infra-estruturas grid, seu desenvolvimento e aceitação pela sociedade
representada o surgimento de um novo paradigma computacional.
A possibilidade de criar um supercomputador virtual com recursos já existentes permite desenvolver aplicações antes restritas a caríssimos supercomputadores. Abre-se uma nova perspectiva e certamente estamos diante de mudanças nos paradigmas computacionais. (CHEDE, 2004).
Segundo Stanton (2004), Thomas Kuhn se referia às rupturas das evoluções cientificas
como “mudanças de paradigmas”, “um termo que hoje é usado mais genericamente para
descrever uma modificação profunda em nossos pontos de referência.” (STANTON, 2004).
1.1 EVOLUÇÃO DOS SISTEMAS DISTRIBUÍDOS
Para que possamos compreender os objetivos que a computação em grade pretende
alcançar, e quais as contribuições que os esforços até então empreendidos tem a oferecer no
22
desenvolvimento de infra-estruturas computacionais, que atendam a necessidade cada vez
crescente por computação de alto desempenho, é preciso conhecermos o histórico de soluções
apresentadas nas últimas décadas, que apresentam contribuição importante no advento da
computação em grade.
“A computação em grade é o resultado de décadas de pesquisas nas áreas de
processamento paralelo e sistemas distribuídos.” (GÓES et al., 2005).
Para (TANENBAUM, 1995), “alguns autores fazem diferenciação entre sistemas
distribuídos, que são projetados para permitir que usuários trabalhem juntos, e sistemas
paralelos, cujo objetivo é conseguir máxima velocidade na solução de um único problema”.
O surgimento da computação distribuída, segundo Tanenbaum (1995), “é resultado do
avanço de duas tecnologias: os microprocessadores e as redes locais de alta velocidade
conhecidas como LAN (Local Área Networks).”
O resultado da aplicação destas duas tecnologias é o fato de hoje ser muito fácil construir sistemas de computação compostos por um grande número de processadores ligados através de redes de alta velocidade. Tais sistemas são denominados sistemas distribuídos, em contraste como os sistemas centralizados, compostos por um único processador, memória, periféricos, e terminais. (TANENBAUM, 1995).
Os primeiros sistemas com múltiplos processadores surgiram na década de 1960, com o objetivo principal de acelerar a execução de aplicações que lidavam com um grande volume de cálculos. Por muito tempo, esses sistemas foram utilizados quase que exclusivamente em ambientes acadêmicos e centros de pesquisas voltados para o processamento científico. O mercado corporativo começou realmente a utilizar os sistemas com múltiplos processadores na década de 1980, para melhorar o desempenho de suas aplicações comerciais e reduzir o tempo de resposta dos usuários interativos. (MACHADO; MAIA, 2002).
Para continuar atendendo a necessidade de aplicações, que dependem de estruturas
computacionais capazes de oferecer recursos cada vez maiores, na realização do
processamento de suas operações, de maneira rápida e eficiente, com um elevado grau de
desempenho, foi preciso trabalhar no desenvolvimento de soluções capazes de contornar os
23
problemas enfrentados pelos sistemas centralizados oferecendo uma nova proposta para o
processamento destas aplicações.
Para melhorar o desempenho de um sistema computacional seria necessária: a utilização de uma configuração computacional com um processador mais rápido, usa de melhores algoritmos, ou por fim empregar o paradigma de computação distribuída. (DANTAS, 2005b).
Atualmente, o avanço no poder de processamento tem sofrido limitações. Gordon
Moore um dos fundadores da Intel citado por Dantas (2005a),
[...] previu que em cada período de dezoito meses os sistemas dobrariam seus desempenhos. Este tipo de previsão foi verificado por vários anos e em alguns casos até superada. Todavia limitações tais como velocidade da luz, algumas leis de termodinâmica e o elevado custo de fabricação de novos processadores estão sendo atingidos, dificultando a progressão de desempenho que vinha acontecendo. (DANTAS, 2005a).
No entanto, como observado, o desenvolvimento de processadores mais rápidos
enfrentam problemas físicos que tem feito com que algumas redes distribuídas alcancem
atualmente um poder computacional superior aos sistemas centralizados baseados em
mainframe. (TANENBAUM, 1995, MACHADO; MAIA, 2002; DANTAS, 2005a).
É possível construir um sistema com 1.000 microprocessadores, cada um dos quais rodando a 20 MIPS (Milhões de Instruções por Segundo), chegando então a uma performance de 20.000 MIPS. Para que um único processador chegue a esta performance, ele teria que executar uma instrução básica em 0,05 nanosegundos (50 picossegundos). Pelo lado prático, um computador com esta velocidade em um cubo de 1,5 cm, geraria uma quantidade de calor tão grande que se derreteria completamente. (TANENBAUM, 1995).
E o uso de melhores algoritmos para aumento de desempenho também não parece ser
uma das melhores soluções:
[...]o levado custo de otimização faz com que inúmeras organizações optem por continuar executando suas aplicações, sem uma preocupação maior de desempenho.
24
De uma outra forma podemos entender que é difícil modificar aplicações já existentes e que estejam em produção. (DANTAS, 2005a).
Conforme observado por Dantas (2005a), Devido às dificuldades apresentadas, os
sistemas distribuídos surgiram como uma das propostas mais viáveis, no alcance do poder de
processamento desejado através da agregação de computadores, aproveitando das vantagens
oferecidas por cada um.
“A agregação de computadores locais ou geograficamente distribuídos, pode
representar uma opção adequada para a melhoria de desempenho de aplicações. É neste
contexto que os clusters e os grids computacionais se enquadram.” (Dantas, 2005a).
Ambientes de computação em grade tem forte relação com ambientes distribuídos, mas ambos diferem em alguns pontos importantes. Ambientes de grade possuem seu foco no compartilhamento de recursos e, muitas vezes, na busca por alto desempenho. Além disso, grades são compostas por um número dinâmico de recursos que podem estar espalhados por diferentes domínios administrativos. (GERPAV GRID..., 2005)
2.2 ARQUITETURA DE SISTEMAS COMPUTACIONAIS
Com o advento dos sistemas com múltiplos processadores, podemos observar através
da história, o desenvolvimento de soluções em hardware e software para que o uso desta
tecnologia pudesse solucionar efetivamente os problemas enfrentados pelos sistemas
centralizados na execução de tarefas complexas.
A arquitetura dos sistemas distribuídos é o resultado da evolução de estruturas
computacionais em que múltiplos processadores tornariam possível o processamento de
tarefas em paralelo.
25
Mesmo considerando que todos os sistemas distribuídos são, em última análise, constituídos de vários processadores, existem diversas formas diferentes de se organizar o hardware de tais sistemas, especialmente no aspecto de como implementar a conexão de seus componentes, e de como eles se comunicam. (TANENBAUM, 1995).
Analisando o hardware podemos utilizar a taxonomia de Michael Flynn para
conhecermos as possíveis estruturas para suporte a sistemas com múltiplos processadores.
(TANENBAUM, 1995, MACHADO; MAIA, 2002; DANTAS, 2005a).
Os sistemas computacionais podem ser classificados conforme o grau de paralelismo existente no processamento de suas instruções e dados. O modelo proposto por Flynn (1966) define quatro tipos de sistemas, apesar de antigo, continua sendo amplamente usado para comparar e compreender a evolução das arquiteturas de computadores. (MACHADO; MAIA, 2002).
Estes quatros sistemas são: SISD (Single Instruction Single Data), SIMD (Single
Instruction Multiple Data), MISD (Multiple Instrution Single Data) e MIMD (Multiple
Instruction Multiple Data).
SISD - fluxo único de instruções e fluxo único de dados – “todos os computadores
com um processador caem nesta categoria, desde os computadores pessoais até os
grandes mainframes.” (TANENBAUM, 1995).
SIMD - fluxo único de instruções e vários fluxos de dados – “trabalham com
dados escalares e, portanto, processam vetores sequencialmente, ou seja, um
componente de cada vez.” (MACHADO; MAIA, 2002). “Exemplo de
computadores com esta arquitetura são as máquinas ILLIAC IV (Universidade de
Illinois), Thinking Machine, CM-2 e MASPAR MP-1216.” (DANTAS, 2005a).
MISD – vários fluxos de instruções e um único fluxo de dados – “não se tem
conhecimento de arquiteturas de máquinas com múltiplas instruções trabalhando
com um único conjunto de dados.” (DANTAS, 2005a).
26
Fracamente Acoplado
FortementeAcoplado
MIMD – vários fluxos de instruções e vários fluxos de dados – “em essência
significa que um grupo de computadores independentes, cada um com seu
contador de programa, com seu próprio programa, e com seus próprios dados.”
(TANENBAUM, 2005).
Conforme proposto por Bell (1985), citado por Tanenbaum (1995), “as arquiteturas
MIMD por sua vez, podem se dividir em duas categorias: multiprocessadores e
multicomputadores.”
A Figura 1 abaixo, ilustra estas duas categorias.
Figura 1: Taxonomia para sistemas distribuídos e para os sistemas paralelos.Fonte: TANENBAUM, 1995.
27
Computadores paralelos e computadores distribuídos
Multicomputadores (memória local privada)
Multiprocessadores (memória compartilhada)
Baseado em Barramento
ComutadosBaseado em Barramento
Comutados
Os multiprocessadores são caracterizados por possuir uma estrutura em que a memória
é compartilhada pelos diversos processadores interligados na rede, já os multicomputadores
são formados por máquinas que possuem seu próprio espaço de armazenamento.
Em um multiprocessador, por exemplo, “se qualquer um dos processadores escrever
44 no endereço 1000, qualquer outro processador que venha a ler posteriormente o conteúdo
de seu endereço 1000 obterá o valor 44.” (TANENBAUM, 1995).
Conforme ilustrado na Figura 1, classificamos os multiprocessadores como sistemas
fortemente acoplados e podem ser formados por barramento ou através de sistemas
comutados.
Por sistemas baseados em barramento, entendemos haver uma única rede, um backplane 2, um barramento, um cabo, ou qualquer outro meio que conecte todas as máquinas do sistema [...] Os sistemas comutados não tem uma espinha dorsal única, como no caso dos sistemas baseados em barramento. Em vez disso, existem fios individuais ligando todas as máquinas entre si, havendo possibilidade de modificar o perfil de conexão. (TANENBAUM, 1995).
A arquitetura dos multiprocessadores é conhecida como fortemente acoplada, uma vez que processadores e memórias estão fortemente interligados através de seu sistema local de interconexão. A interconexão local de processadores e memórias, quando efetuada por intermédio de uma barra, provê a facilidade de configuração compartilhada. Por outro lado, a interligação de processadores e memórias através de um equipamento de comutação estabelece uma configuração comutada simples, podendo também se estender até múltiplos níveis. (DANTAS, 2005a).
2 Estrutura onde as placas são fixadas no chassi da máquina (UFRGS, 2005)
28
A Figura 2 representa duas configurações possíveis para a arquitetura de
multiprocessadores.
Configuração Compartilhada Configuração Comutada
P – Processador M- Memória
Figura 2: Configurações genéricas de multiprocessadores.Fonte: DANTAS, 2005a.
Os multicomputadores, no entanto, são considerados como um sistema fracamente
acoplado podendo ser constituído por ambas as configurações: comutada ou por barramento,
conforme ilustração simplificada da Figura 3. Neste caso, “não existe um compartilhamento
forte, o que significa dizer que a comunicação entre processos é efetuada apenas por troca de
mensagens entre processos que estão executando nos processadores.” (DANTAS, 2005a).
M – Memória P – Processador
Figura 3: Configurações genéricas de multicomputadores.Fonte: DANTAS, 2005a.
29
P P PP
M M MM
P P PP
M M MM
M M MM
P P PP
M M MM
P P PP
As máquinas das linhas SP da IBM e Balde Servers da HP, IBM, Intel e SUN são exemplos de casos de fabricantes comerciais que utilizam a abordagem da arquitetura multicomputador. [...] Nela também se enquadram vários computadores pessoais interligados por uma rede convencional. (DANTAS, 2005a).
O conceito de sistema fortemente acoplado tende a ser mais usado na modelagem de sistemas paralelos (que trabalham em um único problema), e o conceito de fracamente acoplado serve de base na modelagem dos sistemas distribuídos (que trabalham em vários problemas independentes), apesar disto não ser sempre verdade. (TANENBAUM, 1995).
A seguir, procuramos apresentar no Quadro 2, algumas das diferenças entre os
sistemas fortemente acoplados e dos sistemas fracamente acoplados.
Características Sistemas Fortemente Acoplados
Sistemas Fracamente Acoplados
Espaço de endereçamento Centralizado DistribuídoComunicação entre os processadores
Muito rápida Lenta
Arquitetura de hardware Complexa Mais simplesSistema operacional Homogêneo Geralmente heterogêneoCópias do sistema operacional
Existe apenas uma cópia Existem várias cópias, uma para cada sistema.
Programação paralela Mais fácil Mais difícil Número de processadores Centenas Não existe limiteEscalabilidade Baixa AltaDisponibilidade Baixa/Média Média/AltaAdministração Simples ComplexaCusto de software Menor MaiorIntercomunicação Proprietária PadronizadaSegurança Centralizada Distribuída
Quadro 2: Sistemas fortemente acoplados x Sistemas fracamente acoplados.Fonte: MACHADO; MAIA, 2002.
Esta abordagem usada para classificar as arquiteturas de múltiplos processadores trata
do assunto de forma simplificada.
“As configurações das arquiteturas dos multiprocessadores e multicomputadores
apresentadas endereçam as arquiteturas de uma forma geral.” (DANTAS, 2005a).
“Certos ambientes computacionais podem se tornar diferenciados devido a seus
sistemas organizacionais e modelos de programação.” (DANTAS, 2005a).
Em uma abordagem mais ampla temos as arquiteturas SMP, NUMA e MPP.
30
“Os sistemas com multiprocessadores simétricos (Symmetric Multiprocessors – SMP)
possuem dois ou mais processadores compartilhando um único espaço de endereçamento e
gerenciados por um sistema operacional.” (MACHADO; MAIA, 2002).
Os sistemas SMP são uma evolução dos sistemas com múltiplos processadores assimétricos. Na organização assimétrica ou mestre/escravo, somente um processador, denominado mestre, pode executar serviços do sistema operacional, como por exemplo, operações de E/S. Sempre que um processador do tipo escravo precisa realizar uma tarefa de E/S, tem que requisitar o serviço ao processador mestre. (MACHADO; MAIA, 2002).
Devido a esta centralização de tarefas, sistemas assimétricos enfrentam problemas
quando um número grande de processadores faz requisições ao mesmo tempo, além de haver
um ponto único de falha, que uma vez indisponível afeta todo o sistema. (MACHADO;
MAIA, 2002).
“Sistemas SMP, por outro lado implementam a simetria dos processadores, ou seja,
todos os processadores realizam as mesmas funções. Apenas algumas poucas funções ficam a
cargo de um único processador, como por exemplo, a inicialização do sistema.”
(MACHADO; MAIA, 2002).
Observando a Figura 4 abaixo, temos ajuda na compreensão dos conceitos de uma
arquitetura SMP.
Figura 4: Configuração clássica de uma arquitetura SMPFonte: DANTAS, 2005a.
31
P P P P
Sistema Entrada-Saída
Memória
Processadores
Placa Rede
Discos
“Um fator particular da configuração é não possuir múltiplas memórias e nem tão
pouco múltiplos sistemas de entrada e saída, mas apenas múltiplos processadores.”
(DANTAS, 2005a).
Exemplos comerciais que empregam esta abordagem são os servidores de fabricantes como Compaq, INM, Dell e HP. Estas máquinas são usualmente denominadas pelos fabricantes como servidores de pequeno porte, pois possuem até dezenas de processadores. (DANTAS, 2005a).
O problema da contenção no acesso aos recursos partilhados limita o número de processadores – usualmente 64 no máximo. Este problema limita consideravelmente a escalabilidade destes sistemas. A comunicação entre processadores é efetuada através da memória partilhada. (TEIXEIRA et al., 2000).
As máquinas SMP são também conhecidas como multiprocessadores fortemente acoplados. Por esta razão, estes ambientes não são muito escaláveis. Não possuindo muitas vezes uma memória local (ou cache) por processador, com o aumento no número de processadores, a taxa de colisão de acesso à memória cresce de maneira substancial. Por esta razão, alguns fabricantes desenvolveram soluções onde suas máquinas servidoras possuem algumas placas, onde em cada uma delas encontramos alguns processadores com memória global para os processadores contidos nesta placa. Com este artifício pode-se promover uma configuração SMP, garantindo um acesso uniforme à memória global do servidor. (DANTAS, 2005a).
Segundo, (TEIXEIRA et al., 2000), pode ser usado uma cache por máquina.
Para reduzir a contenção no acesso à memória estes sistemas utilizam memória cache de alta velocidade junto de cada processador, que armazena a informação da memória principal que foi acedida mais recentemente. Todos os pedidos de acesso à memória passam pela memória cache e apenas se extendem à memória principal quando aquela não é capaz de responder ao pedido efetuado. (TEIXEIRA et al., 2000).
Porém, o uso de memória cache enfrenta problemas em relação à coerência dos dados.
O uso de caches nestes sistemas traz, no entanto um problema. Suponha que dois processadores, A e B, leiam a mesma palavra de suas respectivas caches. Depois disso A escreve nesta palavra. Quando B efetuar nova leitura desta palavra, ele vai obter o valor antigo, em vez do valor que A acabou de escrever. O sistema de memória é, então, considerado incoerente, tornando muito difícil a programação neste sistema. (TANENBAUM, 1995).
32
De acordo com Teixeira et al. (2000), para resolver este problema empregam-se
usualmente dois mecanismos: Write-through-cache e Snoopy-cache.
- Write-through-cache: sempre que se escreve na memória cache escreve-se também na memória principal;- Snoopy-cache: todas as memórias cache monitorizam o barramento. Sempre que se observa uma escrita numa posição de memória principal que esteja replicada nessa cache esta atualiza o respectivo valor ou o elimina. (TEIXEIRA et al., 2000).
Um projeto de uma cache snoopy e write-throught gera um sistema coerente além de ser invisível pelo programador. Quase todos os sistema multiprocessadores baseados em barramento usam esta arquitetura ou alguma outra muito semenhante. O emprego desta arquitetura permite que o sistema tenha entre 32 e 64 processadores. (TANENBAUM, 1995).
Nesta arquitetura, para aumenta o número de processadores o ideal seria o emprego de
comutação crossbar. (TANENBAUM, 1995).
“Em uma arquitetura de barramento, para cada n processadores e n módulos de
memória são necessários n² comutadores3 para interligar todos os pontos. Em uma
configuração onde n seja muito grande, o custo tende a ser muito alto” (MACHADO; MAIA,
2002).
Uma maneira de reduzir o número de comutadores é implementar uma rede Ômega. Nesta topologia, não existe uma ligação exclusiva entre cada processador e um módulo de memória; os caminhos são compartilhados entre as diversas unidades funcionais. Desta forma é possível que um processador tenha que esperar para poder acessar um determinado módulo de memória devido à falta de caminho disponível no momento. (MACHADO; MAIA, 2002).
Porém, temos outro problema: “apesar do menor custo, redes ômega podem introduzir
o problema de latência, devido ao longo caminho percorrido entre o ponto de origem e o de
destino, principalmente se considerarmos redes de interconexão maiores.” (MACHADO;
MAIA, 2002).
3 Os comutadores, conforme citado, podem ser dispositivos de redes conhecidos como Switch.
33
Para tentar resolver os problemas observados pela arquitetura SMP, surgiu a
arquitetura NUMA (Non-Uniform Memory Access), e depois a arquitetura CC-NUMA
(Cache Coherence Non-Uniform Memory Access).
“As primeiras arquiteturas NUMA não utilizavam qualquer mecanismo de cache. A
ausência de cache, apesar de simplificar e reduzir custo do modelo oferece uma latência4 alta
quando são realizados acessos à memória remota.” (MACHADO; MAIA, 2002).
Sistemas NUMA são uma alternativa às organizações SMP, pois oferecem uma escalabilidade maior de processadores, menor custo e maior desempenho. Uma grande dificuldade em sistemas Numa é manter um nível de desempenho satisfatório, devido à possibilidade de existirem tempos de acesso a memória principal bem diferentes. Neste caso, o sistema deve garantir o maior número possível de acesso locais, evitando acessos à memória remota. (MACHADO; MAIA, 2002).
“Uma vez que a memória se encontra fisicamente distribuída é necessário recorrer a
mecanismos que garantam a sua consistência.” (TEIXEIRA et al., 2000).
“Existem nesta configuração manipulações que devem ser compartilizadas entre as
memórias local e global para evitar que erros de coerência ocorram.” (DANTAS, 2005a).
A Figura 5 mostra um exemplo simplificado de uma arquitetura NUMA.
Figura 5: Configuração convencional de uma NUMA.Fonte: DANTAS, 2005a.
4 É o tempo que uma mensagem gasta para percorrer a trajetória até ao elemento de destino
34
P P P P
Sistema Entrada-Saída
Memória
Cache Cache Cache Cache
Processadores
Placa Rede
Discos
Os sistemas CC-NUMA são multiprocessadores com uma arquitetura de acesso não uniforme à memória. Tal como em SMP todos os processadores têm uma visão global da memória, no entanto, os tempos de acesso dependem da proximidade da memória a que se acede, ao contrário dos sistemas de acesso uniforme à memória. (TEIXEIRA et al., 2000).
“Máquinas com esta abordagem são configurações escaláveis de multiprocessadores.
Aplicações tais como os serviços de Web, banco de dados, processamento de sinal, CRM e
ERP são aplicações candidatas a serem utilizadas em configurações ccNUMA.” (DANTAS,
2005a).
A Figura 6, exemplifica a configuração de um arquitetura usando os conceitos de
ccNUMA.
AC – Assistente de Comunicação.
Figura 6: Configuração convencional de uma ccNUMA.Fonte: DANTAS, 2005a.
Na literatura sobre arquitetura de computadores, alguns autores se referem a esta configuração, apresentada na Figura 6, como organização de multiprocessadores distribuída de memória. Nestes ambientes, para cada nó (composto por um ou mais processadores é possível ter uma visão geral do todo do sistema de memória local, empregando uma memória cachê para cada processador). Para uma visão global de todas as memórias que compõem a configuração de todos os nós é utilizado um hardware denominado de uma forma genérica de assistente de comunicação (AC). (DANTAS, 2005a).
Sobre os sistemas SMP e NUMA, vistos até aqui, podemos verificar que:
35
P P
Cache Cache
AC
Memórias
Processadores
P P
Cache Cache
AC
Memórias
Processadores
SWITCH
Sistemas multiprocessadores baseados em barramento, incluindo os baseados na snoopy cache, são limitados pela quantidade máxima de processadores suportada pelo sistema (em torno de 64). Para suportar isso é necessário o uso de redes de comutação, tal como crossbar, a ômega, ou algo similar. As redes crossbar muito grandes são caríssimas, enquanto que a as redes ômega com muitos processadores e memórias, além de caras são excessivamente lentas. As chamadas máquinas NUMA precisam de algoritmos muito complexos para resolver o problema do local adequado para armazenamento do software. Disso tudo a conclusão é uma só: a construção de um sistema multiprocessador com memória compartilhada, fortemente acoplada, e com um tamanho relativamente grande, é uma tarefa difícil e muito cara. (TANENBAUM, 1995).
Outro modelo de arquitetura é a MPP (Masssively Parallel Processors), que
diferentemente das arquiteturas SMP e NUMA, não faz uso de memórias compartilhadas,
sendo caracterizada como arquitetura fracamente acoplada.
Computadores sob este paradigma são classificados usualmente como multicomputadores.[...] Um MPP pode ser composto também por um conjunto de multiprocessadores, onde cada multiprocessador é um nó de uma configuração do tipo multicomputadores. (DANTAS, 2005a).
De acordo com (MEDEIROS, 2005) “sua estrutura tem centenas de nós com uma
rede/switch de interligação de muito alta velocidade.”
“Uma outra característica da arquitetura é que cada nó possui sua própria cópia do
sistema operacional, onde as aplicações executam localmente e se comunicam através de
pacotes de troca de mensagem, tais como MPI e PVM.” (DANTAS, 2005a).
“A escalabilidade da abordagem MPP é maior do que as arquiteturas como memória
compartilhada, uma vez que cada nó tem sua própria estrutura de memória.” (DANTAS,
2005a).
Um elemento importante na configuração MPP é seu sistema de interconexão. A interligação dos vários nós da configuração é efetuada por dispositivos que são denominados como redes de interconexão. Estas redes têm diversas formas de implementação. Os parâmetros que são levados em consideração na construção das redes de interconexão são: Topologia; Algoritmos de roteamento; Estratégia de comutação; Controle de fluxo entre nós. (DANTAS, 2005a).
36
“Os computadores T3D e T3E da Cray, SP da IBM, AP e VPP da Fujitsu e SR2000 da
Hitachi, são também exemplos de máquinas e fabricantes de MPPs encontrados no mercado.”
(DANTAS, 2005a).
A Figura 7 ilustra esta idéia.
P – Processador M – Memória
C - Cache E/S – Entrada/Saída
Figura 7: Configuração genérica de uma MPPFonte: DANTAS, 2005a.
Como podemos observar os sistemas com arquitetura MIMD estão presente em
sistemas nos quais os processadores podem fazer uso de memória compartilhada ou
distribuída, sendo classificados com mutiprocessadores ou multicomputadores,
respectivamente.
Os sistemas distribuídos e paralelos de acordo com suas características de
funcionamento podem utilizar uma das arquiteturas abordadas para aplicação de seus
conceitos na computação das tarefas de acordo com a proposta de funcionamento peculiar a
um determinado sistema e do objetivo do projeto.
37
P
CM
E/S
P
CM
E/S
E/S
Rede de Interconexão
De acordo com GÓES et al. (2005),
A pesquisa em processamento paralelo sempre procurou extrair o máximo de desempenho computacional por meio da criação de máquinas dedicadas com múltiplos processadores, redes especiais de alta velocidade, memórias compartilhadas e processamento vetorial.
Continuado a comparação de sistemas distribuídos em relação a sistemas paralelos,
segundo Teixeira et al. (2000) temos que:
Ao contrário dos sistemas paralelos o principal objetivo não é a rapidez de processamento, mas sim questões organizacionais e econômicas, acesso distribuído aos dados, fiabilidade e escalabilidade. Em geral os recursos destes sistemas não são exclusivamente dedicados ao processamento paralelo, mas a atividades de gestão de informação da organização a que pertencem.
“A área de sistemas distribuídos preocupou-se mais com aspectos ligados à
comunicação, heterogeneidade e compartilhamento de recursos computacionais,
principalmente informações por meio de arquivos.” (GÓES et al., 2005).
Devido a estas diferenças, a escolha de uma determinada abordagem vai depender da
aplicação usada e dos recursos disponíveis.
Um aspecto importante no desenvolvimento de programas paralelos é que existe uma diferença considerável em programar para os diferentes tipos de máquinas. Por exemplo, na programação para uma máquina de memória compartilhada o programa deve ser visto como sendo uma coleção de tarefas que fazem acesso a um conjunto de dados por meio de variáveis comuns às tarefas. Na programação para máquinas de memória distribuídas os programas devem ser vistos como sendo um conjunto de processos com variáveis locais privadas e possuindo capacidade de enviar e receber dados por meio de um mecanismo de troca de mensagens. (CENTODUCATTE, 2004).
Abaixo temos as arquiteturas definidas: SMP, ccNUMA e MPP; e as demais
arquiteturas que compõem o foco de estudo deste trabalho: Cluster, Grid.
38
Figura 8: Arquiteturas computacionais com múltiplos processadores.Fonte: DANTAS, 2005a.
2.3 COMPUTAÇÃO DISTRIBUÍDA E GRID COMPUTING
O conceito de sistemas distribuídos é mais antigo do que Grid Computing. Como
pudemos observar, os sistemas distribuídos surgiram como uma solução para resolver os
problemas enfrentados pela limitação dos sistemas centralizados, propondo estruturas
computacionais que suportassem múltiplos processadores para compartilhamento de recursos
entre máquinas quando necessário, ou seja, quando a máquina que inicia o processo de uma
tarefa não dispor de recursos suficientes para seu processamento, em um determinado
momento, começa a procurar máquinas que possam ceder um dos recursos computacionais
requisitado.
Segundo (MACHADO; MAIA, 2002), temos que: “O sistema distribuído é um
conjunto de sistemas autônomos, interconectados por uma rede de comunicação e que
funciona como se fosse um sistema fortemente acoplado.” (MACHADO; MAIA, 2002).
O que diferencia um sistema distribuído dos demais sistemas fracamente acoplados é a existência de um relacionamento mais forte entre os seus componentes. Podemos definir um sistema distribuído dos demais sistemas fracamente acoplados pelo
39
MIMDMIMD
Memória Compartilhada
Memória Compartilhada
Memória DistribuídaMemória
Distribuída
SMPSMP ccNUMAccNUMA MPPMPP ClusterCluster GridGrid
aspecto de hardware e fortemente acoplado pelo aspecto de software. Para os usuários e suas aplicações, é como se não existisse uma rede de computadores independente, mas sim um único sistema fortemente acoplado. Este conceito é chamado de imagem única do sistema (single system image). (MACHADO; MAIA, 2002).
Nos ambientes distribuídos, a homogeneidade ou heterogeneidade de um conjunto de máquinas, onde cada qual possui sua arquitetura de software-hardware executando sua própria cópia de sistema operacional, permite a formação de interessantes configurações de SMPs, de MPPs, de clusters e grids computacionais. (DANTAS, 2005a).
Grid parte do mesmo princípio, mas possui características próprias que a diferencia
dos sistemas distribuídos em alguns aspectos importantes.
Ambientes de computação em grade têm forte relação com sistemas distribuídos, mas ambos diferem em alguns pontos importantes. Ambientes de grade possuem seu foco no compartilhamento em grande escala de recursos e, muitas vezes, na busca por alto desempenho. Além disso, as grades são compostas por um número dinâmico de recursos que podem estar espalhados por diferentes domínios administrativos. (GERPAVGRID..., 2005).
Apesar de Grid Computing também ser um ambiente fracamente acoplado, podendo
ser formado por máquinas heterogêneas cada qual com seu sistema operacional e permitir o
uso de arquiteturas SMP, MPP e clusters, de acordo com Ian Foster, citado por Menegotto
(2005), Grid possui um foco diferenciado:
“A Computação em Grid emergiu como um importante novo campo, distinto da
computação distribuída convencional, por seu foco em compartilhamento de recursos em
grande escala, aplicações inovadoras, e, em alguns casos, orientação a alto desempenho.”
(FOSTER, 2002).
“Os componentes de um Grid não se restringem a processadores, podendo ser SMPs e
MPPs como também instrumentos digitais.” (CIRNE, 2004).
A computação em grade propõe uma solução para a grande demanda por capacidade computacional e transparência. Seu objetivo é prover uma infra-estrutura computacional que possibilite o acesso a recursos computacionais distribuídos geograficamente de forma confiável, consistente, econômica e persistente. (GERPAVGRID..., 2005).
40
Em 1965, os projetistas do Sistema Operacional Multics (um antecessor do Unix) apresentaram uma visão de “computação como uma utilidade”, semelhante à maneira como o Grid é visto atualmente. O acesso aos recursos computacionais era imaginado como sendo exatamente como o à água e eletricidade – algo ao qual o cliente se conecta e paga de acordo com o que usa. E no seu artigo de 1968, “The Computer as Communications Device”, J. C. R. Licklider e Robert W. Taylor anteciparam alguns cenários relativos a Grid. Desde o fim dos anos 60, muito trabalho tem sido devotado ao desenvolvimento de sistemas distribuídos, mas com resultados bastante diversos. (MENEGOTTO, 2005) .
Segundo (PITANGA, 2004), a computação em grade é vista como uma evolução dos
sistemas distribuídos:
A computação distribuída passa a ser uma “Computação em Grade” no momento em que existe uma infra-estrutura física e uma infra-estrutura lógica (software) que permita coordenar os trabalhos que vão ser processados e garantir a sua qualidade de serviço. (PITANGA, 2004).
“O grid é um caso particular de computação distribuída, uma vez que os Grids são
orientados essencialmente para aplicações que precisam de uma grande capacidade de
cálculo, ou enormes quantidades de dados transmitidos de um lado para outro, ou as duas.”
(PITANGA, 2004).
Dantas (2005) apresenta a mesma idéia quando diz que:
A configuração distribuída quando considera o uso de serviços e recursos geograficamente distribuídos como uma cooperação formal com o objetivo de melhorar, viabilizar e até tornar economicamente possível uma aplicação é conhecida como um grid computacional.
Com a finalidade de diferenciar os sistemas distribuídos e Grid Computing, veremos
que:
41
A diferença fundamental entre uma configuração de grid e uma outra caracterizada como ambiente distribuído convencional é referente a grande quantidade de serviços e recursos que os ambientes de grid focam no seu compartilhamento. O termo grid é considerado, pelos pesquisadores da organização RealityGrid, como um esforço ambicioso e interessante para o desenvolvimento de um ambiente onde usuários finais podem ter acesso a recursos computacionais, banco de dados e facilidades experimentais de forma simples, transparente e sem consideração de localização de recursos. (DANTAS, 2005b).
A diferença entre ambas tecnologias nem sempre é clara, mas como pudemos notar
estas duas tecnologias possuem similaridades quanto a infra-estrutura, porém conceitualmente
a computação em grade apresenta uma abordagem diferenciada enquanto busca implementar
soluções capazes de oferecer alto desempenho, segurança no compartilhamento de dados
distribuídos geograficamente e alocação sob demanda de recursos computacionais de
máquinas ociosas, que em um determinando momento trabalham na solução de um mesmo
problema.
3 ANÁLISE COMPARATIVA
42
Para uma melhoria no desempenho das aplicações nas organizações, tem sido verificado o agrupamento físico local e virtual de inúmeros computadores. Em outras palavras, devido ao custo de máquinas do tipo MPP e SMP, em adição a grande oferta de computadores pessoais existentes nas redes das instruções, políticas de agregar máquinas estão cada vez mais utilizadas. (DANTAS, 2005b).
A partir deste contexto, podemos abordar duas tecnologias que fazem uso do
agrupamento de computadores para execução de tarefas de maneira eficiente, dando a idéia
para o usuário de estar fazendo uso de um único sistema: Clusters e Grids.
1.2 CLUSTER X GRID COMPUTING
Segundo Gregory F. Pfister em seu livro In Search of Clusters, citado por Chede
(2005), diz que “Cluster é um sistema distribuído que consiste na coleção de computadores
inter-conectados, usados como um sistema único.”
Esta característica, conhecida como imagem única do sistema, é implementada pelo sistema operacional juntamente com as aplicações que estão sendo processadas no ambiente. A maioria dos clusters implementa apenas parcialmente este conceito, principalmente quando o problema envolve o desenvolvimento de aplicações paralelas. (MACHADO; MAIA, 2002).Cluster consiste num conjunto de máquinas constituídas por processador, memória e eventualmente unidades de armazenamento de dados e periféricos, interligadas de forma a executar tarefas de uma forma cooperativa. Genericamente, cada nó pode ser uma máquina uniprocessador ou uma máquina SMP, por exemplo. No entanto, usualmente os nós são PCs. (TEIXEIRA et al., 2000).
“Todavia é possível projetarmos configurações de clusters levando em consideração
um conjunto de máquinas multiprocessadas.” (DANTAS, 2005a).
43
Na Figura 9 encontramos um exemplo de clusters formado por máquinas
multiprocessadas.
Figura 9: Cluster de máquinas multiprocessadas.Fonte: DANTAS, 2005a.
“Um ambiente de cluster constitui em um sistema formado por hardware e software
conectados em um local apenas, servindo a usuários que estão trabalhando somente em uma
determinada organização.” (PITANGA, 2004).
Segundo (DANTAS, 2005a) estas máquinas podem ou não serem usadas de maneira
dedicada:
“As configurações de clusters, em termos de arquiteturas computacionais, podem ser
entendidas como uma agregação de computadores de uma forma dedicada (ou não) para a
execução de aplicações específicas de uma organização.”
As Figuras 10 e 11 a seguir, procuram diferenciar estas duas idéias.
Figura 10: Cluster não-dedicado Figura 11: Cluster dedicadoFonte: DANTAS, 2005. Fonte: DANTAS, 2005.“Os tipos de hardware empregados nos clusters têm sido classificados de uma forma
empírica como NOWs, COWs e Clumps”. (DANTAS, 2005a).
44
NOWs (Networks of Workstations) – caracterizadas pelo uso de estações de trabalho
distribuídas em uma rede local como elementos de hardware para compor os ambientes de
cluster. (DANTAS, 2005a).
COWs (Cluster of Workstations) – diferente das NOWs são geralmente constituídas
de máquinas homogêneas e dedicadas à execução de aplicações especificas. Estas
configurações dispõem de uma rede específica para interligação das máquinas. (DANTAS,
2005a).
CLUMPs (Cluster of sMPs) – são um ambiente composto de máquinas com
arquiteturas SMP.
De maneira geral, os sistemas em clusters trabalham de forma parecida. Cada nó da rede implementa uma camada de controle, que trabalha acima do sistema operacional. Esta camada é a responsável pela intercomunicação e sincronização entre todos os nós da rede. Para a aplicação o cluster aparece como um sistema único. (CHEDE, 2004).
Clusters são denominados como sistemas fracamente acoplados, ou seja, “cada
membro do cluster possui seu próprio espaço de endereçamento individual, e a comunicação
entre os membros se faz, na maioria das implementações, pelo mecanismo de troca de
mensagens através da rede de interconexão.” (MACHADO, 2004).
Benefícios do cluster:
Aumento do nível de disponibilidade do ambiente através da continuidade de um serviço, mesmo quando um determinado sistema torna-se inoperante;Melhor escabilidade, pois possibilita que novos componentes sejam adicionados à medida que a carga de trabalho cresce;Gerenciamento mais facilitado, pois permite que o administrador gerencie todo um bloco de sistemas ao invés de sistemas isolados, e através de recursos de load-balancing (balanceamento de carga), possa mover processos de um componente para outro, maximizando o uso do sistema e melhoramento o seu desempenho. (CHEDE, 2004).
45
Entre as limitações do cluster, segundo Chede (2005) destacamos algumas
delas: Limitação de nós – dependendo do sistema os nós ficam limitados
em 12, 16 ou 32.
Escalabilidade do desempenho – o uso de uma aplicação que não esteja
preparada para rodar neste ambiente, por exemplo, “se o banco de dados
não estiver preparado para este ambiente, ele só poderá rodar em um único
servidor por vez”, subutilizando a capacidade computacional do sistema.
Overhead das atividades de gerenciamento – às vezes o aumento de nós no
sistema não apresenta um ganho de performance devido ao aumento de
carga no gerenciamento entre os nós.
Alguns benchmarks com determinadas soluções em cluster mostraram que os ganhos de perfomance com a adição de um segundo servidor foi de 1.76 em relação a um single-server; de 2.45 com três servidores e apenas 3.10 com quatro servidores. [...] O cluster ideal é o que mais se aproxima de uma escalabilidade quase linear. (CHEDE, 2004).
Flexibilidade da configuração – uma das principais restrições se refere a
este item. Em muitos casos existe a necessidade destes ambientes de se
manterem heterogêneos.
Mesmo havendo algumas similaridades conceituais entre estas duas tecnologias é
preciso conhecer o funcionamento de ambas para podemos delimitar a fronteira entre elas.
Um ambiente de cluster constitui em um sistema formado por hardware e software conectados em um local apenas, servindo a usuários que estão trabalhando somente em um projeto, usado exclusivamente para resolver os problemas computacionais de uma determinada organização. (PITANGA, 2004).
Clusters podem ser formados por computadores IBM-PC dedicados e agrupados fisicamente em uma sala. Uma outra maneira de formar um cluster é a conexão virtual de computadores espalhados em uma rede de computadores. Nestas configurações um pacote de software apropriado (Condor, Oscar e OpenMosix) auxilia a que computadores distribuídos ao longo de uma rede possam servir a solicitações de terceiros como seus recursos computacionais. (DANTAS, 2005a).
46
“Cluster é um conceito parecido com Grid, parte de um mesmo princípio o de
paralelismo de processamento” (SANTOS, 2005a).
As configurações conhecidas como grids computacionais representam as infra-estruturas com interoperabilidade, entre ambientes computacionais dispersos em uma grande área geográfica. Possui uma ênfase no compartilhamento em massa de recursos e serviços específicos. Alguns exemplos de compartilhamento de recursos são os processadores, os dispositivos de armazenamento e a utilização de dispositivos especiais. Por outro lado, os serviços são caracterizados por determinadas aplicações que podem ser usadas remotamente. (DANTAS, 2005a).
Simplificando as diferenças na configuração entre Cluster e Grid, podemos utilizar o
Quadro 3 para comparação.
Configuração Cluster GridDomínio Único MúltiplosNós Milhares MilhõesSegurança do processamento e dos recursos
Desnecessária Necessária
CustoAlto, pertence a um único domínio.
Alto, todavia dividido entre domínios.
Granularidade do problema Grande Muito GrandeSistemas Operacionais Homogêneo Heterogêneo
Quadro 3: Diferenças entre as configurações de cluster e gridFonte: COLVERO; DANTAS; CUNHA, 2005.
Quanto ao domínio, podemos “fazer uma analogia entre um cluster e uma rede local
(LAN) e uma grid e uma rede geograficamente distribuída (WAN).” (DANTAS, 2005a).
Sobre a segurança é comum que o controle aos recursos sejam mais fácil de serem
controlados em ambientes cluster do que em ambientes grid.
Em um ambiente cluster a alocação de recursos é efetuada por domínio administrativo centralizado, sendo desnecessária a segurança do processo e do recurso, caso a rede de interconexão (intracluster) seja desacoplada da rede de acesso externo. (COLVERO; DANTAS; CUNHA, 2005).
47
“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 e serviços são gerenciados.” (DANTAS,
2005a).
Para facilitar este conceito podemos citar uma outra analogia, utilizando os sistemas
telefônicos.
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 de diferentes empresas telefônicas, com seus diversos serviços, seria um ambiente de grid. (DANTAS, 2005a).
Complementando temos que “grid pode ser compreendido como um cluster de
clusters, sem restrições de homogeneidade, residentes em sites remotos, interoperando de
modo a passar imagem de um único sistema.” (CHEDE, 2004).
1.3 AMBIENTE WEB X GRID COMPUTING
Apesar de a Internet ser “formada por sistemas totalmente heterogêneos, fracamente
acoplados e geograficamente distribuído” (PITANGA, 2004), a Grid Computing pode ser
confundida com os conceitos usados para caracterizar a Internet e os serviços Web.
A web é um sistema com interface gráfica utilizado na internet, que emprega a abordagem de hyperlink e baseia-se no protocolo HTTP (Hypertext Transfer Protocol). [...] A web não é sinônimo de Intenet, e podemos fazer acesso a Internet sem utilizar os serviços Web. (DANTAS, 2005a).
Segundo Valim (2002), “enquanto a Internet distribui dados e informações, a Grid
Computing partilha capacidade de processamento”.
48
Existe a expectativa de que a computação em grade alcance a importância percebida
pela Internet nos dias atuais.
“Grid Computing apresenta-se como a nova grande evolução em termos de
computação, cujo impacto será, alguns afirmam, semelhante ou maior que o da Internet.”
(GERPAVGRID..., 2005).
Segundo Miranda Mowbray - pesquisadora no HP Labis Bristol – citado por
(GRADE..., 2005), diz que “a grade fará pelos recursos computacionais o que a Web fez pelos
dados”.
Mas não existem especulações de que a grade substitua a Internet. “Grid não é a
próxima geração da internet, mas sim um conjunto adicional de protocolos e serviços que
complementam a funcionalidade da rede e que dela pode ser servir para aumentar sua
abrangência.” (CHEDE, 2004).
Pensando nisso, segundo (NOVO..., 2005) existe pesquisa para o desenvolvimento de
um novo protocolo capaz de permitir que as aplicações escolham entre recursos disponíveis e
atendam organizações virtuais com um método mais sofisticado de alocação de recursos, por
exemplo. “Jonhghun Park, professor assistente na Escola de Ciências da Informação e
Tecnologia, autor da pesquisa, disse que a nova tecnologia aumenta a velocidade de alocação
em até 10 vezes.” (NOVO..., 2005).
“Informações e recursos computacionais largamente distribuídos, integrados em uma
única rede coesa – este é o conceito de computação pela Internet – permite uma troca de
informações entre os usuários de maneira mais ampla do que é possível hoje.” (NOVO...,
2005).
Na metade dos anos 90, o termo Grid foi usado para denotar uma proposta de infraestrutura de computação distribuída - um “serviço” para compartilhar poder de processamento e capacidade de armazenamento através da Internet - o que potencialmente seria capaz de suprir as necessidades de recursos computacionais impostas pela ciência.A idéia de Grid vai além de simples comunicação entre computadores, e objetiva,
49
em última análise, tornar a rede global de computadores em um único vasto recurso computacional. (MENEGOTTO, 2005).
Grid Computing apresenta uma abordagem recente, que pode utilizar da infra-estrutura
existente na Internet, para criar organizações virtuais distribuídas geograficamente com o
objetivo de facilitar a submissão de aplicações dos usuários. “Na Web o usuário dispõe de um
menu de serviços fechados.” (DANTAS, 2005a).
“O que ocorre em um ambiente de grid é o inverso, onde o usuário tem de submeter
suas aplicações para serem resolvidas dentro do ambiente por ele montado.” (PITANGA,
2004).
Uma outra diferença seria que "a conexão a Internet é necessária apenas no momento
de envio e recepção dos pacotes, permitindo o processamento desconectado.”
(BOMBONATO, 2004).
Em uma outra escala, (FOSTER, 2002) também mostra que a Web não é - pelo menos
ainda - um Grid, pois apesar de ser aberto, utilizar protocolos de propósito gerais que
suportam o acesso a recursos distribuídos, mas estes, não são feitos de forma coordenada com
interesse na qualidade de serviços.
Vale ressaltar que o problema real e específico que está por traz do conceito de Grid é
"coordenar o compartilhamento de recursos e resolver problemas em uma organização
virtual dinâmica e multi-institucional". O compartilhamento exposto não é unicamente troca
de arquivos, mas acesso direto a computadores, software, dados e recursos. E, a série de
indivíduos e/ou instituições definidas pelas regras de compartilhamento formam o que nós
chamamos de organização virtual (virtual organization - VO). (FOSTER, 2002).
“Chamamos de Organização Virtual (VO) quando temos participantes que desejam
compartilhar recursos para poder concluir uma tarefa.” (PITANGA, 2004).
Porém encontramos iniciativa que busca a integração de soluções grid e serviços web,
através das Services Grids.
50
Com Web Services implementamos uma visão arquitetônica que é denominada SOA (Service Oriented Architecture), que permite que uma aplicação seja composta por componentes independentes, distribuídos e cooperativos. Esta visão é compartilhada pelos conceitos de Grid. (CHEDE, 2004).
A Open Grid Standards Architecture (OGSA), em conjunto com comunidades
cientifica e indústrias, é responsável por criar padrões abertos para desenvolvimento de
ferramentas para o Service Grid.
O que a OGSA está tentando fazer, basicamente, é harmonizar o trabalho sendorealizado para desenvolver o Globus Toolkit – primeiramente, uma iniciativa acadêmica, com os chamados "Web Services", os quais a indústria está impulsionando a fim de prover um padrão comum para serviços oferecidos sobre a World Wide Web. Companhias como IBM, Microsoft, Platform, Sun, Avaki, Entropia, e United Devices têm expressado forte apoio a OGSA. (MENEGOTTO, 2004).
4 CONFIGURAÇÕES DE UMA ARQUITETURA UTILIZANDO OS CONCEITOS DE GRID COMPUTING
Enquanto fazíamos um paralelo da tecnologia grid com sistemas com alguns pontos
em comum, pudemos conhecer atributos que caracterizam uma grid, são eles: distribuição
geográfica dos sistemas, exigindo recursos para o gerenciamento das operações entre
máquinas distantes; heterogeneidade; Compartilhamento que permita a não dedicação do
sistema a uma única aplicação; Escalabilidade que permita a sua dinamicidade; adaptabilidade
para que seja capaz de se auto-reconfigurar quando um nó se tornar indisponível. (CIRNE,
2004; CHEDE, 2004).
A tecnologia empregada para a implementação de uma grid espera que esses atributos
possam se apresentar de forma eficiente durante as interações realizadas entre os diversos
51
componentes da arquitetura grid. “A base de uma Grid é a capacidade de interoperabilidade
entre seus componentes.” (CHEDE, 2004).
A falta de alguns desses atributos pode não existir e segundo Cirne (2004), isso não
deve descaracterizar a grid.
[...]esta discussão propõe um conceito e não uma definição para Grid Computacional. Uma plataforma para execução de aplicações paralelas que apresenta as características acima listadas certamente é um Grid. Mas a ausência de alguma das características não deve automaticamente desqualificar uma determinada plataforma como Grid. (CIRNE, 2004).
Ainda, segundo Goldchleger e Kon (2005), a grid apresenta as seguintes
características:
Não substituem sistemas operacionais - nos sistemas distribuídos era
necessário um sistema operacional próprio, já na grid não acontece a
substituição dos sistemas operacionais das máquinas. Isso acontece devido
ao uso de um middleware5 que "prove serviços para os usuários e
aplicações da grade." (Goldchleger; Kon, 2005).
Podem integrar recursos distribuídos e descentralizados - ou seja,
existem vários domínios administrativos que possuem controle local.
Podem ser utilizados por diversas aplicações - "alguns sistemas
provêem suporte as diferentes classe de aplicações, como aplicações
seqüências e paralelas". (Goldchleger; Kon, 2005).
Podem incluir várias plataformas de hardware e software - para isso é
preciso que existam mecanismos para lidar com esta diversidade. “Apesar
de poderem utilizar algumas interfaces padronizadas presentes na maioria
5 Camada formada por um conjunto de softwares capazes de “integrar os diversos recursos computacionais do Grid em uma estrutura coerente.” (MENEGOTTO, 2005).
52
dos sistemas operacionais, algumas informações só podem ser obtidas
através de mecanismos específicos de cada plataforma”. (Goldchleger;
Kon, 2005).
Adaptabilidade às políticas locais - “o administrador do domínio apesar
de compartilhar os recursos com outros domínios, deseja priorizar os
usuários locais" (Goldchleger; Kon, 2005), portanto, o usuário espera que
sua máquina não perca performance.
Complementando e reforçando a característica de Grid Computing, citamos Ian Foster
(FOSTER, 2002) e seu “checklist” para auxiliar na definição de um sistema grid:
1) Recursos coordenados que não se sujeitam a um controle centralizado - (Sistemas em Grid integra e coordena recursos e usuários que vivem no interior de diferentes domínios de controle, por exemplo: o desktop do usuário vs um computador central, existem em diferentes unidades administrativas na mesma empresa ou em diferentes empresas, dirigido a política de segurança, salário, títulos e por ai vai de acordo com este ambiente. De qualquer forma, nós estamos lidando com um sistema de gerenciamento local)
2) Utilizar padrões, abertos e com interfaces e protocolos de propósito geral - (Sistemas em Grid são construídos de protocolos e interfaces de propósito geral que se dirige à um fluxo fundamental como a autenticação, autorização, descobrimento de recursos e aceso a recursos. É importante que estes protocolos ou interfaces sejam padronizados e abertos. De outra forma, nos estaremos lidando com um sistema de aplicação específica.
3) Prover o mínimo em qualidade de serviços - (Sistemas em Grid permitem que os recursos do cliente sejam utilizados em uso coordenado para entregar várias qualidades de serviço, relatando, por exemplo, o tempo de resposta, throughput, disponibilidade, segurança e/ou a recolocação de múltiplos tipos de recursos para se adequar às complexas exigências do usuário, logo, a utilidade de um
53
sistema combinado é significativamente maior que a soma das partes). 6 (FOSTER, 2002, tradução nossa).
Para alcançar os objetivos proposto pela Grid Computing, é preciso facilitar as tarefas
dos usuários e desenvolvedores de aplicações através de uma camada de abstração “que
encapsula a complexidade da infra-estrutura distribuída, a qual potencialmente inclui recursos
presentes em diferentes localizações geográficas.” (GOLDCHLEGER; KON, 2005).
Esta camada de abstração é composta por protocolos que permite a interoperatividade
nas operações. “Para implementar as funcionalidades que permite interoperabilidade é
necessário criar uma série de protocolos e mecanismos (serviços) de que permitam aos
usuários acessarem sistemas distribuídos por outros locais.” (CHEDE, 2004).
Porém a grid sob diferentes abordagens podem implementar diferentes modelos de
abstração para atender as exigências de um determinado projeto. E segundo
(GOLDCHLEGER; KON, 2005) os sistemas em grade podem ser divididos em duas
categorias: uma que ofereça alto desempenho, e outra que têm a função de integrar recursos
com baixo custo, não preocupando com detalhes referentes a alto desempenho.
Os sistemas de Computação em Grade podem ser divididos em duas grandes categorias. Alguns sistemas visam principalmente a integração de recursos computacionais de alto desempenho. Tais sistemas tendem a oferecer uma ampla gama de funcionalidades, como monitoramento de recursos, integração de computadores pertencentes a diversos domínios administrativos, e suporte a diversas categorias de aplicações paralelas. Entretanto, tais sistemas demandam uma implantação complexa, requerendo intervenções dos administradores de rede, além de equipamentos de alto custo. A segunda categoria objetiva integrar recursos
6 1) coordinates resources that are not subject to centralized control(A Grid integrates and coordinates resources and users that live within different control domains—for example, the user’s desktop vs. central computing; different administrative units of the same company; or different companies; and addresses the issues of security, policy, payment, membership, and so forth that arise in these settings. Otherwise, we are dealing with a local management system.)
2) using standard, open, general-purpose protocols and interfaces (A Grid is built from multi-purpose protocols and interfaces that address such fundamental issues as authentication, authorization, resource discov-ery, and resource access. As I discuss further below, it is important that these protocols and interfaces be stan-dard and open. Otherwise, we are dealing with an application specific system.)
3) to deliver nontrivial qualities of service. (A Grid allows its constituent resources to be used in a co-ordinated fashion to deliver various qualities of service, relating for example to response time, throughput, avail -ability, and security, and/or co-allocation of multiple resource types to meet complex user demands, so that the utility of the combined system is significantly greater than that of the sum of its parts.)
54
computacionais de baixo custo, tais como computadores pessoais. Tais sistemas possuem implantação simplificada, porém oferecem funcionalidades limitadas. Em alguns casos, não possuem monitoramento de recursos, ou não permitem a execução de aplicações paralelas que demandam comunicação entre seus nós, o que impede sua utilização por determinadas categorias de aplicação. (GOLDCHLEGER; KON, 2005).
Como exemplo de computação em grade com baixo custo, podemos citar o projeto
InteGrade, que procurar aproveitar o tempo ocioso das máquinas utilizando de recursos
computacionais de baixo custo.
O InteGrade é um projeto desenvolvido conjuntamente por pesquisadores de três instituições: Departamento de Ciência da Computação (IME-USP), Departamento de Informática (PUC-Rio) e Departamento de Computação e Estatística (UFMS).[...]O Projeto InteGrade [33, 21] objetiva construir um middleware que permita a implantação de grades sobre recursos computacionais não dedicados, fazendo uso da capacidade ociosa normalmente disponível nos parques computacionais já instaladosO InteGrade possui arquitetura orientada a objetos, onde cada modulo do sistema se comunica com os demais a partir de chamadas de método remotas. O InteGrade utiliza CORBA [27] como sua infra-estrutura de objetos distribuídos, beneficiando-se de um substrato elegante e consolidado, o que se traduz na facilidade de implementação, uma vez que a comunicação entre os módulos do sistema é abstraída pelas chamadas de método remotas. (Goldchlegery, Kon, 2005).
A respeito do uso de componentes combinados sob a estrutura grid, Chede (2005)
afirma que “a tecnologia por trás da Grid Computing é um conjunto de softwares midlleware
que gerenciam recursos distribuídos e espalhados pela organização, disponibilizando como
recursos os servidores e eventualmente os desktops da empresa.” (CHEDE, 2004).
Quanto ao desempenho segundo Santos (2005b) temos que:
No ambiente de computação em grade, os protocolos priorizam, normalmente, uma alta taxa de desempenho sustentável em detrimento a uma baixa latência de comunicação. As operações críticas envolvem um grande volume de dados, onde um pequeno atraso no início da transferência não compromete a operação de um modo geral.
A estrutura de Grid Computing se apresenta na maioria das vezes como um ambiente
capaz de integrar recursos heterogêneos. Mas quais as implicações decorrentes desta
integração?
55
“Um grande desafio é obter uma forma de encapsular estas diferenças sem
comprometer a boa performance”. (COLVERO; DANTAS; CUNHA, 2005).
A busca por padronização tentar enfrentar este desafio.
A visão da grade requer os protocolos (e relações e políticas) que estão não somente abertos e de uso geral, mas também padrão. São os padrões que permitem que nós estabeleçam arranjos de resource-sharing (distribuição de recursos) dinamicamente com todo o partido interessado e criar assim algo mais do que um plethora de balkanized, sistemas distribuídos incompatíveis, non-interoperable. Os padrões são também importantes como meios de permitir serviços de uso geral e ferramentas. (Foster, 2002b, tradução nossa). 7
Sem estas normas, os serviços prestados podem ser ineficazes. Entretanto, apesar de não existir uma formalização mundial, existem dois modelos apresentados, que têm boa aceitação na comunidade científica e que podem se tornar padrões (de facto ou de direito) de uma arquitetura de grid. (COLVERO; DANTAS; CUNHA, 2005).
Estes dois modelos são apresentados a seguir:
7 The Grid vision requires protocols (and interfaces and policies) that are not only open and general-purpose but also standard. It is standards that allow us to establish resource-sharing arrangements dynamically with any interested party and thus to create something more than a plethora of balkanized, incompatible, non- The Grid vision requires protocols (and interfaces and policies) that are not only open and general-purpose but also standard. It is standards that allow us to establish resource-sharing arrangements dynamically with any interested party and thus to create something more than a plethora of balkanized, incompatible, non-interoperable distributed systems. Standards are also important as a means of enabling general-purpose services and tools.
56
Figura 12: Modelo em Camada 1 Figura 13: Modelo em Camadas 2Fonte: (COLVERO; DANTAS; CUNHA, 2005). Fonte: (COLVERO; DANTAS; CUNHA, 2005).
Apresentando uma visão geral da Figuras 12, encontramos em Chede (2004) e Dantas
(2005a) as seguintes descrições de cada camada:
Rede – “a camada mais baixa é constituída de pelos elementos básicos que
são os recursos computacionais, como servidores, PCs e seus sistemas
operacionais.” Em DANTAS (2005a), encontramos que “o nível de rede é
a base da conectividade para os recursos de grid.”
Recursos – “constituído pelo conjunto de recursos que fazem do grid,
incluindo servidores primários e dispositivos de armazenamento.”
(DANTAS, 2005a).
Middleware – Para Chede (2004) esta camada “oferece serviços básicos
como gestão de recursos distribuídos”. De uma maneira mais ampla temos
que “diversos protocolos e funções devem existir na camada de
middleware para o suporte dos elementos heterogêneos de uma
configuração grid.” (DANTAS, 2005a).
Aplicações e serviços – “onde estão os portais de acesso e os programas
que exploram a potencialidade das Grids.” (CHEDE, 2004). “A porção de
serviços deve prover diversas funções de gerenciamento, incluindo
faturamento, contabilidade e medidas de métricas utilizáveis.” (DANTAS,
2005a).
Na Figura 13, a abordagem é mais genérica. Na camada “Ambiente” preocupasse com
o monitoramento para garantir a qualidade de serviço. A camada acima conhecida como
“Serviços de Conectividade” define os protocolos básicos de comunicação e autenticação.
Continuando, temos a camada “Serviços de Recursos”, com protocolos de autenticação e
57
comunicação definindo protocolos e APIs (Apllication Programing Interface) para prover
segurança na negociação. A próxima camada, “Serviços de Conectividade”, diferentemente da
camada “Serviços de Recursos”, lida com a interação entre coleções de recursos. E por
último, temos a camada “Aplicação”, que representa as aplicações dos usuários que “operam
no ambiente de organização virtual.” (DANTAS, 2005a).
Os modelos em camadas têm a função de oferecer ao usuário acesso transparente ao
sistema, deixando a cargo do próprio sistema diversas tarefas como: sincronização de tarefas,
disponibilidade de recursos (processadores, armazenamento, compartilhamento de dado),
transferência de informações, protocolos de comunicação e segurança. Neste caso, “o sistema,
seria visto pelo usuário, como um supercomputador virtual.” (PITANGA, 2004).
1.4 COJUNTOS DE SOFTWARES E FERRAMENTAS UTILIZADAS PELA GRID
Não existe uma classificação oficial dos softwares que podem ser utilizados na
composição de Grid Computing. Porém encontramos em algumas bibliografias os seguintes
ambientes de software ou ferramentas - MPI, PVM, Middleware, RMS, dentre outras –
presentes na configuração de diversos Grids Computing.
Dantas (2005a) propõe uma categorização geral para entendimento dos ambientes de
softwares, dividindo eles em:
Ambiente de Programação – Web Services, PVM e MPI.
Ferramentas – RMS (Resource Management and Systems – Sistemas
Gerenciadores de Tarefas e Recursos)
Middleware – Sistema de Imagem Única. Middleware de Grid (Globus e
58
Legion).
“A classificação é apenas uma proposta de organização funcional dos ambientes de
software que empregamos nas configurações dos clusters e grids computacionais.”
(DANTAS, 2005a).
Apresentando uma visão geral dos softwares utilizados, citamos abaixo aqueles que
são amplamente utilizados durante a configuração de Grid Computing. Descrevendo de
maneira simplificada as contribuições que estes softwares e/ou conjunto de softwares
oferecem aos sistemas grid.
1.4.1 PVM (Parallel Virtual Machine) e MPI ( Message Passing Interface)
De acordo com Feitas (2004) MPI e PVM são ferramentas baseadas no método
“Message Passing” (Passagem de Mensagem) e completa dizendo que:
O Message Passing é o método de comunicação baseada no envio e recebimento de mensagens através de uma rede de computadores seguindo regras de protocolo de comunicação entre vários processadores que possuam memória própria. Os processos possuem acesso à memória local. As informações são enviadas da memória local do processo para a memória local do processo remoto. Nesse modelo, o programador é responsável pela sincronização das tarefas.
Aplicações típicas que se beneficiam dessas fermentas são as aplicações paralelas.
Uma aplicação paralela é composta por várias tarefas. As tarefas que compõemuma aplicação paralela executam em vários processadores, caracterizando desta forma o paralelismo da execução da aplicação e conseqüente redução no seu tempo de execução.Os processadores usados por uma determinada aplicação constituem a plataformade execução da aplicação. (CIRNE, 2004).
Uma aplicação escrita utilizando-se de algoritmos e técnicas de programação
59
paralela pode ser dividida em partes menores e estes podem ser separados e processados independentemente. Cada uma dessas partes de código ser executadas em uma máquina distinta no Grid, melhorando a performance. (MINETTO, 2004).
PVM
“O PVM é mais antigo que o MPI, tendo surgido em 1989 nos laboratórios da Emory
University e Oak Ridge National Laboratory, onde nasceu com o objetivo de criar e executar
aplicações paralelas em um hardware já existente.” (FREITAS, 2004).
“Pacote de softwares que permite a execução de sistemas operacionais tais como Unix
e/ou Windows em um conjunto de computadores heterogêneos, possibilitando esses serem
agregados de uma rede e utilizados como um único e grande computador paralelo”. (Dantas,
2005a).
O ambiente PVM é bastante utilizado em ambientes de clusters e grids computacionais, uma vez que nessas configurações a grande quantidade de recursos pode ser agregada de uma maneira produtiva e prover para os usuários de aplicações uma forma eficiente de execução de suas tarefas. (Dantas, 2005a).
MPI ( Message Passing Interface)
“O padrão, denominado de MPI, foi um esforço conjunto de um grupo composto por
empresas envolvidas na comercialização de produtos de alto desempenho (HPC - High
Performance Computing), universidades e centros de pesquisa que utilizam massivamente
60
aplicações distribuídas paralelas.” (DANTAS, 2005a).
“Como características pode-se citar a eficiência, pois foi projetado para executar
eficientemente em máquinas diferentes. É especificado somente o funcionamento lógico das
operações.” (FREITAS, 2004).
“O grid permite o uso de técnicas de programação paralela por passagem de
mensagens. O ambiente MPI (Message Passing Interface) está disponível no Grid através da
versão MPICH-G2 (versão portátil do MPI para o Globus). O padrão MPI define uma
biblioteca de rotinas que implementa uma comunicação ponto a ponto, em que a operação
“send” é usada para iniciar uma transferência de dados entre dois programas concorrentes e a
operação “receive” é usada para obter dados do sistema no espaço de memória da aplicação;
existem ainda operações coletivas envolvendo múltiplos processos. Mas que devido a alta
latência provocada na comunicação entre processos, as aplicações mais adequadas ao Grid são
as que possuem tarefas independentes (bag of task), pois as tarefas não dependem da
execução de outras e podem ser executadas em qualquer ordem.” (PITANGA, 2004).
Para enfrentar os problemas das aplicações em sistemas de computação em grade, e
permitir que aplicações existentes sejam executadas em ambientes grid sem precisar passar
por grandes modificações, “cria-se uma biblioteca que possua as mesmas interfaces de uma já
existente fora do contexto da grade, dentre as quais podemos citar MPI, PV, BSP e CGM,
entre outros.” (GOLDCHLEGER; KON, 2005).
1.4.2 Ferrramenta RMS (Resource Management and Systems – Sistemas Gerenciadores de Tarefas e Recursos)
“Tem seu foco principal voltado para a gerência das tarefas e recursos
61
geograficamente distribuídos nas configurações dos clusters e grids computacionais”.
(DANTAS, 2005a).
Na migração de processos de aplicações paralelas e distribuídas, o RMS oferece
diversos serviços. Entre eles temos: suporte a sistemas operacionais heterogêneo,
balanceamento de carga, limite ao número de tarefas executadas em um determinado período,
interface gráfica amigável ao usuário. (DANTAS, 2005a).
1.4.3 Middleware
“O objetivo do middleware é organizar e integrar os diversos recursos computacionais
do Grid em uma estrutura coerente.” (MENEGOTTO, 2005).
O middleware é composto por muitos programas distintos. Alguns destes programas atuam como “agentes” e outros como “brokers”, acordando a troca de recursos automaticamente em benefício dos usuários e provedores de recursos do Grid. Agentes individuais continuamente apresentam metadados sobre usuários, dados e recursos. Brokers realizam negociações entre máquinas requeridas para autenticação e autorização de usuários e então emitem “acordos” para o acesso a dados e recursos específicos e respectivo pagamento. (MENEGOTTO, 2005).
Globus
Considerado como um dos projetos de maior impacto na área de Computação em
Grade, o Globus tem como principal foco do projeto, a integração de recursos computacionais
de alto desempenho. (GOLDCHLEGER; KON, 2005).
Possui um dos pacotes mais completos, oferecendo um ambiente de software com
objetivo de prover formas de construção de infra-estruturas de configurações de grid, além de
62
fornecer suporte ao projeto, desenvolvimento e implementação de aplicações nas áreas de
eScience e eBusiness. (GRIDBUS apud DANTAS, 2005a)
“Consiste de um conjunto de serviços que facilitam computação em grade.”
(FOSTER, 1998).
“Esses serviços podem ser usados para submissão e controle de aplicações,
descobertas de recursos, movimentação de dados e segurança na grade.” (GÓES et al., 2005).
O Quadro 4, abaixo lista os serviços oferecidos e suas respectivas funcionalidades.
Serviço FuncionalidadeGSI Segurança, autenticação única na gradeGRAM Submissão e controle de tarefasNexus Comunicação entre tarefasMPI-G MPI sobre NexusMDS Informações e diretóriosGASS Transferência de arquivosGridFTP Transferência de arquivos
Quadro 4: Serviços e funcionalidades do Globus.Fonte: (GÓES et al., 2005).
Legion
É um projeto teve início em 1993 da University of Virginia, e tem como base o estudo
de sistemas para execução de aplicações paralelas, segurança em redes, escalabilidade,
tolerância à falhas, autonomia no processamento dos dados. (LEGION, 2006).
63
Objetivou a construção de um sistema de Computação em Grade totalmente orientado
a objetos. Construiu uma infra-estrutura baseada em Objetos Núcleo. (GOLDCHLEGER;
KON, 2005).
“O Legion é projetado para suportar alto grau de paralelismo no código da aplicação e
controlar as complexidades do sistema físico para o usuário8.” (LEGION, 2006, tradução
nossa).
GridBus
“O projeto cunhado pela palavra GRID e BUSiness visa criar tecnologias que possam
dar suporte às novas abordagens de grid computacional e negócios.” (DANTAS, 2005a).
Um dos elementos interessantes que compõe o GridBus é o GridBank.
Baseado no “Grid Architecture for Computational Economy” (GRACE) o GridBank é o gerenciador de contabilidade dos recursos oferecidos no Grid. O GridBank mantêm um controle dos recursos usados por cada usuário e um registro de uso dos recursos em um banco de dados relacional. O GridBank foi desenvolvido com o objetivo de prover serviços para permitir o desenvolvimento de serviços que exploram a economia computacional em Grid. Ele pode ser visto como um web service para a contabilidade do Grid e pagamentos. (VINOD, 2004)
Condor
“Sistema que objetiva fornecer grande quantidade de poder computacional a médio e
longo prazo utilizando recursos ociosos na rede. Autores do sistema salientam insistentemente
8 Legion is designed to support large degrees of parallelism in application code and manage the complexities of the physical system for the user.
64
que o Condor tem como objetivo a alta vazão (high throughput) e não alto desempenho.”
(GÓES et al., 2005).
Este sistema usa aplicações independentes (bag-of-tasks).
MyGrid
Segundo (GOLDCHLEGER; KON, 2005) o MyGrid é conhecido pela sua facilidade
de instalação, requerendo apenas alguns módulo e permite a execução de aplicações do tipo
bag-of-tasks não permitindo aplicações que exijam comunicação entre os nós. No entanto,
perde uma característica importante: monitoramento de recursos e o “escalonamento de
tarefas em aplicações bag-of-task é difícil devido ao comportamento dinâmico do recursos em
um ambiente em grade.” (GERPAVGRID..., 2005).
Por tratar exclusivamente aplicações independentes, o MyGrid apresenta facilidades para tratar aplicações envolvendo mineração de dados, processamento de dados para engenharia genética, pesquisa massiva (com quebra de chaves criptográficas), simulações Monte Carlo e manipulação de imagens, por exemplo, por se adequarem melhor a heterogeneidade, dinamicidade e dispersão geográfica. (GÓES et al., 2005).
Em contra partida temos o OurGrid: “rede de compartilhamento peer-to-peer que
utiliza um modelo de rede de favores [...] desta forma, um peer sempre prioriza a
disponibilização de recursos àqueles que possuem um crédito maior.”
OurGrid é uma extensão de MyGrid que permite o compartilhamento de recursos computacionais em uma rede Peer-to-Peer. Dessa maneira, a integração de recursos passa a ser maior, uma vez que é possível integrar recursos pertencentes a diversos indivíduos e instituições. (GOLDCHLEGER; KON, 2005).
65
5 EXEMPLO DE PROJETOS
BOINC (Berkeley Open Infrastructure for Network Computing)
Voltado para atender as necessidades da computação filantrópica, esse projeto possui
uma arquitetura simples.
No lado servidor há um banco de dados relacional que armazena informações referentes a cada projeto [...] e no lado cliente é representado por um código central que é comum a todos os projetos, com as interfaces com o sistema servidor, e os códigos específicos de cada projeto, como algoritmos para resolução de problemas. (CHEDE, 2004).
Para resolver problemas quanto à disponibilidade, o BOINC “implementa uma API
para função de checkpoint, que permite que o estado de execução da aplicação seja salvo e
retomado mais adiante, no mesmo ponto em que foi interrompido”. (CHEDE, 2004).
TERAGRID
66
Criado pelo Argonne National Laboratory, este projeto é reconhecido com um dos
maiores no momento.
Permite a integração “entre oito centros de estudos americanos [...] o poder de
processamento é impressionante, permitindo operações de 20 trilhões de pontos flutuantes por
segundo e acesso a um petabyte de dados.” (CHEDE, 2004).
EUROGRID
Tem o objetivo de estabelecer uma rede grid européia entre os centros de pesquisa,
através da Internet que ofereça acesso por demanda e segurança par aos usuários.
Entre seus subprojetos encontra-se o BioGrid, com foco no desenvolvimento de pesquisas biomoleculares; MeteoGrid, para pesquisas meteorológicas; CAEGrid, para desenvolvimento de projetos de engenharia baseada em Computer Aided Engineering; e HPC Research Grid, para atividades não cobertas pelos projetos anteriores, como simulações físicas. (CHEDE, 2004)
“No Brasil temos algumas iniciativas como os projetos GridRio, envolvendo
instituições acadêmicas no Estado do Rio de Janeiro, CENAPAD, CBF e LNCC, além de
projetos em diversas faculdade”. (CHEDE, 2004).
Como exemplos em faculdades podemos citar o TopGrid, que vem sendo
desenvolvido pela Universidade Federal da Bahia que tem empregado as funcionalidades do
projeto OurGrid, mencionado anteriormente, tendo como foco a “criação de tecnologias que
viabilizassem o uso de grid de uma forma mais rápida e direta possível [...] e desenvolvimento
67
de sistemas capazes de interagir com o padrão OGSA (Open Grid Service Architecture).”
(UNIVERSIDADE FEDERAL DE CAMPINA GRANDE, 2005).
6 ESTUDO DE CASO
O objetivo desse estudo de caso é apresentar de maneira simplificada, as implicações
no uso de arquiteturas com múltiplos processadores com o intuito de executar uma aplicação
que dependa de altas taxas de processamento para que o resultado se apresente o mais rápido
possível para o usuário.
Durante sua aplicação utilizamos ferramentas e conceitos advindos dos ambientes de
Grid Computing. Realizamos testes entre dois laboratórios para conhecermos quais seriam os
resultados alcançados quando a comunicação entre os processos depende de dispositivos de
rede.
Aproveitamos o tempo ocioso de dois laboratórios de informática da Pontifícia
Universidade Católica de Minas Gerais, campus Betim, cada um com 20 computadores
pessoais com sistemas operacionais homogêneos e componentes de hardwares idênticos.
Características dos computadores no Laboratório 01 – memória RAM de 256 MB, HD
68
de 40 GB, S.O. Windows 2000 Service Pack e processador Pentium 1.8 Ghz.
E no Laboratório 02, temos – memória RAM de 256 MB, HD de 40 GB, S.O.
Windows 2000 Service Pack e processador Pentium 2.6 Ghz.
Dispositivo de interconexão – Switch 3Com gerenciável família 4400 10/100 bps.
A aplicação usada nos teste é o NAMD para uso de código molecular paralelo. Nos
testes obtemos o tempo estimado para completar o processamento durante a execução de um
modelo computacional da proteína conhecida como Espícula de Corona Vírus,
matematicamente representado por uma grafo com aproximadamente 8 mil vértices (átomos)
e arestas (bonds).
Através da alocação de um número variável de máquinas chegamos aos seguintes
resultados:
Info: STRUCTURE SUMMARY:Info: 8341 ATOMSInfo: 8447 BONDSInfo: 15103 ANGLESInfo: 22197 DIHEDRALSInfo: 1464 IMPROPERSInfo: 0 EXCLUSIONSInfo: 4089 RIGID BONDSInfo: 20934 DEGREES OF FREEDOMInfo: 4252 HYDROGEN GROUPS
Teste
Num MaqsMem Exec[kb] [s/passo]
Lab1 Lab2 100 200 300 400 500 6001 1 0 200167 1,08810 1,06589 1,05326 1,03788 1,02318 1,018032 2 0 95507 0,80417 0,79610 0,78667 0,77518 0,76420 0,760353 3 0 69465 0,70358 0,69810 0,67616 0,67406 0,67142 0,670574 4 0 55261 0,52027 0,51318 0,49122 0,49006 0,48790 0,486065 5 0 45356 0,45576 0,45398 0,45223 0,45101 0,45095 0,446806 1 1 92419 0,81686 0,80944 0,80368 0,79701 0,79691 0,789567 1 2 67219 0,71467 0,70980 0,69633 0,69304 0,70016 0,690798 1 3 65893 0,58411 0,57465 0,55058 0,54791 0,54699 0,544819 1 4 54082 0,51168 0,50835 0,50688 0,50425 0,50355 0,50281
Tabela 1: Consumo de Memória e Tempo de Execução
69
Fonte: Dados do Estudo de Caso
Teste
Estimativa Tempo Execução SpeedUp Rendimento[dias / nanoseg]
100 200 300 400 500 600 1 6,29688 6,16837 6,09525 6,00622 5,92119 5,89137 0% 0%2 4,65377 4,60706 4,55245 4,48595 4,42245 4,40017 34% 67%3 4,07162 4,03994 3,91299 3,90080 3,88553 3,88061 52% 51%4 3,01083 2,96981 2,84272 2,83600 2,82352 2,81283 109% 52%5 2,63750 2,62718 2,61706 2,61001 2,60969 2,58562 128% 46%6 4,72718 4,68428 4,65094 4,61234 4,61177 4,56924 29% 64%7 3,49367 3,49862 3,47372 3,44489 3,44446 3,41269 47% 49%8 3,38026 3,32553 3,18625 3,17080 3,16545 3,15282 87% 47%9 2,96112 2,94186 2,93332 2,91813 2,91405 2,90976 102% 40%
Tabela 2: Estimativa de Tempo de Execução.Fonte: Dados do Estudo de Caso
Realizamos nove testes no total. Em cada um deles utilizamos a ferramenta MPI para
interação entre os nós colaborativos. E através do software tivemos os resultados referentes ao
tempo estimado por cada passo de interação, uso de memória, SpeedUp (velocidade de
processamento) e rendimento esperado, de acordo com o esforço dependido em cada
processamento, levando em conta fatores como distância, troca de mensagens a cada interação
e recursos utilizados.
Graficamente, podemos observar mais claramente que o aumento de processadores
envolvidos no processo nem sempre representa um poder computacional totalmente envolvido
com a resolução da aplicação em si. Quando o número de nós aumenta, o tempo estimado de
processamento tende a aumentar, devido ao tempo despendido a cada etapa durante o
compartilhamento dos dados entre nós. Uma vez concluída esta tarefa, uma nova etapa se
inicia e cada nó volta a trabalhar localmente até que os resultados de todos os nós sejam
tratados novamente em conjunto.
70
Consumo de Memória
0
50.000
100.000
150.000
200.000
250.000
1 2 3 4 5
kb
processadores
Gráfico 1: Consumo de Memória.Fonte: Dados do Estudo de Caso,
SpeedUp
0%
20%
40%
60%
80%
100%
120%
140%
1 2 3 4 5
Lab1 Lab2 processadores
Gráfico 2: SpeedUPFonte: Dados do Estudo de Caso
71
Velocidade de Execução
0,000
0,200
0,400
0,600
0,800
1,000
1,200
1 2 3 4 5
s / passo
processadores
Gráfico 3: Velocidade de ExecuçãoFonte: Dados do Estudo de Caso
Observando os resultados dos testes nº 2 e nº 6, encontramos diferenças no consumo
de memória e tempo de execução a cada 100 interações. No teste nº 2 foram alocadas duas
máquinas em um mesmo laboratório e o consumo de memória foi maior do que no teste nº 6,
no qual utilizamos a comunicação entre dois computadores, sendo que cada um deles se
encontravam em laboratorios diferentes.
Contudo, o tempo de execução no teste nº 2 se apresenta como uma melhor solução,
permitindo agilidade superior na interação entre processos, devido a menor distância física
entre os nós, além de não depender de um dispositivo de rede entre eles para realizar a
comunicação.
No entanto, o melhor resultado foi apresentado quando utilizamos cinco computadores
no Laboratório 01 durante a aplicação do teste nº 5. Comparando com o teste nº 9 que utiliza
o mesmo número de computadores, mas alocando uma delas no Laboratório 02, verificamos
um maior de aproximadamente 2,7% no consumo de memória e uma diferença de 0,05 a 0,06
segundo referente ao tempo de processamento.
72
Quanto ao tempo estimado para a execução da aplicação, utilizamos a seguinte
fórmula para calculo do SpeedUp:
Speedup é = t(1)/t(n)
Onde t(1) é o tempo gasto para executar o programa em um processador; e t(n) é o
tempo gasto para executar o mesmo programa em "n" processadores.
Neste caso, os resultados foram mais significativos no teste nº 5, permitindo um
SpeedUp de 128%, quando comparada ao tempo de execução estimado de execução que uma
única máquina, com características de hardware e software semelhante aos computaodores
utilizados neste teste, precisaria para apresentar os resultados finais.
O rendimento alcançado nos testes realizados no Laboratório 01, apresenta resultados
superiores aos testes entre os dois laboratórios em comparação com os testes utilizando o
mesmo número de computadores. Por exemplo, no teste nº. 4 o rendimento foi de 52% e no
teste nº. 8 há uma queda de 5% devido ao uso de um nó no Laboratório 01 e três nós no
Laboratório 02.
Considerando a primeira etapa dos testes, utilizando o Laboratório 01 o rendimento cai
à medida em são acrescentados novos nós no sistema. Na etapa dois dos testes, com a
distribuição dos nós entre laboratórios observa que o rendimento também tende a cair com o
aumento do número de nós.
Ao final de todos os testes, pudemos observar que o agrupamento de recursos
computacionais, para resolver problemas que exijam grandes taxas de processamento e que
sejam dependentes entre si, necessitando troca de informações constantes depende muitas
vezes de um volume considerável de processamento para que possamos alcançar um retorno
eficiente dos resultados esperados utilizando tempo ociosos de PCs para viabilização de custo
do projeto.
73
7 CONCLUSÃO
Iniciando os estudos desta tecnologia, percebemos que o Grid Computing -
Computação em Grade - pode se apresentar futuramente como uma solução capaz de dispor
de recursos e serviços de uma maneira rápida e eficiente.
Partindo desse principio é que muitos projetos vêm sendo desenvolvidos, e
conseqüentemente novos conceitos e ferramentas vem sendo introduzidas na colaboração
deste novo paradigma computacional.
Os conceitos do Grid Computing foram apresentados por Ian Foster e Carl Kesselman,
tendo como base a arquitetura tradicional de Sistemas Distribuídos e de arquiteturas
74
conhecidas como Cluster, envolvendo diversos assuntos presentes em rede de computadores,
sistemas operacionais, processamento de dados e análise de desempenho.
A partir da participação de centros de pesquisa, do meio acadêmico e da participação
de empresas, diversas soluções vêm sendo desenvolvidas para aplicação dos conceitos da
Grid Computing em projetos específicos.
Porém, é preciso que aja padronização das diversas ferramentas utilizada em para que
esta tecnologia possa ser incorporada a Internet, integrando de maneira abrangente os serviços
e recursos dispersos pela rede.
Os principais resultados encontrados atualmente estão presentes no campo cientifico,
mostrando que com a computação filantrópica é possível agregar máquinas de baixo custo
para alcançar o poder computacional desejado.
No campo empresarial, os conceitos de Grid Computing são tratados levando em
consideração a adoção de ferramentas capazes de atender as necessidades por segurança,
eficiência, flexibilidade e disponibilidade.
Através do estudo de caso aplicado, pudemos perceber o comportamento das redes
com múltiplos processadores concebidas sob o conceito de sistemas fracamente acoplados,
conhecendo os pontos positivos e negativos durante a adoção de sistemas projetados sobre
esta concepção, mostrando que de acordo com as características da aplicação utilizada, dos
resultados pretendidos, e dos recursos disponíveis, sistemas grid podem não se apresentar
como uma solução interessante devido ao esforço computacional dependido na comunicação
entre os recursos agrupados.
Grid Computing, como toda nova tecnologia precisa passar por mudanças para que
seus conceitos possam se estabelecer e apresentar benefício à sociedade, oferecendo suporte a
pesquisas para descoberta de vacinas no tratamento de doenças e viabilizar o estudo de
projetos voltados no compartilhamento de recursos e serviços, integrando sistemas
75
heterogêneos e dispersos para troca de conhecimento e para o processamento de aplicações
que necessitam de um elevado poder computacional, disponibilidade, confiabilidade e
escalonamento dinâmico, por exemplo.
A exposição do tema no meio acadêmico auxilia o seu entendimento e conhecimento
das perspectivas futuras, além de incentivar o estudo de sistemas computacionais enquanto
esforços voltados ao desenvolvimento de novos projetos na área possam ser empreendidos.
8 Referências
CHEDE, César Taurion. Grid Computing: um novo paradigma computacional. Rio de Janeiro: Ed. Brasport, 2004. 146 p.
TANENBAUM, Andrew S.. Sistemas Operacionais Modernos. Rio de Janeiro: Ed. Prentice-Hall do Brasil, 1995. 493 p.
DANTAS, Mário. Computação Distribuída de Alto Desempenho: Redes, Clusters e Grids Computacionais. Rio de Janeiro: Ed. Axcel Books do Brasil, 2005a. 278 p.
MACHADO, Francis Berenger; MAIA, Luiz Paulo Maia. Arquitetura de Sistemas Operacionais. Rio de Janeiro: Ed. Livros Técnicos e Científicos, 2002.
DANTAS, Mário Antônio Ribeiro Dantas. Computação Distribuída de Alto Desempenho: Redes, Clusters e Grids Computacionais. In: IV Escola Regional de Informática de Minas Gerais, Campi PUC MINAS. Belo Horizonte: Instituto de Informática, 2005b. p. 363-373.
GÓES, Fabrício Wanderley; NETO, Dorgival Olavo Guedes; FERREIRA, Renato; CIRNE, Walfredo. Computação em Grade: Conceitos, Tecnologias, Aplicações e Tendências. In:
76
IV Escola Regional de Informática de Minas Gerais, Campi PUC MINAS. Belo Horizonte: Instituto de Informática, 2005. p. 375-414.
SANTOS, Luís Gustavo Loyola; CANGIANO, Sergio. Grid Computing: Elucidando os conceitos, Brasília, Tema nº 79, Maio/Junho de 2005. Tematec, p. 1-4.
VIDAL, Rodrigo; AVILA, Alisson. Soluções em TI na medida certa. Tecnológica, 10 nov. 2003. Disponível em <http://www.tecnologica.com.br/mercado.php?cod=44> Acesso em: 03 fev. 2006.
OLIVEIRA, Celso Henrique Poderoso. Utility Computing. Disponível em <http://www.fiap.com.br/portal/include/int_cda_conteudo_miolo_impressao.jsp:ID=74108.> Acesso em 03 fev. 2006.
GRADE simplificada: Uma grade leve para os que não têm acesso à computação. 12 fev. 2005. Disponível em <http://h41131.www4.hp.com/br/pt/feature_stories/ story2050.html ?PHPSESSID=5d3aac> Acesso em 03 fev. 2006.
MARQUES, Jeferson Roberto. KON, Fabio. Gerenciamento de Recursos Distribuídos em Sistemas de Grande Escala. Universidade de São Paulo - Departamento de Ciências da Computação; Instituto de Matemática e Estatística. Disponível em: <http://gsd.ime.usp.br> Acesso em: 03 fev. 2006.
LAGE, André. Projeto TopGrid – Confiança no Funcionamento de Grades Computacionais. Instituto de Matemática; Departamento de Ciências da Computação, Universidade Federal da Bahia. Salvador, 23 set. 2005. 26 slides: color. Disponível em <http://www.twiki.im.ufba/pub/Gaudi/ProjetoTopGrid/GrupoGaudi-andreLage-ApresentacaoMiddlewareDeGradePardir-2005-11-25.sxi>Acesso em 03 fev. 2006.
ANDRADE, Nazareno; ARAÚJO, Eliane; SANTOS, David. Requisitos para um Serviço de Descoberta no OurGrid. Disponível em: <http://www.ourgrid.org/twiki-public/bin/view/OG/OurDiscoveryServiceRequirementsPT> Acesso em 03 fev. 2006
STANTON, Michael. Mudanças de Paradigma. O Estado de São Paulo. São Paulo, 30 jun. 2004. Disponível em. <http://www.softwarelivre.ufsc.br/pipermail/gufsc/2004-July/000468.html> Acesso em 25 nov. 2005.
PITANGA, Marcos. Computação em Grade – Uma Visão Introdutória, 2004. Disponível em <www.clubedohardware.com.br/artigos/124 >Acesso em 25 nov. 2005.
MINETTO, Elton Luís. Grid Computing, fev. 2004. 19 slides: color. Disponível em http://www.unochapeco.edu.br/~elm/> Acesso em 24 nov. 2006.
AGENTES Inteligentes automatizam astronomia. Inovação Tecnológica, 24 nov. 2003. Disponível em <http://www.inovacaotecnologia.com.br/ noticia.php? artigo= 01013 0031024> Acesso em: 03 fev. 2006.
77
SANTOS, Luís Gustavo Loyola. CANGIANO, Sergio. Grid Computing: Elucidando os conceitos. Revista Tematec. Ano IX – Nº 79 – Maio/Junho de 2005.
DANTAS, Mário Antônio Ribeiro. Computação Distribuída de Alto-Desempenho: Rede, Clusters e Grids Computacionais. Minicurso – IV ERI-MG (Escola Regional de Informática de Minas Gerais). 19 a 23 de Setembro de 2005. Puc Minas.
VALIM, Carlos Eduardo. Grade de Processamento. InformationWeek Brasil, 03 jul. 2002. Disponível em: <www.telecomweb.com.br/noticias/artigo.asp?id=26618> Acesso em 04 fev. 2006.
FOSTER Ian, KESSELMA. Globus: A Metacomputing Infrastructure Toolkit.International Journal of Supercomputer Applications, 1998. p. 115-129.Disponível em <http://www.globus.org/toolkit/docs/4.0/security/GT4-GSI-Overview.pdf> Acesso em 12 jan. 2006.
FOSTER Foster, I - "What is the Grid? A Three Point Checklist”, 2002. Disponível em <http://www-fp.mcs.anl.gov/~foster/Articles/WhatIsTheGrid.pdf > Acesso em 15 jan. 2006.
SETI@home. About SETI@home. Mar. 2005. Disponível em <http://setiathome .ssl. berkeley.edu/ > Acesso em 02 fev. 2006.
LEGION. WorldWide Virtual Computer e pluribus unum: one out of many. Disponível em: <http://www.cs.virginia.edu/~legion/.> Acesso em 15 abr. 2006.
UFRGS. Organização de Computadores. Dez. 2005 . Disponível em <http://www.inf.ufrgs.br/ inf113/slides/aula22.pdf> Acesso em 26 abr. 2006.
NOVO protocolo permitirá “grid computing”, dez. 2005. Disponível em <http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=010150030205> Acesso em 04 fev. 2006.
GERPAVGRID - O que é Grid Computing? 20 dez. 2005. Disponível em <http://www.cpad. pucrs.br/gerpavgrid/grid_cp.jsp> Acesso em 04 fev. 2006
GOLDCHLEGER, Andrei; KON, Fabio. InterGrade: Middleware para Computação em Grade Oportunista. Universidade de São Paulo, Departamento de Ciência da Computação. Dissertação (Mestrado). Fev. 2005. Disponível em <http://gsd.ime.usp.br/ integrade> Acesso em 28 abr. 2006.
HEWLETT-PACKARD BRASIL COMPUTADORES LTDA. Resultado da Lei de Informática – Uma Avaliação – Parte 1 – Impactos no Segmento Industrial Sistemas e Periféricos, 2005 Disponível em < www.mct.gov.br/Sepin/ResultLei/HP.pdf> Acesso em 02 fev. 2006.
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE. Resultado da Lei de Informática – Uma Avaliação – Parte 2 – Ações nas Universidades, 2005. Disponível em < http://www4.mct.gov.br/upd_blob/1638.pdf>Acesso em 23 fev. 2006.
78
RIBEIRO, G. C.; OLIVEIRA, F. S. G.; SCHULZE. Implantação e Desenvolvimento de uma Grade Computacional. Coordenação de Ciências da Computação; Laboratório Nacional de Computação Cientifica, Rio de Janeiro. Disponível em <http://www.rnp.br/arquivo/wrnp2/2003/idgc01a.pdf> Acesso em 28 abr. 2006-05-14
DUARTE, Rui; GOUVEIA, Miguel; BARATA, Paulo; DAVID, Mário; CASTILLO-SANZ, Andrés. Perfis de Configuração em Grid Computing. Departamento de Ciências e Tecnologias da Universidade Autónoma de Lisboa; Laboratório de Instrumentação e Física Experimental de Partículas; Universidade Pontifícia de Salamanca.
CENTODUCATTE, Paulo César. UNICAMP, Instituto de Computação. Arquiteturas Avançadas de Computadores. Jan. 2004. Disponível em <www.ic.unicamp.br/~ducatte/ mo401/slides/fundamentos_1s06.pdf> Acesso em 20 fev. 2006.
COLVERO, Taís Appe; DANTAS, Mário; CUNHA, Daniel Pezzi da. Ambientes de Clusters e Grids Computacionais: Características, Facilidades e Desafios. 2005. Universidade Federal de Santa Catarina; Universidade do Extremo Sul Catarinense.
SANTANA, Regina Helena Carlucci; SANTANA, Marcos José; SOUZA, Márcio Augusto de; SOUZA, Paulo Sérgio Lopes de; PIEKARSKI, Ana Elisa Tozetto. Computação Paralela. São Carlos, Setembro de 1997. Disponível em <http://black.rc.unesp.br/gpacp/Bibliografia/A-01%2020Computa%C3%A7%C3%A3o %20Paralela%20-%20ICMC%20-%20USP%20-%20S%C3%A3o%20Carlos.doc> Acesso em 18 mar. 2006.
TEIXEIRA, Hugo Emanuel Gonçalves; BARROS, Maria João Almeida de Sá; COELHO, Paulo Jorge Marques. Clusters Beowulf. Faculdade de Engenharia da Universidade do Porto, Porto, 2000.
MEDEIROS, Pedro. Breve panorâmica da computação paralela e distribuída. 30 slides: color. Disponível em: <http://asc.di.fct.unl.pt/~pm/TACPD-04-05/ >Acesso em 12 mai. 2006.
BOMBONATO, Fábio. Computação em GRID:Uma Introdução. Jan. 2004 Disponível em: <http://www.geleira.org>.Acesso em 08 maio 2006.
SANTOS, André Luiz G. Dos. Cardoso, LEONARDO Xavier Teixeira. Computação em Grade. Universidade Federal Fluminense, maio 2005a. Disponível em <http://www.uff.br/> Acesso em 08 maio 2006.
VINOD, Rebello. Computação em Grade, 2004. Disponível em <http://www.ic.uff.br /~asantos/gridbus.pdf> Acesso em 20 mar. 2006.
SANTOS, Marcelo Nery dos. Computação em Grade: A Perspectiva do Gerenciamento de Dados. Departamento de Informática – PUC-Rio, Programa de Pós-Graduação em Informática, Julho / 2005b. Disponível em
79
<http://www-di.inf.puc-rio.br/~endler/semGSD/monografias/marcelo-nery.pdf>Acesso em 25 fev. 2006.
MENEGOTTO, Cristina Ciprandi. Computação em Grid. Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS). Jan. 2005. Disponível em< www.inf.ufrgs.br/~asc/sodr/pdf/SODRCristinaCiprandiMenegottov2.pdf>Acesso em 22 abr. 2006.
FREITAS, Evandro Luiz. Uma comparação entre os modelos de Message Passing MPI e PVM. Mar. 2004. Disponível em <http://www.inf.ufrgs.br/procpar/disc/cmp 134/trabs/T2/981/mpi.html> Acesso em 14 abr. 2006
80