Grid Computing

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

    30-Jun-2015
  • Category

    Documents

  • view

    1.445
  • download

    2

Embed Size (px)

Transcript of Grid Computing

PONTIFCIA UNIVERSIDADE CATLICA DE MINAS GERAIS Sistemas de Informao

GRID COMPUTING:CONCEITOS E APLICAES

Jaqueline Henrique Pereira Costa

Betim 2006

JAQUELINE HENRIQUE PEREIRA COSTA

GRID COMPUTING:CONCEITOS E APLICAES

Trabalho apresentado disciplina Trabalho de Diplomao, do Curso de Sistemas de Informao da Pontifcia Universidade Catlica de Minas Gerais. Campus: Betim Orientador: Caio Julio Martins Veloso

Betim 2006

Jaqueline Henrique Pereira Costa Grid Computing

Trabalho apresentado disciplina de Trabalho de Diplomao, do Curso de Sistemas de Informao da Pontifcia Universidade Catlica de Minas Gerais, Betim, 2006.

Caio Julio Martins Veloso (Orientador) PUC Minas Betim

Sandro Laudares

Maria Ins Lage de Paula

A meus pais e minhas irms, Pelo apoio, dedicao e carinho em todos os momentos.

"Se plantarmos para um ano, devemos plantar cereais. Se plantarmos para uma dcada, devemos plantar rvores. Se plantarmos para toda a vida, devemos treinar e educar o homem."

(Khantsu, sculo III a.c.)

RESUMO

Nosso objetivo a apresentar os conceitos principais de Grid Computing, diferenciando esta nova tecnologia de solues anteriores, que de alguma forma contriburam para sua concepo e desenvolvimento, tendo em vista, as implicaes presentes e futuras de estruturas computacionais desenvolvidas sob esta concepo. E aplicao de um estudo de caso, como uma ferramenta auxiliar na compreenso e exposio do tema abordado.

Palavras-chave: Grid Computing, Sistemas Distribudos, Clusters, Middleware.

ABSTRACT

Our objective is to present the main concepts of the Grid Computing, being differentiated this new technology of previous solutions, that of some form had contributed for its conception and development, in view of, the future implications gifts and of developed computational structures under this conception. And application of a case study, as a tool auxiliary in the understanding and exposition of the boarded subject.

Word-key: Grid Computing, Distributed Systems, Clusters, Middleware.

LISTA DE ILUSTRAES

QUADRO 1 Diferena entre a abordagem adotada entre a Computao Filantrpica e os Ambientes Empresariais...........................................................................................................20 QUADRO 2 Sistemas fortemente acoplados x Sistemas fracamente acoplados.....................30 QUADRO 3 Diferenas entre as configuraes de cluster e grid.............................................47 QUADRO 4 Servios e funcionalidades do Globus.................................................................63 GRFICO 1 Consumo de Memria.........................................................................................70 GRFICO 2 SpeedUP..............................................................................................................71 GRFICO 3 Velocidade de Execuo.....................................................................................71

LISTA DE FIGURAS

FIGURA 1 Taxonomia para sistemas distribudos e para os sistemas paralelos......................27 FIGURA 2 Configurao genrica de multiprocessadores.......................................................29 FIGURA 3 Configuraes genricas de multicomputadores....................................................29 FIGURA 4 Configurao clssica de uma arquitetura SMP.....................................................31 FIGURA 5 Configurao convencional de uma NUMA..........................................................34 FIGURA 6 Configurao convencional de uma ccNUMA......................................................35 FIGURA 7 Configurao genrica de uma MPP......................................................................37 FIGURA 8 Arquiteturas computacionais com mltiplos processadores..................................39 FIGURA 9 Cluster de mquinas multiprocessadas...................................................................44 FIGURA 10 Cluster dedicado...................................................................................................44 FIGURA 11 Cluster no-dedicado............................................................................................44 FIGURA 12 Modelo em Camada 1..........................................................................................56 FIGURA 13 Modelo em Camadas 2.........................................................................................56

LISTA DE TABELAS

TABELA 1 Consumo de Memria e Tempo de Execuo.......................................................69 TABELA 2 Estimativa de Tempo de Execuo.......................................................................69

LISTA DE SIGLAS

UFCG - Universidade Federal de Campina Grande HP - HEWLETT-PACKARD LTDA SETI - Search for Extraterrestrial Intelligence TI Tecnologia da Informao PC Personal Computer MIT - Massachusetts Institute of Technology IBM - I nternational Business MachinesI

LAN - Local rea Networks MIPS - Milhes de Instrues por Segundo GERPAV - Sistema de Gerenciamento da Pavimentao SISD - Single Instruction Single Data SIMD - Single Instruction Multiple Data MISD - Multiple Instruction Single Data MIMD - Multiple Instruction Multiple Data ILLIAC - Illinois Automatic Computer CM-2 Connection Machine 2 INM - Intellipool Network Monitor NUMA - Non-Uniform Memory Access CC-NUMA - Cache Coherence Non-Uniform Memory Access CRM - Customer Relationship Management ERP Enterprise Resource Planning

LISTA DE SIGLAS

AC - Assistente de Comunicao 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 distribuda HTTP - Hypertext Transfer Protocol OGSA - Open Grid Standards Architecture VO - Organizao Virtual IME-USP Instituto de Matemtica e Estatstica da Universidade de So Paulo PUC-Rio Pontificia Universidade Catolica do Rio de Janeiro UFMS Universidade Federal de Mato Grosso do Sul API - Apllication Programing Interface RMS - Resource Management and Systems Sistemas Gerenciadores de Tarefas e Recursos PVM - Parallel Virtual Machine MPI - Message Passing Interface

LISTA DE SIGLAS

HPC - High Performance Computing MPI - Message Passing Interface PV - Parallel Virtual BSP Bulk Synchronous Parallel CGM - Coarse Grained Multicomputer GRACE - Grid Architecture for Computational Economy BOINC - Berkeley Open Infrastructure for Network Computing HPC Research Grid - High Performance Computing Research Grid CENAPAD - Centro Nacional de Processamento de Alto Desempenho CBF - Centro de Pesquisa e Documentao da Fundao Getlio Vargas LNCC Laboratrio Nacional de Computao Cientfica RAM Random Access Memory MB Mega Byte HD Hard Disk GB Giga Byte S.O. Sistema Operacional NAMD - Not Another Molecular Dynamics

SUMRIO

1 INTRODUO....................................................................................................................14 1.1JUSTIFICATIVA................................................................................................................16 1.2OBJETIVOS........................................................................................................................17 2 FUNDAMENTAO TERICA......................................................................................18 1.1EVOLUO DOS SISTEMAS DISTRIBUDOS.............................................................23 2.2 ARQUITETURA DE SISTEMAS COMPUTACIONAIS ................................................25 2.3 COMPUTAO DISTRIBUDA E GRID COMPUTING...............................................39 3 ANLISE COMPARATIVA..............................................................................................43 1.2CLUSTER X GRID COMPUTING....................................................................................43 1.3AMBIENTE WEB X GRID COMPUTING........................................................................48 4 CONFIGURAES DE UMA ARQUITETURA UTILIZANDO OS CONCEITOS DE GRID COMPUTING.......................................................................................................51 1.4COJUNTOS DE SOFTWARES E FERRAMENTAS UTILIZADAS PELA GRID..........581.4.1PVM (Parallel Virtual Machine) e MPI ( Message Passing Interface)...........................................................59 1.4.2Ferrramenta RMS (Resource Management and Systems Sistemas Gerenciadores de Tarefas e Recursos)62 1.4.3Middleware.....................................................................................................................................................62

5 EXEMPLO DE PROJETOS ..............................................................................................66 6 ESTUDO DE CASO............................................................................................................68 7 CONCLUSO......................................................................................................................74 8 REFERNCIAS...................................................................................................................76

14

1 INTRODUO

O conceito de Grid Computing apresenta um novo paradigma computacional, que tem por objetivo a integrao de recursos computacionais atravs de uma infra-estrutura, capaz de oferecer confiabilidade, consistncia, economia e persistncia na execuo de aplicaes que necessitem de um grande poder computacional. O Grid Computing surgiu como uma soluo para os problemas de disponibilidade e flexibilidade de demanda a partir da implementao de redes de alto desempenho, e teve como base o modelo de sistemas distribudos, amplamente usado no meio acadmico, conhecido como Cluster. As caractersticas principais do Grid que o diferencia do Cluster, so a possibilidade do uso de recursos heterogneos, ou seja, utilizao de processadores, memrias e sistemas operacionais de diversas marcas, modelos e fabricantes, disponveis nos ns cooperativos que compem esta estrutura, mesmo que estes ns se encontrem dispersos geograficamente, sendo esta a caracterstica mais importante na caracterizao 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 interconexes, bases de dados e instrumentos cientficos pertencidos e gerenciados por mltiplas organizaes. (FOSTER, 1998). Como exemplificao do Grid, comum o uso de uma analogia desta infra-estrutura com as redes eltricas: A infra-estrutura de um Grid anloga grade de energia eltrica que prov acesso consistente, pervasivo e transparente a energia eltrica independente da origem (GES et al., 2005), ou seja, a Grid Computing uma infra-estrutura que dispe recursos computacionais

