Grid Computing

119
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS Sistemas de Informação GRID COMPUTING: CONCEITOS E APLICAÇÕES Jaqueline Henrique Pereira Costa

Transcript of Grid Computing

Page 1: 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

Page 2: Grid Computing

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

Page 3: Grid Computing

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

Page 4: Grid Computing

A meus pais e minhas irmãs,

Pelo apoio, dedicação e carinho em todos os momentos.

Page 5: Grid Computing

"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.)

Page 6: Grid Computing

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.

Page 7: Grid Computing

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.

Page 8: Grid Computing

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

Page 9: Grid Computing

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

Page 10: Grid Computing

TABELA 1 Consumo de Memória e Tempo de Execução.......................................................69

TABELA 2 Estimativa de Tempo de Execução.......................................................................69

LISTA DE SIGLAS

Page 11: Grid Computing

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

Page 12: Grid Computing

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

Page 13: Grid Computing

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

Page 14: Grid Computing

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

Page 15: Grid Computing

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

Page 16: Grid Computing

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

Page 17: Grid Computing

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

Page 18: Grid Computing

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

Page 19: Grid Computing

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

Page 20: Grid Computing

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

Page 21: Grid Computing

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

Page 22: Grid Computing

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

Page 23: Grid Computing

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

Page 24: Grid Computing

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

Page 25: Grid Computing

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

Page 26: Grid Computing

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

Page 27: Grid Computing

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

Page 28: Grid Computing

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

Page 29: Grid Computing

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

Page 30: Grid Computing

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

Page 31: Grid Computing

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

Page 32: Grid Computing

“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

Page 33: Grid Computing

“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

Page 34: Grid Computing

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

Page 35: Grid Computing

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

Page 36: Grid Computing

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

Page 37: Grid Computing

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

Page 38: Grid Computing

“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

Page 39: Grid Computing

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

Page 40: Grid Computing

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

Page 41: Grid Computing

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

Page 42: Grid Computing

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

Page 43: Grid Computing

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

Page 44: Grid Computing

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

Page 45: Grid Computing

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

Page 46: Grid Computing

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

Page 47: Grid Computing

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

Page 48: Grid Computing

“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

Page 49: Grid Computing

“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

Page 50: Grid Computing

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

Page 51: Grid Computing

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

Page 52: Grid Computing

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

Page 53: Grid Computing

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

Page 54: Grid Computing

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

Page 55: Grid Computing

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

Page 56: Grid Computing

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

Page 57: Grid Computing

“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

Page 58: Grid Computing

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

Page 59: Grid Computing

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

Page 60: Grid Computing

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

Page 61: Grid Computing

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

Page 62: Grid Computing

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

Page 63: Grid Computing

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

Page 64: Grid Computing

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

Page 65: Grid Computing

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

Page 66: Grid Computing

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

Page 67: Grid Computing

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

Page 68: Grid Computing

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

Page 69: Grid Computing

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

Page 70: Grid Computing

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

Page 71: Grid Computing

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

Page 72: Grid Computing

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

Page 73: Grid Computing

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

Page 74: Grid Computing

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

Page 75: Grid Computing

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

Page 76: Grid Computing

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

Page 77: Grid Computing

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

Page 78: Grid Computing

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

Page 79: Grid Computing

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

Page 80: Grid Computing

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

Page 81: Grid Computing

<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