15

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 aplicaes sem que este saiba exatamente como e quais recursos esto sendo usados durante a operao. 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 participao da UFCG (Universidade Federal de Campina Grande) e da empresa HP. Este projeto tem como foco a criao de tecnologias que viabilizem o uso de Grids da forma mais rpida e direta possvel. (HEWLETT-PACKARD BRASIL COMPUTADORES LTDA..., 2005). Outros projetos de destaque so o [email protected] voltado pesquisa por vida extraterrestre e o Globus que foi o embrio dos esforos mundiais de pesquisa e desenvolvimento desta rea (CHEDE, 2004) e que hoje concentra esforos no desenvolvimento e aperfeioamento de ferramentas para a consolidao da tecnologia. Este trabalho apresenta os resultados dos esforos empreendidos no entendimento destas iniciativas e dos conceitos principais relativos ao Grid Computing buscando caracterizar sua estrutura, formas de implementao e sua aplicabilidade. Atravs da elaborao de um estudo de caso, obtivemos resultados que mostram os pontos positivos e negativos do uso deste conceito para soluo de problemas relacionados computao de alto desempenho. O futuro desta tecnologia promete ser promissor, porm depende de pessoas especializadas para sua manipulao. A adoo em reas como TI, por exemplo, exigem a superao de algumas limitaes, como profissionais especializados e polticas de segurana. No entanto, em outros setores como jogos interativos, em que as aplicaes so altamente paralisveis apresentam uma eficiente utilizao.

16

A empresa Buterfly, por exemplo, de games interativos pela Internet, foi criada com a idia de Grid. O modelo exigia computao sob demanda, tpicos da Grid Computing. A soluo encontrada foi criar uma Grid composta por 2 clusters, baseados em plataformas Intel, hospedadas em data centers da IBM. Todos os servidores so conectados uns aos outros por rede de alta velocidade. Durante a execuo 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 aplicao da Grid Computing, em diferentes contextos vm sendo desenvolvidas, e a expectativa que estas iniciativas possam contribuir no aperfeioamento e padronizao de ferramentas utilizadas na Grid Computing para atender as necessidades especificas de cada projeto.

1.1 JUSTIFICATIVA

Com a disseminao dos conceitos da Computao em Grade - conhecida tambm como Grid Computing - no meio acadmico, surgiu a necessidade de diferenciar esta nova tecnologia das tecnologias existentes. O conhecimento de seus benefcios futuros e os esforos que vem sendo realizados por diversos centros de pesquisas auxilia o estudo e compreenso desta tecnologia. A expectativa de que a Computao em Grade oferea um grande poder computacional no qual ocorra o acesso a recursos distribudos geograficamente, de maneira consistente, confivel econmica e persistente; sendo usada em aplicaes que utilizando compartilhamento de dados de forma remota, facilita a colaborao entre centros de pesquisas de diversos lugares do mundo, envolvidos em projetos que requerem uma grande capacidade de clculo e/ou grande quantidades de dados, alm de oferecer a proposta de reduo de custos e melhor utilizao de recursos nos ambientes cooperativos.

17

1.2 OBJETIVOS

Este trabalho tem como objetivo consolidar os conhecimentos adquiridos ao longo do curso de graduao em Sistemas de Informao no que se refere aos sistemas de processamento de alto desempenho com caracteristicas de baixo grau de acoplamento e dispersos geograficamente, usualmente denominados de Computao 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 acepoes deste termo, encontrados na

literatura;

Avaliar, atravs de um pequeno estudo de caso, os aspectos tecnicos e de

desempenho de um problema de computaao de alto desempenho simulando o tipo de escalonamento encontrado em Grids.

18

2 FUNDAMENTAO TERICA

Grid Computing um termo em ingls que na traduo mais aceita em portugus significa computao em grade. De maneira simples, podemos disser que a Grid Computing representada por uma estrutura em que diversos sistemas computacionais compartilham recursos para execuo 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 caractersticas advindas de outras tecnologias e conceitos prprios que merecem um entendimento de diversas reas de estudo, como sistemas distribudos e computao paralela, e a partir deste momento o conceito comea a ser tornar mais amplo. Os primeiros estudos sobre o tema tiveram

[...] incio na dcada de 90 para atender uma demanda especfica da rea cientifica. Ian Foster, do Laboratrio Nacional Argonne, apresentou a proposta de uma associao entre laboratrios 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 permevel e interconectvel 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 interconexes, bases de dados e instrumentos cientficos pertencidos e gerenciados por mltiplas organizaes. (FOSTER, 2002). Atravs de uma analogia muito usada na exemplificao do Grid Computing, podemos disser que:

19

[...] esta infra-estrutura anloga grade de energia eltrica que prov acesso consistente, pervasivo e transparente a energia eltrica independente da origem. A grade de energia eltrica disponibiliza energia eltrica sob demanda e esconde do usurio detalhes como a origem da energia e a complexidade da malha de transmisso e distribuio. Ou seja, se temos um equipamento eltrico, simplesmente o conectando na tomada para que ele receba energia. Uma grade computacional, portanto, seria uma rede na qual o indivduo se conecta para obter poder computacional (ciclos, armazenamento, software, perifricos, etc.). (GES et al., 2005).

Os recursos disponveis em uma Grid podem estar geograficamente distribudos e serem utilizados em diversos projetos de pesquisa de maneira controlada, sem que aja interrupes no processo. Para isso, necessrio que na infra-estrutura construda utilizando os conceitos e ferramentas da Grid Computing, seja implementada solues para segurana dos dados que circulam pela rede, quando isso se fizer necessrio. No ambiente acadmico como em outros ambientes em que os projetos so voltados a descobertas em beneficio a sociedades, o uso de uma Grid vista por Chede (2004) como computao filantrpica. Na computao filantrpica, a participao voluntria e existe enquanto houver interesse e disposio do usurio. (CHEDE, 2004). Em uma empresa devem ser evitados imprevistos e, portanto, os conceitos de computao filantrpica no se aplicam neste ambiente, em que a disponibilidade e a integridade dos dados so uns dos fatores importantes no que diz respeito segurana dos dados. (CHEDE, 2004) Um ambiente empresarial geralmente mantm seus PCs conectados em redes de alta velocidade da conexo muito maiores e estveis que as esperadas na computao filantrpica, aberta Internet.(CHEDE, 2004).

20

Abaixo temos uma comparao entre as duas abordagens:

Conexes Participao Administrao e Segurana Homogeneidade

Computao Filantrpica Conexo remota, de baixa velocidade. Voluntria No existem polticas nem obrigatoriedade de adoo Ambientes diversos

Ambiente Empresarial Conectados em redes de alta velocidade Pode ser compulsria Existem polticas a serem seguidas Padronizadas

Quadro 1: Diferena entre a abordagem adotada entre a Computao Filantrpica e os Ambientes Empresariais. Fonte: CHEDE, 2004.

Um exemplo de computao filantrpica que merece destaque o projeto [email protected], que tem movido esforos na investigao por vida extraterrestre. O projeto SETI (Search for Extraterrestrial Intelligence) uma experincia cientfica que usa computadores interconectados pela Internet na busca por inteligncia Extraterrestre1 ([email protected]). Os participantes do [email protected] cedem voluntariamente o uso do tempo disponvel dos seus computadores. (STANTON, 2004). Usando um software que pode ser baixado pela Internet, um microcomputador pode analisar sinais de rdio do telescpio de Arecibo. Atualmente existem 4 milhes de assinantes em 224 pases, criando um computador virtual com uma performance de 20 Tflops. (PITANGA, 2004). O poder computacional alcanado com este projeto tem mostrado uma soluo rpida e vivel para computao de trabalhos cientficos que precisam de diversos recursos computacionais para o processamento de grandes quantidades de dados, evitando ao mximo a inviabilidade financeira da pesquisa. Segundo Chede (2004), a utilizao de milhares de PCscria um computador virtual que pode ser considerado um dos mais potentes do mundo, que exatamente o que vem1

Is a scientific experiment that uses Internet-connected computers in the Search for Extraterrestrial Intelligence ([email protected], 2006).

21

acontecendo com o projeto [email protected] Se todo o trabalho efetuado para o projeto fosse feito por um nico PC com microprocessador Pentium seriam necessrios mais de 1.3000.000 anos. (CHEDE, 2004). De encontro as contribuies oferecidas pela Grid Computing, o Instituto de Matemtica e o Departamento de Cincia da Computao, da Universidade Federal da Bahia criaram o Projeto TopGrid (LAGE, 2005), e apresentam como motivaes 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; Disponibilizaro recursos e servios com se fossem eletricidade; Compartilhar recursos e/ou servios e, Utilizao do tempo ocioso de recursos. (LAGE, 2005).

O uso de computadores para compartilhamento de recursos tem conquistado muitas reas de interesse, governos, empresas e organizaes de pesquisa esto trabalhando em associao para criar redes de supercomputao, e que disponibilizaro 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, ento a computao poder algum dia ser organizada como um servio pblico, assim como a telefonia o [...] Esse servio poder ser tornar a base da nova e importante indstria. (MACCARTY apud PINTANGA, 2004). Complementando esta idia, Gandouf diretor da IBM, acredita que Bits devem ser uma torneira que pinga bits. Computao tem que ser utilidade pblica. (VALIM, 2002).

22

Enquanto cientistas e pesquisadores da rea trabalham para tornar isso possvel, podemos vislumbrar outras iniciativas em benefcio sociedade que vem sendo empreendidas, para atender o mais breve possvel a populao. Um exemplo seria a parceria que a HP vem realizado com a UFCG (Universidade Federal de Campina Grande) em parceria com o laboratrio HP Labis Bristol no estudo das contribuies do uso de Grid. Mowbray citado por (GRADE..., 2004), declara que:

[...] fantstico trabalhar num projeto que suporta aplicativos como o de classificao de medicamentos para tratar uma variante brasileira do HIV/AIDS, e o planejamento de gua no Nordeste brasileiro, uma regio propensa seca.

A adoo de infra-estruturas grid, seu desenvolvimento e aceitao pela sociedade representada o surgimento de um novo paradigma computacional.

A possibilidade de criar um supercomputador virtual com recursos j existentes permite desenvolver aplicaes antes restritas a carssimos supercomputadores. Abre-se uma nova perspectiva e certamente estamos diante de mudanas nos paradigmas computacionais. (CHEDE, 2004).

Segundo Stanton (2004), Thomas Kuhn se referia s rupturas das evolues cientificas como mudanas de paradigmas, um termo que hoje usado mais genericamente para descrever uma modificao profunda em nossos pontos de referncia. (STANTON, 2004).

23

1.1 EVOLUO DOS SISTEMAS DISTRIBUDOS

Para que possamos compreender os objetivos que a computao em grade pretende alcanar, e quais as contribuies que os esforos at ento empreendidos tem a oferecer no desenvolvimento de infra-estruturas computacionais, que atendam a necessidade cada vez crescente por computao de alto desempenho, preciso conhecermos o histrico de solues apresentadas nas ltimas dcadas, que apresentam contribuio importante no advento da computao em grade. A computao em grade o resultado de dcadas de pesquisas nas reas de processamento paralelo e sistemas distribudos. (GES et al., 2005). Para (TANENBAUM, 1995), alguns autores fazem diferenciao entre sistemas distribudos, que so projetados para permitir que usurios trabalhem juntos, e sistemas paralelos, cujo objetivo conseguir mxima velocidade na soluo de um nico problema. O surgimento da computao distribuda, segundo Tanenbaum (1995), resultado do avano de duas tecnologias: os microprocessadores e as redes locais de alta velocidade conhecidas como LAN (Local rea Networks).

O resultado da aplicao destas duas tecnologias o fato de hoje ser muito fcil construir sistemas de computao compostos por um grande nmero de processadores ligados atravs de redes de alta velocidade. Tais sistemas so denominados sistemas distribudos, em contraste como os sistemas centralizados, compostos por um nico processador, memria, perifricos, e terminais. (TANENBAUM, 1995).

Os primeiros sistemas com mltiplos processadores surgiram na dcada de 1960, com o objetivo principal de acelerar a execuo de aplicaes que lidavam com um grande volume de clculos. Por muito tempo, esses sistemas foram utilizados quase que exclusivamente em ambientes acadmicos e centros de pesquisas voltados para o processamento cientfico. O mercado corporativo comeou realmente a utilizar os sistemas com mltiplos processadores na dcada de 1980, para melhorar o desempenho de suas aplicaes comerciais e reduzir o tempo de resposta dos usurios interativos. (MACHADO; MAIA, 2002).

24

Para continuar atendendo a necessidade de aplicaes, que dependem de estruturas computacionais capazes de oferecer recursos cada vez maiores, na realizao do processamento de suas operaes, de maneira rpida e eficiente, com um elevado grau de desempenho, foi preciso trabalhar no desenvolvimento de solues capazes de contornar os problemas enfrentados pelos sistemas centralizados oferecendo uma nova proposta para o processamento destas aplicaes.

Para melhorar o desempenho de um sistema computacional seria necessria: a utilizao de uma configurao computacional com um processador mais rpido, usa de melhores algoritmos, ou por fim empregar o paradigma de computao distribuda. (DANTAS, 2005b).

Atualmente, o avano no poder de processamento tem sofrido limitaes. Gordon Moore um dos fundadores da Intel citado por Dantas (2005a),

[...] previu que em cada perodo de dezoito meses os sistemas dobrariam seus desempenhos. Este tipo de previso foi verificado por vrios anos e em alguns casos at superada. Todavia limitaes tais como velocidade da luz, algumas leis de termodinmica e o elevado custo de fabricao de novos processadores esto sendo atingidos, dificultando a progresso de desempenho que vinha acontecendo. (DANTAS, 2005a).

No entanto, como observado, o desenvolvimento de processadores mais rpidos enfrentam problemas fsicos que tem feito com que algumas redes distribudas alcancem atualmente um poder computacional superior aos sistemas centralizados baseados em mainframe. (TANENBAUM, 1995, MACHADO; MAIA, 2002; DANTAS, 2005a).

possvel construir um sistema com 1.000 microprocessadores, cada um dos quais rodando a 20 MIPS (Milhes de Instrues por Segundo), chegando ento a uma performance de 20.000 MIPS. Para que um nico processador chegue a esta performance, ele teria que executar uma instruo bsica em 0,05 nanosegundos (50 picossegundos). Pelo lado prtico, um computador com esta velocidade em um cubo de 1,5 cm, geraria uma quantidade de calor to grande que se derreteria completamente. (TANENBAUM, 1995).

25

E o uso de melhores algoritmos para aumento de desempenho tambm no parece ser uma das melhores solues:

[...]o levado custo de otimizao faz com que inmeras organizaes optem por continuar executando suas aplicaes, sem uma preocupao maior de desempenho. De uma outra forma podemos entender que difcil modificar aplicaes j existentes e que estejam em produo. (DANTAS, 2005a).

Conforme observado por Dantas (2005a), Devido s dificuldades apresentadas, os sistemas distribudos surgiram como uma das propostas mais viveis, no alcance do poder de processamento desejado atravs da agregao de computadores, aproveitando das vantagens oferecidas por cada um. A agregao de computadores locais ou geograficamente distribudos, pode representar uma opo adequada para a melhoria de desempenho de aplicaes. neste contexto que os clusters e os grids computacionais se enquadram. (Dantas, 2005a).

Ambientes de computao em grade tem forte relao com ambientes distribudos, 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. Alm disso, grades so compostas por um nmero dinmico de recursos que podem estar espalhados por diferentes domnios administrativos. (GERPAV GRID..., 2005)

2.2 ARQUITETURA DE SISTEMAS COMPUTACIONAIS

Com o advento dos sistemas com mltiplos processadores, podemos observar atravs da histria, o desenvolvimento de solues em hardware e software para que o uso desta tecnologia pudesse solucionar efetivamente os problemas enfrentados pelos sistemas centralizados na execuo de tarefas complexas.

26

A arquitetura dos sistemas distribudos o resultado da evoluo de estruturas computacionais em que mltiplos processadores tornariam possvel o processamento de tarefas em paralelo.

Mesmo considerando que todos os sistemas distribudos so, em ltima anlise, constitudos de vrios processadores, existem diversas formas diferentes de se organizar o hardware de tais sistemas, especialmente no aspecto de como implementar a conexo de seus componentes, e de como eles se comunicam. (TANENBAUM, 1995).

Analisando o hardware podemos utilizar a taxonomia de Michael Flynn para conhecermos as possveis estruturas para suporte a sistemas com mltiplos processadores. (TANENBAUM, 1995, MACHADO; MAIA, 2002; DANTAS, 2005a).

Os sistemas computacionais podem ser classificados conforme o grau de paralelismo existente no processamento de suas instrues 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 evoluo das arquiteturas de computadores. (MACHADO; MAIA, 2002).

Estes quatros sistemas so: 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 instrues 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 instrues e vrios fluxos de dados trabalham com dados escalares e, portanto, processam vetores sequencialmente, ou seja, um componente de cada vez. (MACHADO; MAIA, 2002). Exemplo de

27

computadores com esta arquitetura so as mquinas ILLIAC IV (Universidade de Illinois), Thinking Machine, CM-2 e MASPAR MP-1216. (DANTAS, 2005a).

MISD vrios fluxos de instrues e um nico fluxo de dados no se tem conhecimento de arquiteturas de mquinas com mltiplas instrues trabalhando com um nico conjunto de dados. (DANTAS, 2005a).

MIMD vrios fluxos de instrues e vrios fluxos de dados em essncia significa que um grupo de computadores independentes, cada um com seu contador de programa, com seu prprio programa, e com seus prprios 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.

Fortemente AcopladoMultiprocessadores (memria compartilhada)

Computadores paralelos e computadores distribudos

Fracamente AcopladoMulticomputadores (memria local privada)

Baseado em Barramento

Comutados

Baseado em Barramento

Comutados

28

Figura 1: Taxonomia para sistemas distribudos e para os sistemas paralelos. Fonte: TANENBAUM, 1995.

Os multiprocessadores so caracterizados por possuir uma estrutura em que a memria compartilhada pelos diversos processadores interligados na rede, j os multicomputadores so formados por mquinas que possuem seu prprio espao de armazenamento. Em um multiprocessador, por exemplo, se qualquer um dos processadores escrever 44 no endereo 1000, qualquer outro processador que venha a ler posteriormente o contedo de seu endereo 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 atravs 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 mquinas do sistema [...] Os sistemas comutados no tem uma espinha dorsal nica, como no caso dos sistemas baseados em barramento. Em vez disso, existem fios individuais ligando todas as mquinas entre si, havendo possibilidade de modificar o perfil de conexo. (TANENBAUM, 1995).

A arquitetura dos multiprocessadores conhecida como fortemente acoplada, uma vez que processadores e memrias esto fortemente interligados atravs de seu sistema local de interconexo. A interconexo local de processadores e memrias, quando efetuada por intermdio de uma barra, prov a facilidade de configurao compartilhada. Por outro lado, a interligao de processadores e memrias atravs de um equipamento de comutao estabelece uma configurao comutada simples, podendo tambm se estender at mltiplos nveis. (DANTAS, 2005a).

2

Estrutura onde as placas so fixadas no chassi da mquina (UFRGS, 2005)

29

A Figura 2 representa duas configuraes possveis para a arquitetura de multiprocessadores.

P

P

P

P

P

P

P

P

M

M

M

M

M

M

M

M

Configurao Compartilhada P Processador M- Memria

Configurao Comutada

Figura 2: Configuraes genricas de multiprocessadores. Fonte: DANTAS, 2005a.

Os multicomputadores, no entanto, so considerados como um sistema fracamente acoplado podendo ser constitudo por ambas as configuraes: comutada ou por barramento, conforme ilustrao simplificada da Figura 3. Neste caso, no existe um compartilhamento forte, o que significa dizer que a comunicao entre processos efetuada apenas por troca de mensagens entre processos que esto executando nos processadores. (DANTAS, 2005a).

M

M

M

M

M

M

M

M

P

P

P

P

P

P

P

P

30

M Memria

P Processador

Figura 3: Configuraes genricas de multicomputadores. Fonte: DANTAS, 2005a.

As mquinas das linhas SP da IBM e Balde Servers da HP, IBM, Intel e SUN so exemplos de casos de fabricantes comerciais que utilizam a abordagem da arquitetura multicomputador. [...] Nela tambm se enquadram vrios 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 distribudos (que trabalham em vrios problemas independentes), apesar disto no ser sempre verdade. (TANENBAUM, 1995).

A seguir, procuramos apresentar no Quadro 2, algumas das diferenas entre os sistemas fortemente acoplados e dos sistemas fracamente acoplados. Caractersticas Espao de endereamento Comunicao entre os processadores Arquitetura de hardware Sistema operacional Cpias do sistema operacional Programao paralela Nmero de processadores Escalabilidade Disponibilidade Administrao Custo de software Intercomunicao Segurana Sistemas Fortemente Acoplados Centralizado Muito rpida Complexa Homogneo Existe apenas uma cpia Mais fcil Centenas Baixa Baixa/Mdia Simples Menor Proprietria Centralizada Sistemas Fracamente Acoplados Distribudo Lenta Mais simples Geralmente heterogneo Existem vrias cpias, uma para cada sistema. Mais difcil No existe limite Alta Mdia/Alta Complexa Maior Padronizada Distribuda

Quadro 2: Sistemas fortemente acoplados x Sistemas fracamente acoplados. Fonte: MACHADO; MAIA, 2002.

31

Esta abordagem usada para classificar as arquiteturas de mltiplos processadores trata do assunto de forma simplificada. As configuraes das arquiteturas dos multiprocessadores e multicomputadores apresentadas endeream as arquiteturas de uma forma geral. (DANTAS, 2005a). Certos ambientes computacionais podem se tornar diferenciados devido a seus sistemas organizacionais e modelos de programao. (DANTAS, 2005a). Em uma abordagem mais ampla temos as arquiteturas SMP, NUMA e MPP. Os sistemas com multiprocessadores simtricos (Symmetric Multiprocessors SMP) possuem dois ou mais processadores compartilhando um nico espao de endereamento e gerenciados por um sistema operacional. (MACHADO; MAIA, 2002).

Os sistemas SMP so uma evoluo dos sistemas com mltiplos processadores assimtricos. Na organizao assimtrica ou mestre/escravo, somente um processador, denominado mestre, pode executar servios do sistema operacional, como por exemplo, operaes de E/S. Sempre que um processador do tipo escravo precisa realizar uma tarefa de E/S, tem que requisitar o servio ao processador mestre. (MACHADO; MAIA, 2002).

Devido a esta centralizao de tarefas, sistemas assimtricos enfrentam problemas quando um nmero grande de processadores faz requisies ao mesmo tempo, alm de haver um ponto nico de falha, que uma vez indisponvel 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 funes. Apenas algumas poucas funes ficam a cargo de um nico processador, como por exemplo, a inicializao do sistema. (MACHADO; MAIA, 2002). Observando a Figura 4 abaixo, temos ajuda na compreenso dos conceitos de uma arquitetura SMP.

32

ProcessadoresP P P P

Placa Rede

Sistema EntradaSadaDiscos

Memria

Figura 4: Configurao clssica de uma arquitetura SMP Fonte: DANTAS, 2005a.

Um fator particular da configurao no possuir mltiplas memrias e nem to pouco mltiplos sistemas de entrada e sada, mas apenas mltiplos processadores. (DANTAS, 2005a).

Exemplos comerciais que empregam esta abordagem so os servidores de fabricantes como Compaq, INM, Dell e HP. Estas mquinas so usualmente denominadas pelos fabricantes como servidores de pequeno porte, pois possuem at dezenas de processadores. (DANTAS, 2005a).

O problema da conteno no acesso aos recursos partilhados limita o nmero de processadores usualmente 64 no mximo. Este problema limita consideravelmente a escalabilidade destes sistemas. A comunicao entre processadores efetuada atravs da memria partilhada. (TEIXEIRA et al., 2000).

As mquinas SMP so tambm conhecidas como multiprocessadores fortemente acoplados. Por esta razo, estes ambientes no so muito escalveis. No possuindo muitas vezes uma memria local (ou cache) por processador, com o aumento no nmero de processadores, a taxa de coliso de acesso memria cresce de maneira substancial. Por esta razo, alguns fabricantes desenvolveram solues onde suas mquinas servidoras possuem algumas placas, onde em cada uma delas encontramos alguns processadores com memria global para os processadores contidos nesta placa. Com este artifcio pode-se promover uma configurao SMP, garantindo um acesso uniforme memria global do servidor. (DANTAS, 2005a).

Segundo, (TEIXEIRA et al., 2000), pode ser usado uma cache por mquina.

Para reduzir a conteno no acesso memria estes sistemas utilizam memria cache de alta velocidade junto de cada processador, que armazena a informao da memria principal que foi acedida mais recentemente. Todos os pedidos de acesso

33

memria passam pela memria cache e apenas se extendem memria principal quando aquela no capaz de responder ao pedido efetuado. (TEIXEIRA et al., 2000).

Porm, o uso de memria cache enfrenta problemas em relao coerncia 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 memria , ento, considerado incoerente, tornando muito difcil a programao neste sistema. (TANENBAUM, 1995).

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 memria cache escreve-se tambm na memria principal; - Snoopy-cache: todas as memrias cache monitorizam o barramento. Sempre que se observa uma escrita numa posio de memria 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 alm de ser invisvel 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 nmero de processadores o ideal seria o emprego de comutao crossbar. (TANENBAUM, 1995). Em uma arquitetura de barramento, para cada n processadores e n mdulos de memria so necessrios n comutadores3 para interligar todos os pontos. Em uma configurao onde n seja muito grande, o custo tende a ser muito alto (MACHADO; MAIA, 2002).Uma maneira de reduzir o nmero de comutadores implementar uma rede mega. Nesta topologia, no existe uma ligao exclusiva entre cada processador e um mdulo de memria; os caminhos so compartilhados entre as diversas unidades3

Os comutadores, conforme citado, podem ser dispositivos de redes conhecidos como Switch.

34

funcionais. Desta forma possvel que um processador tenha que esperar para poder acessar um determinado mdulo de memria devido falta de caminho disponvel no momento. (MACHADO; MAIA, 2002).

Porm, temos outro problema: apesar do menor custo, redes mega podem introduzir o problema de latncia, devido ao longo caminho percorrido entre o ponto de origem e o de destino, principalmente se considerarmos redes de interconexo maiores. (MACHADO; MAIA, 2002). 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 no utilizavam qualquer mecanismo de cache. A ausncia de cache, apesar de simplificar e reduzir custo do modelo oferece uma latncia4 alta quando so realizados acessos memria remota. (MACHADO; MAIA, 2002).

Sistemas NUMA so uma alternativa s organizaes SMP, pois oferecem uma escalabilidade maior de processadores, menor custo e maior desempenho. Uma grande dificuldade em sistemas Numa manter um nvel de desempenho satisfatrio, devido possibilidade de existirem tempos de acesso a memria principal bem diferentes. Neste caso, o sistema deve garantir o maior nmero possvel de acesso locais, evitando acessos memria remota. (MACHADO; MAIA, 2002).

Uma vez que a memria se encontra fisicamente distribuda necessrio recorrer a mecanismos que garantam a sua consistncia. (TEIXEIRA et al., 2000). Existem nesta configurao manipulaes que devem ser compartilizadas entre as memrias local e global para evitar que erros de coerncia ocorram. (DANTAS, 2005a). A Figura 5 mostra um exemplo simplificado de uma arquitetura NUMA. ProcessadoresPCache

PCache

PCache

PCache

4

o tempo que uma mensagem gasta para percorrer a trajetria at ao elemento de destino Memria Placa Rede

Sistema EntradaSada

Discos

35

Figura 5: Configurao convencional de uma NUMA. Fonte: DANTAS, 2005a.

Os sistemas CC-NUMA so multiprocessadores com uma arquitetura de acesso no uniforme memria. Tal como em SMP todos os processadores tm uma viso global da memria, no entanto, os tempos de acesso dependem da proximidade da memria a que se acede, ao contrrio dos sistemas de acesso uniforme memria. (TEIXEIRA et al., 2000).

Mquinas com esta abordagem so configuraes escalveis de multiprocessadores. Aplicaes tais como os servios de Web, banco de dados, processamento de sinal, CRM e ERP so aplicaes candidatas a serem utilizadas em configuraes ccNUMA. (DANTAS, 2005a). A Figura 6, exemplifica a configurao de um arquitetura usando os conceitos de ccNUMA.

Processadores PCache

Processadores P MemriasCache P Cache

PCache

Memrias

AC

AC

SWITCH

AC Assistente de Comunicao. Figura 6: Configurao convencional de uma ccNUMA.

36

Fonte: DANTAS, 2005a.

Na literatura sobre arquitetura de computadores, alguns autores se referem a esta configurao, apresentada na Figura 6, como organizao de multiprocessadores distribuda de memria. Nestes ambientes, para cada n (composto por um ou mais processadores possvel ter uma viso geral do todo do sistema de memria local, empregando uma memria cach para cada processador). Para uma viso global de todas as memrias que compem a configurao de todos os ns utilizado um hardware denominado de uma forma genrica de assistente de comunicao (AC). (DANTAS, 2005a).

Sobre os sistemas SMP e NUMA, vistos at aqui, podemos verificar que:Sistemas multiprocessadores baseados em barramento, incluindo os baseados na snoopy cache, so limitados pela quantidade mxima de processadores suportada pelo sistema (em torno de 64). Para suportar isso necessrio o uso de redes de comutao, tal como crossbar, a mega, ou algo similar. As redes crossbar muito grandes so carssimas, enquanto que a as redes mega com muitos processadores e memrias, alm de caras so excessivamente lentas. As chamadas mquinas NUMA precisam de algoritmos muito complexos para resolver o problema do local adequado para armazenamento do software. Disso tudo a concluso uma s: a construo de um sistema multiprocessador com memria compartilhada, fortemente acoplada, e com um tamanho relativamente grande, uma tarefa difcil e muito cara. (TANENBAUM, 1995).

Outro modelo de arquitetura a MPP (Masssively Parallel Processors), que diferentemente das arquiteturas SMP e NUMA, no faz uso de memrias compartilhadas, sendo caracterizada como arquitetura fracamente acoplada.

Computadores sob este paradigma so classificados usualmente como multicomputadores.[...] Um MPP pode ser composto tambm por um conjunto de multiprocessadores, onde cada multiprocessador um n de uma configurao do tipo multicomputadores. (DANTAS, 2005a).

De acordo com (MEDEIROS, 2005) sua estrutura tem centenas de ns com uma rede/switch de interligao de muito alta velocidade. Uma outra caracterstica da arquitetura que cada n possui sua prpria cpia do sistema operacional, onde as aplicaes executam localmente e se comunicam atravs de pacotes de troca de mensagem, tais como MPI e PVM. (DANTAS, 2005a).

37

A escalabilidade da abordagem MPP maior do que as arquiteturas como memria compartilhada, uma vez que cada n tem sua prpria estrutura de memria. (DANTAS, 2005a).Um elemento importante na configurao MPP seu sistema de interconexo. A interligao dos vrios ns da configurao efetuada por dispositivos que so denominados como redes de interconexo. Estas redes tm diversas formas de implementao. Os parmetros que so levados em considerao na construo das redes de interconexo so: Topologia; Algoritmos de roteamento; Estratgia de comutao; Controle de fluxo entre ns. (DANTAS, 2005a).

Os computadores T3D e T3E da Cray, SP da IBM, AP e VPP da Fujitsu e SR2000 da Hitachi, so tambm exemplos de mquinas e fabricantes de MPPs encontrados no mercado. (DANTAS, 2005a).

A Figura 7 ilustra esta idia.

P CE/S

M

P CE/S

M

Rede de Interconexo

E/S

P Processador C - Cache

M Memria E/S Entrada/Sada

Figura 7: Configurao genrica de uma MPP Fonte: DANTAS, 2005a.

Como podemos observar os sistemas com arquitetura MIMD esto presente em sistemas nos quais os processadores podem fazer uso de memria compartilhada ou distribuda, sendo classificados com mutiprocessadores ou multicomputadores,

respectivamente.

38

Os sistemas distribudos e paralelos de acordo com suas caractersticas de funcionamento podem utilizar uma das arquiteturas abordadas para aplicao de seus conceitos na computao das tarefas de acordo com a proposta de funcionamento peculiar a um determinado sistema e do objetivo do projeto.

De acordo com GES et al. (2005),A pesquisa em processamento paralelo sempre procurou extrair o mximo de desempenho computacional por meio da criao de mquinas dedicadas com mltiplos processadores, redes especiais de alta velocidade, memrias compartilhadas e processamento vetorial.

Continuado a comparao de sistemas distribudos em relao a sistemas paralelos, segundo Teixeira et al. (2000) temos que:

Ao contrrio dos sistemas paralelos o principal objetivo no a rapidez de processamento, mas sim questes organizacionais e econmicas, acesso distribudo aos dados, fiabilidade e escalabilidade. Em geral os recursos destes sistemas no so exclusivamente dedicados ao processamento paralelo, mas a atividades de gesto de informao da organizao a que pertencem.

A rea de sistemas distribudos preocupou-se mais com aspectos ligados comunicao, heterogeneidade e compartilhamento de recursos computacionais,

principalmente informaes por meio de arquivos. (GES et al., 2005). Devido a estas diferenas, a escolha de uma determinada abordagem vai depender da aplicao usada e dos recursos disponveis.

Um aspecto importante no desenvolvimento de programas paralelos que existe uma diferena considervel em programar para os diferentes tipos de mquinas. Por exemplo, na programao para uma mquina de memria compartilhada o programa deve ser visto como sendo uma coleo de tarefas que fazem acesso a um conjunto de dados por meio de variveis comuns s tarefas. Na programao para mquinas de memria distribudas os programas devem ser vistos como sendo um conjunto de processos com variveis locais privadas e possuindo capacidade de enviar e receber

39

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 compem o foco de estudo deste trabalho: Cluster, Grid.

MIMD MIMD

Memria Memria Compartilhada Compartilhada

Memria Memria Distribuda Distribuda

SMP SMP

ccNUMA ccNUMA

MPP MPP

Cluster Cluster

Grid Grid

Figura 8: Arquiteturas computacionais com mltiplos processadores. Fonte: DANTAS, 2005a.

2.3 COMPUTAO DISTRIBUDA E GRID COMPUTING

O conceito de sistemas distribudos mais antigo do que Grid Computing. Como pudemos observar, os sistemas distribudos surgiram como uma soluo para resolver os problemas enfrentados pela limitao dos sistemas centralizados, propondo estruturas computacionais que suportassem mltiplos processadores para compartilhamento de recursos entre mquinas quando necessrio, ou seja, quando a mquina que inicia o processo de uma

40

tarefa no dispor de recursos suficientes para seu processamento, em um determinado momento, comea a procurar mquinas que possam ceder um dos recursos computacionais requisitado. Segundo (MACHADO; MAIA, 2002), temos que: O sistema distribudo um conjunto de sistemas autnomos, interconectados por uma rede de comunicao e que funciona como se fosse um sistema fortemente acoplado. (MACHADO; MAIA, 2002).O que diferencia um sistema distribudo dos demais sistemas fracamente acoplados a existncia de um relacionamento mais forte entre os seus componentes. Podemos definir um sistema distribudo dos demais sistemas fracamente acoplados pelo aspecto de hardware e fortemente acoplado pelo aspecto de software. Para os usurios e suas aplicaes, como se no 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 distribudos, a homogeneidade ou heterogeneidade de um conjunto de mquinas, onde cada qual possui sua arquitetura de software-hardware executando sua prpria cpia de sistema operacional, permite a formao de interessantes configuraes de SMPs, de MPPs, de clusters e grids computacionais. (DANTAS, 2005a).

Grid parte do mesmo princpio, mas possui caractersticas prprias que a diferencia dos sistemas distribudos em alguns aspectos importantes.

Ambientes de computao em grade tm forte relao com sistemas distribudos, 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. Alm disso, as grades so compostas por um nmero dinmico de recursos que podem estar espalhados por diferentes domnios administrativos. (GERPAVGRID..., 2005).

Apesar de Grid Computing tambm ser um ambiente fracamente acoplado, podendo ser formado por mquinas heterogneas 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:

41

A Computao em Grid emergiu como um importante novo campo, distinto da computao distribuda convencional, por seu foco em compartilhamento de recursos em grande escala, aplicaes inovadoras, e, em alguns casos, orientao a alto desempenho. (FOSTER, 2002). Os componentes de um Grid no se restringem a processadores, podendo ser SMPs e MPPs como tambm instrumentos digitais. (CIRNE, 2004).

A computao em grade prope uma soluo para a grande demanda por capacidade computacional e transparncia. Seu objetivo prover uma infra-estrutura computacional que possibilite o acesso a recursos computacionais distribudos geograficamente de forma confivel, consistente, econmica e persistente. (GERPAVGRID..., 2005).

Em 1965, os projetistas do Sistema Operacional Multics (um antecessor do Unix) apresentaram uma viso de computao 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 cenrios relativos a Grid. Desde o fim dos anos 60, muito trabalho tem sido devotado ao desenvolvimento de sistemas distribudos, mas com resultados bastante diversos. (MENEGOTTO, 2005) .

Segundo (PITANGA, 2004), a computao em grade vista como uma evoluo dos sistemas distribudos:

A computao distribuda passa a ser uma Computao em Grade no momento em que existe uma infra-estrutura fsica e uma infra-estrutura lgica (software) que permita coordenar os trabalhos que vo ser processados e garantir a sua qualidade de servio. (PITANGA, 2004).

O grid um caso particular de computao distribuda, uma vez que os Grids so orientados essencialmente para aplicaes que precisam de uma grande capacidade de clculo, ou enormes quantidades de dados transmitidos de um lado para outro, ou as duas. (PITANGA, 2004). Dantas (2005) apresenta a mesma idia quando diz que:

42

A configurao distribuda quando considera o uso de servios e recursos geograficamente distribudos como uma cooperao formal com o objetivo de melhorar, viabilizar e at tornar economicamente possvel uma aplicao conhecida como um grid computacional.

Com a finalidade de diferenciar os sistemas distribudos e Grid Computing, veremos que:

A diferena fundamental entre uma configurao de grid e uma outra caracterizada como ambiente distribudo convencional referente a grande quantidade de servios e recursos que os ambientes de grid focam no seu compartilhamento. O termo grid considerado, pelos pesquisadores da organizao RealityGrid, como um esforo ambicioso e interessante para o desenvolvimento de um ambiente onde usurios finais podem ter acesso a recursos computacionais, banco de dados e facilidades experimentais de forma simples, transparente e sem considerao de localizao de recursos. (DANTAS, 2005b).

A diferena entre ambas tecnologias nem sempre clara, mas como pudemos notar estas duas tecnologias possuem similaridades quanto a infra-estrutura, porm conceitualmente a computao em grade apresenta uma abordagem diferenciada enquanto busca implementar solues capazes de oferecer alto desempenho, segurana no compartilhamento de dados distribudos geograficamente e alocao sob demanda de recursos computacionais de mquinas ociosas, que em um determinando momento trabalham na soluo de um mesmo problema.

43

3 ANLISE COMPARATIVA

Para uma melhoria no desempenho das aplicaes nas organizaes, tem sido verificado o agrupamento fsico local e virtual de inmeros computadores. Em outras palavras, devido ao custo de mquinas do tipo MPP e SMP, em adio a grande oferta de computadores pessoais existentes nas redes das instrues, polticas de agregar mquinas esto cada vez mais utilizadas. (DANTAS, 2005b).

A partir deste contexto, podemos abordar duas tecnologias que fazem uso do agrupamento de computadores para execuo de tarefas de maneira eficiente, dando a idia para o usurio 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 distribudo que consiste na coleo de computadores inter-conectados, usados como um sistema nico.

44

Esta caracterstica, conhecida como imagem nica do sistema, implementada pelo sistema operacional juntamente com as aplicaes que esto sendo processadas no ambiente. A maioria dos clusters implementa apenas parcialmente este conceito, principalmente quando o problema envolve o desenvolvimento de aplicaes paralelas. (MACHADO; MAIA, 2002). Cluster consiste num conjunto de mquinas constitudas por processador, memria e eventualmente unidades de armazenamento de dados e perifricos, interligadas de forma a executar tarefas de uma forma cooperativa. Genericamente, cada n pode ser uma mquina uniprocessador ou uma mquina SMP, por exemplo. No entanto, usualmente os ns so PCs. (TEIXEIRA et al., 2000).

Todavia possvel projetarmos configuraes de clusters levando em considerao um conjunto de mquinas multiprocessadas. (DANTAS, 2005a). Na Figura 9 encontramos um exemplo de clusters formado por mquinas multiprocessadas.

Figura 9: Cluster de mquinas multiprocessadas. Fonte: DANTAS, 2005a.

Um ambiente de cluster constitui em um sistema formado por hardware e software conectados em um local apenas, servindo a usurios que esto trabalhando somente em uma determinada organizao. (PITANGA, 2004). Segundo (DANTAS, 2005a) estas mquinas podem ou no serem usadas de maneira dedicada: As configuraes de clusters, em termos de arquiteturas computacionais, podem ser entendidas como uma agregao de computadores de uma forma dedicada (ou no) para a execuo de aplicaes especficas de uma organizao.

45

As Figuras 10 e 11 a seguir, procuram diferenciar estas duas idias.

Figura 10: Cluster no-dedicado Fonte: DANTAS, 2005.

Figura 11: Cluster dedicado Fonte: DANTAS, 2005.

Os tipos de hardware empregados nos clusters tm sido classificados de uma forma emprica como NOWs, COWs e Clumps. (DANTAS, 2005a). NOWs (Networks of Workstations) caracterizadas pelo uso de estaes de trabalho distribudas em uma rede local como elementos de hardware para compor os ambientes de cluster. (DANTAS, 2005a). COWs (Cluster of Workstations) diferente das NOWs so geralmente constitudas de mquinas homogneas e dedicadas execuo de aplicaes especificas. Estas configuraes dispem de uma rede especfica para interligao das mquinas. (DANTAS, 2005a). CLUMPs (Cluster of sMPs) so um ambiente composto de mquinas 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 responsvel pela intercomunicao e sincronizao entre todos os ns da rede. Para a aplicao o cluster aparece como um sistema nico. (CHEDE, 2004).

Clusters so denominados como sistemas fracamente acoplados, ou seja, cada membro do cluster possui seu prprio espao de endereamento individual, e a comunicao

46

entre os membros se faz, na maioria das implementaes, pelo mecanismo de troca de mensagens atravs da rede de interconexo. (MACHADO, 2004). Benefcios do cluster:Aumento do nvel de disponibilidade do ambiente atravs da continuidade de um servio, 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 invs de sistemas isolados, e atravs de recursos de loadbalancing (balanceamento de carga), possa mover processos de um componente para outro, maximizando o uso do sistema e melhoramento o seu desempenho. (CHEDE, 2004).

Entre as limitaes do cluster, segundo Chede (2005) destacamos algumas delas: Limitao de ns dependendo do sistema os ns ficam limitados em 12, 16 ou 32.

Escalabilidade do desempenho o uso de uma aplicao que no esteja preparada para rodar neste ambiente, por exemplo, se o banco de dados no 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 ns no sistema no apresenta um ganho de performance devido ao aumento de carga no gerenciamento entre os ns.

Alguns benchmarks com determinadas solues em cluster mostraram que os ganhos de perfomance com a adio de um segundo servidor foi de 1.76 em relao a um single-server; de 2.45 com trs 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 configurao uma das principais restries se refere a este item. Em muitos casos existe a necessidade destes ambientes de se manterem heterogneos.

47

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 usurios que esto trabalhando somente em um projeto, usado exclusivamente para resolver os problemas computacionais de uma determinada organizao. (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 conexo virtual de computadores espalhados em uma rede de computadores. Nestas configuraes um pacote de software apropriado (Condor, Oscar e OpenMosix) auxilia a que computadores distribudos ao longo de uma rede possam servir a solicitaes de terceiros como seus recursos computacionais. (DANTAS, 2005a).

Cluster um conceito parecido com Grid, parte de um mesmo princpio o de paralelismo de processamento (SANTOS, 2005a).

As configuraes conhecidas como grids computacionais representam as infraestruturas com interoperabilidade, entre ambientes computacionais dispersos em uma grande rea geogrfica. Possui uma nfase no compartilhamento em massa de recursos e servios especficos. Alguns exemplos de compartilhamento de recursos so os processadores, os dispositivos de armazenamento e a utilizao de dispositivos especiais. Por outro lado, os servios so caracterizados por determinadas aplicaes que podem ser usadas remotamente. (DANTAS, 2005a).

Simplificando as diferenas na configurao entre Cluster e Grid, podemos utilizar o Quadro 3 para comparao.

Configurao Domnio Ns Segurana do processamento e dos recursos Custo Granularidade do problema Sistemas Operacionais

Cluster nico Milhares Desnecessria Alto, pertence a um nico domnio. Grande Homogneo

Grid Mltiplos Milhes Necessria Alto, todavia dividido entre domnios. Muito Grande Heterogneo

Quadro 3: Diferenas entre as configuraes de cluster e grid Fonte: COLVERO; DANTAS; CUNHA, 2005.

48

Quanto ao domnio, podemos fazer uma analogia entre um cluster e uma rede local (LAN) e uma grid e uma rede geograficamente distribuda (WAN). (DANTAS, 2005a). Sobre a segurana comum que o controle aos recursos sejam mais fcil de serem controlados em ambientes cluster do que em ambientes grid.

Em um ambiente cluster a alocao de recursos efetuada por domnio administrativo centralizado, sendo desnecessria a segurana do processo e do recurso, caso a rede de interconexo (intracluster) seja desacoplada da rede de acesso externo. (COLVERO; DANTAS; CUNHA, 2005).

De uma outra forma, podemos ainda dizer que a principal diferena entre os clusters e os grids baseada na maneira pela qual os recursos e servios so gerenciados. (DANTAS, 2005a). Para facilitar este conceito podemos citar uma outra analogia, utilizando os sistemas telefnicos.

Cada empresa de telefonia representaria uma configurao de cluster, onde a mesma tem seus recursos gerenciados de forma centralizada. [...] Por outro lado, a interligao de diferentes empresas telefnicas, com seus diversos servios, seria um ambiente de grid. (DANTAS, 2005a).

Complementando temos que grid pode ser compreendido como um cluster de clusters, sem restries 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

49

Apesar de a Internet ser formada por sistemas totalmente heterogneos, fracamente acoplados e geograficamente distribudo (PITANGA, 2004), a Grid Computing pode ser confundida com os conceitos usados para caracterizar a Internet e os servios Web.

A web um sistema com interface grfica utilizado na internet, que emprega a abordagem de hyperlink e baseia-se no protocolo HTTP (Hypertext Transfer Protocol). [...] A web no sinnimo de Intenet, e podemos fazer acesso a Internet sem utilizar os servios Web. (DANTAS, 2005a).

Segundo Valim (2002), enquanto a Internet distribui dados e informaes, a Grid Computing partilha capacidade de processamento. Existe a expectativa de que a computao em grade alcance a importncia percebida pela Internet nos dias atuais. Grid Computing apresenta-se como a nova grande evoluo em termos de computao, 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 no existem especulaes de que a grade substitua a Internet. Grid no a prxima gerao da internet, mas sim um conjunto adicional de protocolos e servios que complementam a funcionalidade da rede e que dela pode ser servir para aumentar sua abrangncia. (CHEDE, 2004). Pensando nisso, segundo (NOVO..., 2005) existe pesquisa para o desenvolvimento de um novo protocolo capaz de permitir que as aplicaes escolham entre recursos disponveis e atendam organizaes virtuais com um mtodo mais sofisticado de alocao de recursos, por exemplo. Jonhghun Park, professor assistente na Escola de Cincias da Informao e

50

Tecnologia, autor da pesquisa, disse que a nova tecnologia aumenta a velocidade de alocao em at 10 vezes. (NOVO..., 2005). Informaes e recursos computacionais largamente distribudos, integrados em uma nica rede coesa este o conceito de computao pela Internet permite uma troca de informaes entre os usurios de maneira mais ampla do que possvel hoje. (NOVO..., 2005).Na metade dos anos 90, o termo Grid foi usado para denotar uma proposta de infraestrutura de computao distribuda - um servio para compartilhar poder de processamento e capacidade de armazenamento atravs da Internet - o que potencialmente seria capaz de suprir as necessidades de recursos computacionais impostas pela cincia. A idia de Grid vai alm de simples comunicao entre computadores, e objetiva, em ltima anlise, 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 organizaes virtuais distribudas geograficamente com o objetivo de facilitar a submisso de aplicaes dos usurios. Na Web o usurio dispe de um menu de servios fechados. (DANTAS, 2005a). O que ocorre em um ambiente de grid o inverso, onde o usurio tem de submeter suas aplicaes para serem resolvidas dentro do ambiente por ele montado. (PITANGA, 2004). Uma outra diferena seria que "a conexo a Internet necessria apenas no momento de envio e recepo dos pacotes, permitindo o processamento desconectado.

(BOMBONATO, 2004). Em uma outra escala, (FOSTER, 2002) tambm mostra que a Web no - pelo menos ainda - um Grid, pois apesar de ser aberto, utilizar protocolos de propsito gerais que suportam o acesso a recursos distribudos, mas estes, no so feitos de forma coordenada com interesse na qualidade de servios. Vale ressaltar que o problema real e especfico que est por traz do conceito de Grid "coordenar o compartilhamento de recursos e resolver problemas em uma organizao

51

virtual dinmica e multi-institucional". O compartilhamento exposto no unicamente troca de arquivos, mas acesso direto a computadores, software, dados e recursos. E, a srie de indivduos e/ou instituies definidas pelas regras de compartilhamento formam o que ns chamamos de organizao virtual (virtual organization - VO). (FOSTER, 2002). Chamamos de Organizao Virtual (VO) quando temos participantes que desejam compartilhar recursos para poder concluir uma tarefa. (PITANGA, 2004). Porm encontramos iniciativa que busca a integrao de solues grid e servios web, atravs das Services Grids.

Com Web Services implementamos uma viso arquitetnica que denominada SOA (Service Oriented Architecture), que permite que uma aplicao seja composta por componentes independentes, distribudos e cooperativos. Esta viso compartilhada pelos conceitos de Grid. (CHEDE, 2004).

A Open Grid Standards Architecture (OGSA), em conjunto com comunidades cientifica e indstrias, responsvel por criar padres abertos para desenvolvimento de ferramentas para o Service Grid.

O que a OGSA est tentando fazer, basicamente, harmonizar o trabalho sendo realizado para desenvolver o Globus Toolkit primeiramente, uma iniciativa acadmica, com os chamados "Web Services", os quais a indstria est impulsionando a fim de prover um padro comum para servios oferecidos sobre a World Wide Web. Companhias como IBM, Microsoft, Platform, Sun, Avaki, Entropia, e United Devices tm expressado forte apoio a OGSA. (MENEGOTTO, 2004).

4 CONFIGURAES DE UMA ARQUITETURA UTILIZANDO OS CONCEITOS DE GRID COMPUTING

52

Enquanto fazamos um paralelo da tecnologia grid com sistemas com alguns pontos em comum, pudemos conhecer atributos que caracterizam uma grid, so eles: distribuio geogrfica dos sistemas, exigindo recursos para o gerenciamento das operaes entre mquinas distantes; heterogeneidade; Compartilhamento que permita a no dedicao do sistema a uma nica aplicao; Escalabilidade que permita a sua dinamicidade; adaptabilidade para que seja capaz de se auto-reconfigurar quando um n se tornar indisponvel. (CIRNE, 2004; CHEDE, 2004). A tecnologia empregada para a implementao de uma grid espera que esses atributos possam se apresentar de forma eficiente durante as interaes realizadas entre os diversos 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 no existir e segundo Cirne (2004), isso no deve descaracterizar a grid.

[...]esta discusso prope um conceito e no uma definio para Grid Computacional. Uma plataforma para execuo de aplicaes paralelas que apresenta as caractersticas acima listadas certamente um Grid. Mas a ausncia de alguma das caractersticas no deve automaticamente desqualificar uma determinada plataforma como Grid. (CIRNE, 2004).

Ainda, segundo Goldchleger e Kon (2005), a grid apresenta as seguintes caractersticas:

No substituem sistemas operacionais - nos sistemas distribudos era necessrio um sistema operacional prprio, j na grid no acontece a substituio dos sistemas operacionais das mquinas. Isso acontece devido

53

ao uso de um middleware5 que "prove servios para os usurios e aplicaes da grade." (Goldchleger; Kon, 2005).

Podem integrar recursos distribudos e descentralizados - ou seja, existem vrios domnios administrativos que possuem controle local.

Podem ser utilizados por diversas aplicaes - "alguns sistemas provem suporte as diferentes classe de aplicaes, como aplicaes seqncias e paralelas". (Goldchleger; Kon, 2005).

Podem incluir vrias 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 dos sistemas operacionais, algumas informaes s podem ser obtidas atravs de mecanismos especficos de cada plataforma. (Goldchleger; Kon, 2005).

Adaptabilidade s polticas locais - o administrador do domnio apesar de compartilhar os recursos com outros domnios, deseja priorizar os usurios locais" (Goldchleger; Kon, 2005), portanto, o usurio espera que sua mquina no perca performance.

Complementando e reforando a caracterstica de Grid Computing, citamos Ian Foster (FOSTER, 2002) e seu checklist para auxiliar na definio de um sistema grid:

1)

Recursos coordenados que no se sujeitam a um controle centralizado - (Sistemas em Grid integra e coordena recursos e usurios que vivem no interior de diferentes domnios de controle, por exemplo: o desktop do usurio vs um computador central, existem em diferentes unidades administrativas na mesma empresa ou em diferentes empresas, dirigido a5

Camada formada por um conjunto de softwares capazes de integrar os diversos recursos computacionais do Grid em uma estrutura coerente. (MENEGOTTO, 2005).

54

poltica de segurana, salrio, ttulos e por ai vai de acordo com este ambiente. De qualquer forma, ns estamos lidando com um sistema de gerenciamento local) 2) Utilizar padres, abertos e com interfaces e protocolos de propsito geral - (Sistemas em Grid so construdos de protocolos e interfaces de propsito geral que se dirige um fluxo fundamental como a autenticao, autorizao, 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 aplicao especfica. 3) Prover o mnimo em qualidade de servios - (Sistemas em Grid permitem que os recursos do cliente sejam utilizados em uso coordenado para entregar vrias qualidades de servio, relatando, por exemplo, o tempo de resposta, throughput, disponibilidade, segurana e/ou a recolocao de mltiplos tipos de recursos para se adequar s complexas exigncias do usurio, logo, a utilidade de um sistema combinado significativamente maior que a soma das partes). 6 (FOSTER, 2002, traduo nossa).

Para alcanar os objetivos proposto pela Grid Computing, preciso facilitar as tarefas dos usurios e desenvolvedores de aplicaes atravs de uma camada de abstrao que encapsula a complexidade da infra-estrutura distribuda, a qual potencialmente inclui recursos presentes em diferentes localizaes geogrficas. (GOLDCHLEGER; KON, 2005). Esta camada de abstrao composta por protocolos que permite a interoperatividade nas operaes. Para implementar as funcionalidades que permite interoperabilidade necessrio criar uma srie de protocolos e mecanismos (servios) de que permitam aos usurios acessarem sistemas distribudos por outros locais. (CHEDE, 2004). Porm a grid sob diferentes abordagens podem implementar diferentes modelos de abstrao para atender as exigncias de um determinado projeto. E segundo

(GOLDCHLEGER; KON, 2005) os sistemas em grade podem ser divididos em duas

6

1) coordinates resources that are not subject to centralized control(A Grid integrates and coordinates resources and users that live within different control domainsfor example, the users 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 discovery, and resource access. As I discuss further below, it is important that these protocols and interfaces be standard 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 coordinated fashion to deliver various qualities of service, relating for example to response time, throughput, availability, 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.)

55

categorias: uma que oferea alto desempenho, e outra que tm a funo de integrar recursos com baixo custo, no preocupando com detalhes referentes a alto desempenho.

Os sistemas de Computao em Grade podem ser divididos em duas grandes categorias. Alguns sistemas visam principalmente a integrao de recursos computacionais de alto desempenho. Tais sistemas tendem a oferecer uma ampla gama de funcionalidades, como monitoramento de recursos, integrao de computadores pertencentes a diversos domnios administrativos, e suporte a diversas categorias de aplicaes paralelas. Entretanto, tais sistemas demandam uma implantao complexa, requerendo intervenes dos administradores de rede, alm de equipamentos de alto custo. A segunda categoria objetiva integrar recursos computacionais de baixo custo, tais como computadores pessoais. Tais sistemas possuem implantao simplificada, porm oferecem funcionalidades limitadas. Em alguns casos, no possuem monitoramento de recursos, ou no permitem a execuo de aplicaes paralelas que demandam comunicao entre seus ns, o que impede sua utilizao por determinadas categorias de aplicao. (GOLDCHLEGER; KON, 2005).

Como exemplo de computao em grade com baixo custo, podemos citar o projeto InteGrade, que procurar aproveitar o tempo ocioso das mquinas utilizando de recursos computacionais de baixo custo.

O InteGrade um projeto desenvolvido conjuntamente por pesquisadores de trs instituies: Departamento de Cincia da Computao (IME-USP), Departamento de Informtica (PUC-Rio) e Departamento de Computao e Estatstica (UFMS).[...] O Projeto InteGrade [33, 21] objetiva construir um middleware que permita a implantao de grades sobre recursos computacionais no dedicados, fazendo uso da capacidade ociosa normalmente disponvel nos parques computacionais j instalados O InteGrade possui arquitetura orientada a objetos, onde cada modulo do sistema se comunica com os demais a partir de chamadas de mtodo remotas. O InteGrade utiliza CORBA [27] como sua infra-estrutura de objetos distribudos, beneficiandose de um substrato elegante e consolidado, o que se traduz na facilidade de implementao, uma vez que a comunicao entre os mdulos do sistema abstrada pelas chamadas de mtodo remotas. (Goldchlegery, Kon, 2005).

A respeito do uso de componentes combinados sob a estrutura grid, Chede (2005) afirma que a tecnologia por trs da Grid Computing um conjunto de softwares midlleware que gerenciam recursos distribudos e espalhados pela organizao, disponibilizando como recursos os servidores e eventualmente os desktops da empresa. (CHEDE, 2004). Quanto ao desempenho segundo Santos (2005b) temos que:

56

No ambiente de computao em grade, os protocolos priorizam, normalmente, uma alta taxa de desempenho sustentvel em detrimento a uma baixa latncia de comunicao. As operaes crticas envolvem um grande volume de dados, onde um pequeno atraso no incio da transferncia no compromete a operao de um modo geral.

A estrutura de Grid Computing se apresenta na maioria das vezes como um ambiente capaz de integrar recursos heterogneos. Mas quais as implicaes decorrentes desta integrao? Um grande desafio obter uma forma de encapsular estas diferenas sem comprometer a boa performance. (COLVERO; DANTAS; CUNHA, 2005). A busca por padronizao tentar enfrentar este desafio.

A viso da grade requer os protocolos (e relaes e polticas) que esto no somente abertos e de uso geral, mas tambm padro. So os padres que permitem que ns estabeleam arranjos de resource-sharing (distribuio de recursos) dinamicamente com todo o partido interessado e criar assim algo mais do que um plethora de balkanized, sistemas distribudos incompatveis, non-interoperable. Os padres so tambm importantes como meios de permitir servios de uso geral e ferramentas. (Foster, 2002b, traduo nossa). 7 Sem estas normas, os servios prestados podem ser ineficazes. Entretanto, apesar de no existir uma formalizao mundial, existem dois modelos apresentados, que tm boa aceitao na comunidade cientfica e que podem se tornar padres (de facto ou de direito) de uma arquitetura de grid. (COLVERO; DANTAS; CUNHA, 2005).

Estes dois modelos so 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.

57

Figura 12: Modelo em Camada 1 Fonte: (COLVERO; DANTAS; CUNHA, 2005).

Figura 13: Modelo em Camadas 2 Fonte: (COLVERO; DANTAS; CUNHA, 2005).

Apresentando uma viso geral da Figuras 12, encontramos em Chede (2004) e Dantas (2005a) as seguintes descries de cada camada:

Rede a camada mais baixa constituda de pelos elementos bsicos que so os recursos computacionais, como servidores, PCs e seus sistemas operacionais. Em DANTAS (2005a), encontramos que o nvel de rede a base da conectividade para os recursos de grid.

Recursos constitudo pelo conjunto de recursos que fazem do grid, incluindo servidores primrios e dispositivos de armazenamento. (DANTAS, 2005a).

Middleware Para Chede (2004) esta camada oferece servios bsicos como gesto de recursos distribudos. De uma maneira mais ampla temos que diversos protocolos e funes devem existir na camada de middleware para o suporte dos elementos heterogneos de uma configurao grid. (DANTAS, 2005a).

Aplicaes e servios onde esto os portais de acesso e os programas que exploram a potencialidade das Grids. (CHEDE, 2004). A poro de

58

servios deve prover diversas funes de gerenciamento, incluindo faturamento, contabilidade e medidas de mtricas utilizveis. (DANTAS, 2005a).

Na Figura 13, a abordagem mais genrica. Na camada Ambiente preocupasse com o monitoramento para garantir a qualidade de servio. A camada acima conhecida como Servios de Conectividade define os protocolos bsicos de comunicao e autenticao. Continuando, temos a camada Servios de Recursos, com protocolos de autenticao e comunicao definindo protocolos e APIs (Apllication Programing Interface) para prover segurana na negociao. A prxima camada, Servios de Conectividade, diferentemente da camada Servios de Recursos, lida com a interao entre colees de recursos. E por ltimo, temos a camada Aplicao, que representa as aplicaes dos usurios que operam no ambiente de organizao virtual. (DANTAS, 2005a). Os modelos em camadas tm a funo de oferecer ao usurio acesso transparente ao sistema, deixando a cargo do prprio sistema diversas tarefas como: sincronizao de tarefas, disponibilidade de recursos (processadores, armazenamento, compartilhamento de dado), transferncia de informaes, protocolos de comunicao e segurana. Neste caso, o sistema, seria visto pelo usurio, como um supercomputador virtual. (PITANGA, 2004).

1.4 COJUNTOS DE SOFTWARES E FERRAMENTAS UTILIZADAS PELA GRID

No existe uma classificao oficial dos softwares que podem ser utilizados na composio de Grid Computing. Porm encontramos em algumas bibliografias os seguintes

59

ambientes de software ou ferramentas - MPI, PVM, Middleware, RMS, dentre outras presentes na configurao de diversos Grids Computing. Dantas (2005a) prope uma categorizao geral para entendimento dos ambientes de softwares, dividindo eles em:

Ambiente de Programao 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 Legion).

A classificao apenas uma proposta de organizao funcional dos ambientes de software que empregamos nas configuraes dos clusters e grids computacionais. (DANTAS, 2005a). Apresentando uma viso geral dos softwares utilizados, citamos abaixo aqueles que so amplamente utilizados durante a configurao de Grid Computing. Descrevendo de maneira simplificada as contribuies 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 so ferramentas baseadas no mtodo Message Passing (Passagem de Mensagem) e completa dizendo que:

O Message Passing o mtodo de comunicao baseada no envio e recebimento de mensagens atravs de uma rede de computadores seguindo regras de protocolo de comunicao entre vrios processadores que possuam memria prpria. Os

60

processos possuem acesso memria local. As informaes so enviadas da memria local do processo para a memria local do processo remoto. Nesse modelo, o programador responsvel pela sincronizao das tarefas.

Aplicaes tpicas que se beneficiam dessas fermentas so as aplicaes paralelas.

Uma aplicao paralela composta por vrias tarefas. As tarefas que compem uma aplicao paralela executam em vrios processadores, caracterizando desta forma o paralelismo da execuo da aplicao e conseqente reduo no seu tempo de execuo. Os processadores usados por uma determinada aplicao constituem a plataforma de execuo da aplicao. (CIRNE, 2004).

Uma aplicao escrita utilizando-se de algoritmos e tcnicas de programao paralela pode ser dividida em partes menores e estes podem ser separados e processados independentemente. Cada uma dessas partes de cdigo ser executadas em uma mquina distinta no Grid, melhorando a performance. (MINETTO, 2004).

PVM

O PVM mais antigo que o MPI, tendo surgido em 1989 nos laboratrios da Emory University e Oak Ridge National Laboratory, onde nasceu com o objetivo de criar e executar aplicaes paralelas em um hardware j existente. (FREITAS, 2004). Pacote de softwares que permite a execuo de sistemas operacionais tais como Unix e/ou Windows em um conjunto de computadores heterogneos, 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 configuraes a grande quantidade de recursos

61

pode ser agregada de uma maneira produtiva e prover para os usurios de aplicaes uma forma eficiente de execuo de suas tarefas. (Dantas, 2005a).

MPI ( Message Passing Interface)

O padro, denominado de MPI, foi um esforo conjunto de um grupo composto por empresas envolvidas na comercializao de produtos de alto desempenho (HPC - High Performance Computing), universidades e centros de pesquisa que utilizam massivamente aplicaes distribudas paralelas. (DANTAS, 2005a). Como caractersticas pode-se citar a eficincia, pois foi projetado para executar eficientemente em mquinas diferentes. especificado somente o funcionamento lgico das operaes. (FREITAS, 2004). O grid permite o uso de tcnicas de programao paralela por passagem de mensagens. O ambiente MPI (Message Passing Interface) est disponvel no Grid atravs da verso MPICH-G2 (verso porttil do MPI para o Globus). O padr