computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores...

27
93 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012 Computação distribuída: o melhor aproveitamento de recursos computacionais Lúcia Maria de Sousa Ferrão 1 Rodrigo de Oliveira Plotze 2 Resumo: Este estudo tem por objetivo abordar formas de computação distribuída utilizadas para suprir as necessidades da computação de alto desempenho existentes no mercado atual de forma viável, eficaz e eficiente tanto para empresas quanto para centros de pesquisa. Por meio do compartilhamento de recursos disponíveis localmente (clusters) ou geograficamente distribuídos (grids), é possível viabilizar projetos que necessitem de computação de alto desempenho (processamento de imagens, sequenciamento de DNA, entre outros) ou de alta disponibilidade de dados, tais como os servidores web. Os resultados apresentam uma visão detalhada a respeito de cada tecnologia, bem como em qual cenário cada uma delas é mais indicada. Palavras-chave: Computação Distribuída. Clusters. Grids. Computação em Nuvens. 1 Especialista em Desenvolvimento de Projetos em “.NET” pelo Centro Universitário Claretiano de Batatais (SP). Bacharel em Sistemas de Informação pela mesma Instituição. E-mail: <luciamsferrao@ gmail.com>. 2 Doutor em Ciências da Computação e Matemática Computacional pela Universidade de São Paulo (ICMC-USP). Graduado em Ciência da Computação pela Universidade Paulista (UNIP). E-mail: <[email protected]>. Docente do Centro Universitário Claretiano de Batatais (SP).

Upload: donhi

Post on 21-Nov-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

93Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Computação distribuída: o melhor aproveitamentode recursos computacionais

Lúcia Maria de Sousa Ferrão 1

Rodrigo de Oliveira Plotze 2

Resumo: Este estudo tem por objetivo abordar formas de computação distribuída utilizadas para suprir as necessidades da computação de alto desempenho existentes no mercado atual de forma viável, eficaz e eficiente tanto para empresas quanto para centros de pesquisa. Por meio do compartilhamento de recursos disponíveis localmente (clusters) ou geograficamente distribuídos (grids), é possível viabilizar projetos que necessitem de computação de alto desempenho (processamento de imagens, sequenciamento de DNA, entre outros) ou de alta disponibilidade de dados, tais como os servidores web. Os resultados apresentam uma visão detalhada a respeito de cada tecnologia, bem como em qual cenário cada uma delas é mais indicada.

Palavras-chave: Computação Distribuída. Clusters. Grids. Computação em Nuvens.

1 Especialista em Desenvolvimento de Projetos em “.NET” pelo Centro Universitário Claretiano de Batatais (SP). Bacharel em Sistemas de Informação pela mesma Instituição. E-mail: <[email protected]>. 2 Doutor em Ciências da Computação e Matemática Computacional pela Universidade de São Paulo (ICMC-USP). Graduado em Ciência da Computação pela Universidade Paulista (UNIP). E-mail: <[email protected]>. Docente do Centro Universitário Claretiano de Batatais (SP).

Page 2: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

94 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

1. INTRODUÇÃO

Segundo Pitanga (2003), Deitel e Choffnes (2005), há décadas, apenas visionários da informática poderiam imaginar a quantidade de computadores pessoais (PC’s) disponível na sociedade atual. Em residências, escolas, escritórios ou organizações, o computador é uma ferramenta indispensável para a comunicação, produtividade e processamento de dados, a fim de gerar informações cruciais às tomadas de decisões.

Hoje em dia, os computadores não apenas são mais baratos e acessíveis à maioria da sociedade, como também mais rápidos e poderosos, tanto em processamento quanto em armazenamento de dados. Essa capacidade é suficiente para o uso em pequena escala, porém, para pesquisadores e grandes organizações, que necessitam, constantemente, de alto poder de processamento, os avanços tecnológicos em hardware, principalmente microprocessadores, ainda não trouxeram soluções viáveis, havendo a necessidade de um grande investimento em supercomputadores.

De acordo com Deitel e Choffnes (2005), o melhor aproveitamento dos recursos computacionais baratearia projetos, tornando exequível a solução de processos e problemas complexos, maciços e de processamento intensivo, sem haver a necessidade de aquisição de um supercomputador. A capacidade de várias máquinas pode ser mais bem aproveitada com a divisão dos recursos entre um grupo de computadores, fazendo ser possível que vários usuários compartilhem dos recursos disponíveis, tirando proveito de todo o potencial de processamento ao mesmo tempo.

2. A EVOLUÇÃO DA cOmPUTAÇÃO E DO PROcESSAmENTO DE DADOS E SUA INfLUêNcIA NA cOmPUTAÇÃO DE ALTO DESENPENHO

Segundo estudos de Pitanga (2003) e de Deitel e Choffnes (2005), os avanços tecnológicos da computação (software, hardware, sistemas

Page 3: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

95Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

operacionais, redes, inteligência artificial etc.) vêm sendo acompanhados de perto pela evolução das necessidades computacionais que englobam a denominada “computação de alto desempenho” (processamento – complexo e contínuo –, transferência e gerenciamento de grandes volumes de dados), tornando necessário um maior poder computacional, principalmente nas áreas de programação, pesquisa científica, estudos climáticos, multimídia e gerenciamento de dados.

A computação de alto desempenho, que precisa de um poder computacional maior, eficaz e seguro, disponível, até então, somente por meio de supercomputadores caros e, muitas vezes, inacessíveis à maioria dos centros de pesquisa e organizações, passou por uma grande revolução ao perceber que, utilizando dos avanços computacionais (software, hardware, sistemas operacionais e redes), era possível alcançar um poder computacional maior usando computadores interconectados em rede na execução de aplicações paralelas e distribuídas, com o intuito de resolver problemas de processamento complexos e contínuos de forma rápida e segura.

Com relação às necessidades de processamento, Pitanga (2003, p. 01) aponta que:

A convergência do desempenho entre microcomputadores com um só processador e os supercomputadores motivou o apare-cimento do processamento paralelo e distribuído, que vem ul-trapassar alguns limites do uniprocessamento com redução de custos. Podemos atualmente construir supercomputadores recor-rendo a um conjunto de processadores normais ligados em rede.

Deitel e Choffnes (2005, p. 507) afirmam a importância da rede para a computação distribuída:

À medida que a velocidade das redes era aprimorada, computadores do mundo inteiro tornavam-se cada vez mais interconectados. A com-putação remota via rede, originalmente reservada para grandes insta-lações de computadores e ambientes acadêmicos, foi amplamente di-

Page 4: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

96 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

fundida. [...] Dividir recursos entre um grupo de máquinas permite que vários usuários os compartilhem e, ao mesmo tempo, garante que haja recursos suficientes para um trabalho ocasional de grande porte.

2.1 Arquiteturas computacionais – uniprocessamento, multiprocessamento e supercomputadores

Deitel e Choffnes (2005, p. 446) definem como sendo de arquitetura uniprocessadora ou monoprocessadora computadores do tipo mais simples, isto é, máquinas em que é executada apenas uma instrução por vez. Segundo os autores, “[...] computadores de fluxo único de instruções, fluxo único de dados [...]. São os monoprocessadores tradicionais nos quais um único processador busca uma única instrução por vez e a executa sobre um único item de dado”.

Eles definem, ainda, a arquitetura multiprocessador como sendo computadores que contêm mais de um processador, compartilhando uma memória ou um conjunto de memórias.

O termo “sistema de multiprocessamento” engloba qualquer sistema que contenha mais de um processador. Entre os exemplos de mul-tiprocessadores estão os computadores pessoais de dois processa-dores, servidores de alta capacidade que contêm muitos processa-dores e grupos distribuídos de estações de trabalho que trabalham juntas para executar tarefas. (DEITEL; CHOFFNES, 2005, p. 446).

A Taxonomia de Flynn, definida por Michael J. Flynn (1966), classifica a arquitetura computacional de acordo com o processamento do fluxo de instrução e de dados. O Quadro 1 demonstra, resumidamente, as características básicas dessa taxonomia.

Page 5: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

97Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Quadro 1: Taxonomia de Flynn.

fonte: Adaptado de Deitel e Choffnes (2005).

2.2 Supercomputadores x computação distribuída

Segundo Deitel e Choffnes (2005) e Morimoto (2007), a utilização de supercomputadores foi empregada em muitas organizações, empresas e, principalmente, instituições científicas. Entretanto, uma implantação desse tipo, apesar de ser muito poderosa, torna-se inviável, tendo em vista o desenvolvimento de microprocessadores poderosos a um baixo custo e de redes de alta velocidade.

A computação distribuída, especialmente a baseada em cluster, começou a ganhar espaço devido à evolução da computação e, principalmente, ao aperfeiçoamento das redes de computadores. Deve-se, portanto, analisar opções viáveis para a implantação de um sistema de computação de alto desempenho, pois, em vez de investir em supercomputadores, é possível utilizar sistemas de processamento paralelo e distribuído ou, ainda, clusters ou grids.

Page 6: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

98 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

O Quadro 2 demonstra, resumidamente, algumas características da utilização de supercomputadores e computação distribuída.

Quadro 2: Características de supercomputadores e computação distribuída ou paralela.

fonte: Acervo pessoal.

2.3 computação distribuída – processamento paralelo e processamento distribuído

Segundo Piske (2009, p. 04), “processamento paralelo”, ou “computação paralela”, consiste em executar as instruções dos programas de forma dividida, entre múltiplos processadores internos. Algumas aplicações que o utilizam são a previsão meteorológica, a renderização de efeitos especiais (cinema) e as simulações financeiras, dentre outras.

Computação paralela é uma técnica de programação cujo objetivo é executar operações em paralelo, desta maneira obtendo maior desempenho em sistemas multiprocessados, grids etc. De modo geral o trabalho de tornar um programa capaz de ser executado em paralelo consiste basicamente em quebrar suas tarefas em partes menores.

Ainda de acordo com Piske (2009, p. 04), “processamento distribuído”, ou “computação distribuída”, consiste em executar as instruções dos programas de forma dividida, porém, diferentemente do processamento paralelo, as partes das instruções podem ser executadas em máquinas distintas.

Page 7: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

99Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Computação distribuída é um sub-ramo da computação paralela na qual parte das operações ocorre em máquinas difer-entes daquela executando o fluxo principal de um programa. A maneira como cada propriedade da computação distribuí-da é aplicada é variável de acordo com a arquitetura utilizada.

Analisando as citações anteriores, pode-se entender por que o processamento distribuído deve ser mais bem aproveitado, principalmente por organizações que buscam alto poder computacional. Esse tipo de processamento é uma solução confiável, consistente e economicamente atraente, pois torna possível o uso de recursos computacionais distribuídos em uma rede centralizada ou globalmente distribuída, utilizando sobras de capacidade computacional com pouco custo. Algumas aplicações que se servem do processamento distribuído são a bioinformática, a meteorologia, o petróleo e a física de altas energias.

A “figura 01” ilustra a evolução da computação de alto desempenho.

figura 01: Mapa cronológico da computação de alto desempenho.

fonte: Pitanga (2003, p. 4).

3. cLUSTER

Segundo Pitanga (2003), a computação em cluster não é uma área nova, mas, sim, o resultado de um constante aperfeiçoamento de estudos e pesquisas em computação distribuída e paralela, engrenada, principalmente, pelo desenvolvimento de processadores de alto desempenho, aprimoramento das redes de comunicação e padronização de ferramentas de computação distribuída e paralela tanto em softwares quanto em hardwares.

Page 8: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

100 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

O primeiro cluster de microcomputadores nasceu em 1994 na NSA-GSFC, onde se pesquisava uma solução com custo viável para resolv-er problemas computacionais típicos encontrados na ciência espacial. A agência espacial necessitava de um equipamento que processasse na ordem de um gigaflop, o que significa um bilhão em operações em ponto flutuante por segundo. Entretanto, um supercomputador com este nível de desempenho custava em torno de um milhão de dólares, o que era considerado um investimento muito alto para ser utilizado somente por um grupo de pesquisadores. Os pesquisadores Sterling e Donald J. Becker decidiram então interligar 16 computa-dores pessoais, cada um contendo um microprocessador 486DX4-100, usando o sistemas operacional Linux e uma rede padrão Eth-ernet. Usando para as aplicações científicas, este conjunto atingiu a marca de 70 megaflops [...]. O valor total desta plataforma foi de U$40.000,00 ou 10% do preço de uma máquina comercial, em 1994, com o desempenho equivalente. (PITANGA, 2003, p. 41-42).

De acordo com Piske (2009) e Pitanga (2003), clusters podem ser definidos como um sistema fisicamente centralizado, no qual os nós de um cluster são distribuídos em uma mesma área física e os recursos de processamento e memória são pertencentes a uma única rede, onde um servidor gerencia e escalona os recursos por meio dos nós.

[...] um conjunto de múltiplos nós interconectados que trabalham cooperativamente juntos como um único recurso. [...] os recursos de um clusters são pertencentes a uma única organização e eles são gerenciamentos por um recurso de gerenciamento e escalonamento centralizado. Isto significa que os usuários de um cluster tem que pas-sar por um sistema centralizado que gerencia a alocação de recursos para os trabalhos das aplicações. (PISKE apud BUYYA, 2009, p. 08).

A arquitetura de cluster fornece o poder dos supercomputadores a um baixo custo, aproveitando a interconexão de computadores em rede com recursos da computação distribuída e possibilitando várias vantagens, tais como:

Page 9: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

101Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Escabilidade: manter, de forma uniforme, a capacidade de processamento de uma grande e crescente quantidade de dados.

Alto desempenho: processar dados complexos por meio da distribuição do problema em computadores do nó.

Alta disponibilidade: manter a disponibilidade de serviços prestados por sistemas computacionais, bancos de dados e servidores, por meio da replicação de serviços e servidores por redundância de hardware e software.

melhor aproveitamento: aproveitar recursos computacionais ociosos.

Uso de hardware de baixo custo: aproveitar máquinas diariamente para o processamento de dados em horários de pico.

3.1 classificação e composição de um cluster

Clusters tendem a ser classificados conforme o grau de paralelismo (quantidade de operações que ocorrem simultaneamente) ou granularidade (interdependência de resultados de pequenas operações), encaixando-se em duas categorias de aplicações, descritas no “quadro 3”.

Quadro 3: Categorias de clusters.

fonte: Adaptado de Pitanga (2003).

Page 10: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

102 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Os clusters ainda podem ser classificados conforme as características necessárias à funcionalidade que deles se deseja obter. São elas:

3.1.1 Hardware

Cluster de Pcs ou pilha de Pcs: cluster composto de computadores pessoais interligados em rede, tendo propriedade de cluster dedicado ou não dedicado.

Cluster de Workstations (cOWs): cluster composto de computadores pessoais completos (com teclado, monitor, mouse), conectados em rede, tendo propriedade de cluster não dedicado.

Cluster de SmPs (cLUmPs): clusters compostos por diversos processadores interligados entre si por meio de uma única memória e de um único sistema operacional, sendo possível compartilhar todos os recursos computacionais disponíveis (discos, placas de rede, impressoras etc.) entre os processadores, formando uma única e grande máquina, com alta capacidade de processamento, devido ao número de processadores disponíveis. É possível denominá-los “clusters comerciais”, de processamento dedicado com arquitetura de compartilhamento total, empregados em servidores de pequeno porte, tais como os fabricados pela IBM, HP, Cray, entre outros.

3.1.2 Propriedade

Dedicado: recursos dos nós do cluster utilizados para efetuar apenas os processamentos requisitados.

Não dedicados: recursos dos nós do cluster utilizados na ociosidade das estações de trabalho, ou seja, quando não estiverem sendo utilizados pelo usuário, por meio de pontos de verificação, balanceamento e migração de processos.

Page 11: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

103Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

3.2 Componentes de um cluster

De acordo com Pitanga (2003), para a implementação de um cluster, são necessários vários componentes de software e hardware, e a escolha correta pode garantir a facilidade na administração, bem como flexibilidade, desempenho e retorno de investimento. Os principais componentes estão apresentados no “quadro 4”.

Quadro 4: Principais componentes na implementação de um cluster.

fonte: Adaptado de Pitanga (2003).

Analisaremos duas implementações em cluster: a primeira, baseada no Projeto Beowulf (cluster de PCs), e a segunda, implementada pelo INPE e baseada em cluster de SMPs (CLUMPs).

Page 12: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

104 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

3.3 Cluster Beowulf

Segundo Pitanga (2003), o Projeto Beowulf foi desenvolvido pela NASA, em 1992, para processar informações coletadas via satélite e utilizadas em simulações de fenômenos físicos e de evolução das galáxias, nos quais era necessário recolher, analisar e manipular grandes coleções de dados complexos. Contudo, o primeiro cluster de microcomputadores foi implementado só em 1994, por pesquisadores que interligaram 16 computadores pessoais utilizando o sistema operacional Linux e uma rede Ethernet, gerando 70 megaflops. O Projeto Beowulf é muito bem-sucedido, bem como é modelo para novas implementações e estudos e para o aperfeiçoamento da computação distribuída, devido ao uso de hardware de baixo custo e de software aberto, que possibilita suprir, de forma econômica e viável, necessidades tanto de áreas acadêmicas quanto de organizações e empresas.

Clusters implementados pelo modelo Beowulf são do tipo HPC e enquadram-se na Taxonomia de Flynn como do tipo multicomputador ou MIMD. Têm como principais características:

Utilização de computadores pessoais com componentes viáveis e disponíveis no mercado.

Processamento dedicado.Possibilidade de incorporar mais nós ao sistema.Alta disponibilidade e independência, o que resulta na não afetação

do cluster caso algum nó venha a faltar ou parar.Software de alto desempenho e economicamente viável.Na “figura 2”, é possível observar melhor o sistema, que é distribuído

entre servidor e clientes. O servidor é responsável por controlar, monitorar e distribuir as tarefas entre os clientes (nós), e, por sua vez, estes são responsáveis por efetuar o processamento dos dados destinados a eles pelo servidor. Quanto ao custo de implementação, o site Química Nova (2010) afirma que “[...] enquanto cada nova máquina que forma o ‘cluster’, dependendo dos componentes escolhidos, tem um custo médio de R$ 3.000,00, uma máquina da série RISC/6000 SP (POWER3-II/

Page 13: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

105Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

POWER4) da IBM pode variar de R$ 3.200,00 a R$ 280.000,00”.

figura 2: Estrutura básica de um cluster implementado pelo modelo do Projeto Beowulf.

fonte: adaptado de Química Nova (2010).

A “figura 3” demonstra o teste de desempenho de um cluster implementado pelo modelo do Projeto Beowulf. Analisando as descrições sobre ele é possível compreender por que esse modelo vem sendo bastante utilizado para implementar computação distribuída em cluster em várias organizações que necessitam da computação de alto desempenho com baixo custo de hardware.

Page 14: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

106 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

figura 3: Teste de desempenho de cluster implementado pelo modelo do Projeto Beowulf.

Fonte: Química Nova (2010).

3.4 Cluster utilizado pelo INPE

Analisaremos, agora, a solução encontrada pelo CPTEC (Centro de Previsão de Tempo e Estudos Climáticos) de Cachoeira Paulista para realizar previsões climáticas para todo o país (Figura 4).

Page 15: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

107Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

figura 4: Cluster da CPTEC em Cachoeira Paulista.

fonte: INPE (2010).

A CPTEC faz parte do INPE e, desde o ano de 2007, conta com a utilização de um cluster que está na lista dos mais rápidos computadores do mundo – até então, ela utilizava o supercomputador NEC SX-6, com 12 nós, migrando de supercomputadores com processadores vetoriais para clusters com processadores SMP, seguindo uma tendência mundial (Quadro 5).

Page 16: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

108 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Quadro 5: Características do novo cluster do CPTEC/INPE.

fonte: Adaptado de CPTEC (2010).

Segundo Pitanga (2003), a implementação de clusters é uma solução viável e adaptável a várias áreas que se utilizam da computação de alto desempenho e necessitam de alto poder computacional. É preciso, porém, um levantamento das disponibilidades de recursos econômicos e de recursos físicos, tais como refrigeração, instalações e equipamentos que irão constituir todo o sistema de cluster, pois a análise das disponibilidades levantadas influenciará a escolha de uma melhor opção para a organização.

4. GRID

Segundo Pitanga (2003, p. 178), “Um grid é um ambiente computacional de alto desempenho, o qual é caracterizado por prover o compartilhamento geograficamente distribuído de serviços por organizações distribuídas geograficamente”. Assim, ao contrário do cluster, o grid possui uma estrutura descentralizada, sendo utilizado quando o cluster já não pode mais gerar as soluções de processamento necessárias. Tem como objetivo disponibilizar e compartilhar recursos computacionais geograficamente distribuídos.

Ainda de acordo com Pitanga (2003), a principal diferença entre clusters e grids está no gerenciamento de recursos. Enquanto, em um

Page 17: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

109Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

cluster, o gerenciamento de recursos e de tarefas executadas é feito pelo servidor, com o objetivo de visão única do sistema, em um grid, cada organização gerencia apenas os seus computadores, com o objetivo de alcançar a interoperabilidade entre as organizações que o compõem. Deitel e Choffnes (2005, p. 545) descrevem a computação em grid como “computação em grade”, afirmando que:

A computação em grade liga potencialmente números enormes de re-cursos computacionais (como computadores, dispositivos de armazena-mento e instrumentos científicos), que estão distribuídos por uma rede para resolver problemas complexos, maciços, de computação intensiva.

Analisando as citações de Pitanga (2003) e a de Deitel e Choffnes (2005), é possível entender que, por meio da computação em grid, se pode quebrar em partes pequenas um problema impossível de ser processado em um único sistema computacional, as quais serão enviadas a computadores que fazem parte dos grids espalhados pelo mundo. Desse modo, esses computadores irão processar os dados, e o resultado será enviado e unido aos outros milhares de resultados obtidos (Figura 5).

figura 5: Arquitetura de um grid.

fonte: Adaptado de Cirne e Santos-Neto (p. 20).

Page 18: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

110 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

É necessário, porém, classificar em que tipo de aplicação o grid será utilizado e quais os tipos de equipamento que o irão compor. Segundo Pitanga (2003), é possível classificar as aplicações em grid conforme a utilização dos computadores que o irão compor o mesmo, podendo ser:

Supercomputação distribuída: compartilhamento do poder computacional de supercomputadores quando a necessidade de processamento não é solucionável em um único sistema computacional.

computação de alto desempenho: compartilhamento do poder computacional de laboratórios ou computadores geograficamente distribuídos que é utilizado para escalonar tarefas em máquinas geograficamente distribuídas.

computação sob demanda: compartilhamento do poder computacional de computadores para suprir as necessidades de recursos não disponíveis localmente, empregando recursos de software, dados e processamento somente de forma distribuída.

computação para grande quantidade de dados: compartilhamento do poder computacional para armazenamento de dados.

computação colaborativa: compartilhamento do poder computacional de computadores para o compartilhamento de aplicações e recursos computacionais sem custo voltado para estudos e orientações.

Pitanga (2003), assim como Deitel e Choffnes (2005), apresenta um modelo para a computação em grid dividido em cinco camadas (Figura 6a), as quais possibilitam a interoperabilidade e modularidade entre sistemas e equipamentos heterogêneos. Pitanga ainda descreve um segundo modelo (Figura 6b) de arquitetura em grid, este dividido em quatro camadas.

Page 19: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

111Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

figura 6: Equivalência funcional entre modelos para grids e o padrão TCP/IP utilizado pela internet.

fonte: Adaptado de Pitanga (2003, p. 181-184).

4.1 LHc Large hadron collider

Segundo pesquisas no site da CERN (2010), o LHC é um dos instrumentos científicos da Organização Europeia para Pesquisa Nuclear (CERN). Localizado na fronteira entre Suíça e França, ele é um gigantesco acelerador de partículas, feito com o intuito de ajudar físicos e cientistas a estudarem e a responderem questões na área de Física de Partículas.

Ainda segundo o site da CERN (2010, tradução nossa), o LHC:

Consiste, principalmente, de um anel de 27km de imãs supercon-dutores com uma série de estruturas de aceleração para aumentar a energia das partículas ao longo do caminho. [...] Irá produzir cerca de 15 petabytes (15 milhões de gigabytes) de dados por ano – suficiente para encher mais de 1,7 milhão de DVDs de camada dupla por ano!

Esses dados não poderiam ser analisados por programas executados em PCs, e a utilização de supercomputadores tornaria inviável o projeto. É por isso que a CERN e os centros de estudo parceiros lideraram o desenvolvimento do LHC Computing Grid, que tem como principal

Page 20: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

112 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

objetivo ligar os centros de computação de grande porte ao redor do mundo.

Os dados dos experimentos do LHC são distribuídos ao redor do mundo [...]. Após o processamento inicial, esses dados são distribuídos aos 11 centros de computação em geral – Canadá, França, Alemanha, Itália, Holanda, países nórdicos, Espanha, Taiwan, Reino Unido, e dois sites nos EUA – com capacidade de armazenamento suficiente para uma grande fração de dados. (CERN, 2010, tradução nossa).

No entanto, além da utilização de computadores de grande porte em centros de computação, o LHC, por meio do conceito de computação voluntária, empregado pelo LHC@Home, também explora o poder de processamento dos PCs. Funciona da seguinte forma: o internauta cria uma conta no site LHC@Home, e uma ou mais aplicações poderão ser atribuídas ao PC, usando seus ciclos de processamento ocioso utilizando a plataforma de software para computação distribuída BOINC (vide Tópico 4.3). Então, o aplicativo recebe as aplicações a serem processadas, escalona o processamento de acordo com sua disponibilidade e, depois de processados os dados, retorna ao servidor do projeto os resultados obtidos. Segundo Marques (2005), a física de altas energias precisará de cerca de 70.000 computadores pessoais, que irão ajudar no processamento dos dados levantados pelo LHC.

4.2 SETI@Home

Segundo Deitel e Choffnes (2005, p. 546), o SETI@Home é:

[...] uma implementação popular de computação em grade. O SETI@Home habilita indivíduos a participar de um esforço científico que pro-cura vida inteligente em outros lugares do universo. Os computadores dos participantes, quando não estão em uso, descarregam dados que representam sinais do espaço sideral do servidor do SETI@Home, anal-isam esses dados e retornam os resultados ao servidor do SETI@Home.

Page 21: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

113Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

De acordo com o site do Projeto SETI@Home (2010), o Projeto SETI capta sinais de rádio por meio de radioscópicos, analisando-os digitalmente. Para tanto, quanto maior for o poder computacional, maior será a possibilidade de cobrir faixas de frequência maior com maior abrangência de sinal. Projetos anteriores ao SETI utilizavam supercomputadores para fazer as análises dos dados, porém, em 1995, David Gedye propôs a implementação de um supercomputador virtual composto por computadores conectados à internet, dando início, assim, ao Projeto SETI@Home, que foi lançado em maio de 1999.

Da mesma forma que acontece no LHC@Home, o usuário deve criar uma conta no site do SETI@Home e baixar a plataforma de software para computação distribuída BOINC (vide Tópico 4.3). Por meio de um protetor de tela, os dados a serem processados serão requisitados ao servidor e executados no PC; após o processamento, o resultado é reenviado ao servidor.

É uma tarefa interessante e difícil. Há tantos dados para analisar que parece impossível! Felizmente, as tarefas de análise de dados podem ser facilmente quebradas em pequenos pedaços que podem ser tra-balhados separadamente e em paralelo. Nenhuma das peças depende de outras peças. [...] Nos próximos dois anos todo o céu como visto do telescópio será digitalizado três vezes. Achamos que isso será su-ficiente para este projeto. (SETI@HOME, 2010, tradução nossa).

De acordo com o site SETI@Home (2010), os requisitos básicos para participação no projeto são:

Download inicial de, aproximadamente, 10MB.20MB de espaço livre em disco e 64MB de RAM.Pentium 4 de 2GHz (disponibilidade de, pelo menos, duas horas por

semana; logo, computadores mais lentos terão de, proporcionalmente, executar mais).

Page 22: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

114 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

4.3 Boinc

O BOINC (Berkeley Open Infrastructure For Network Computing – Infraestrutura Aberta para Computação Distribuída da Universidade de Berkeley) é uma plataforma de software para computação distribuída que visa utilizar os recursos livres de PCs para processar dados de projetos científicos distribuídos, tais como:

climateprediction.net: estudar alterações climatéricas.LHc@Home: melhorar o design do acelerador de partículas CERN

LHC.Predictor@Home: investigar doenças relacionadas com proteínas.SETI@Home: procurar por evidências de vida extraterrestre via

rádio.

5. cOmPUTAÇÃO Em NUVENS (Cloud Computing)

Velte e Elsenpeter (2011, p. 04) descrevem a computação em nuvens da seguinte forma “[...] a cloud computing é uma idéia que permite utilizar as mais variadas aplicações via internet, em qualquer lugar independente da plataforma, com a mesma facilidade de tê-las instaladas em nosso próprio computador [...]”.

Com relação ao conceito “computação em nuvens” os sites Tecmundo (2011) e iMasters (2010) dizem que:

Embora pareça se tratar de uma novidade, o armazenamento na chamada nuvem acontece desde o princípio da internet, embora em es-cala bastante reduzida. Exemplo disso são as mensagens de email, que desde sua invenção dependem de servidores próprios aos provedores do serviço para funcionar corretamente. (TECMUNDO, 2011).

Nesta nova arquitetura o seu computador precisa apenas de um sistema operacional (que importa cada vez menos), de um nav-

Page 23: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

115Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

egador Internet como a Internet Explorer. [...] Para estas aplica-ções você não precisa instalar aplicativos no seu computador, ter a sua disposição um grande poder de processamento e muito menos ter em seu micro discos rígidos imensos, já que tudo está na rede. Um bom exemplo desta nova arquitetura é o Google Docs (http://docs.google.com), um editor de textos e planilhas eletrônicas com-pletamente disponível através da Internet. (IMASTERS, 2010).

De acordo com Velte e Elsenpeter (2011, p. 06-07) de forma generalizada a base da computação em nuvens é composta de elementos como: clientes, servidores distribuídos e data center, sendo o data center “[...] um conjunto de servidores onde os aplicativo é armazenado. Poderia ser um grande quarto no porão de seu edifício ou em um quarto cheio de servidores no outro lado do mundo que você acessa através da Internet.” Segundo Rydlewski (2009):

Todos os gigantes da tecnologia – Google, Microsoft, Ama-zon, IBM, HP – mantêm estruturas desse tipo em várias locali-dades. O Google sustenta pelo menos 36 centrais dispersas pelo mundo e tem planos de construir novas unidades sobre bal-sas, em pleno mar, para aproveitar a energia gerada pelas on-das (os data centers são consumidores frenéticos de energia).

São exemplos de aplicativos executados em servidor que contemplam o conceito de computação em nuvens os editores de texto e as planilhas eletrônicas disponíveis na internet, tais como o Google Docs (http://docs.google.com).

Velte e Elsenpeter (2011) citam ainda algumas empresas de grande porte tais como:

Amazon: uma das primeiras a oferecer o serviço de computação em nuvens sendo a de serviço mais amplo, proporciona maquinas virtuais para empresas, armazenamento virtual de arquivos de ate 5GB, entre outros.

Google: como dito anteriormente alem de disponibilizar editores de texto e planilhas eletrônicas on-line o Google ainda apóia o

Page 24: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

116 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

desenvolvimento de para softwares on-line por meio da plataforma Google App Enigne.

microsoft: a solução em computação em nuvens um sistemas operacional denominado Windows Azure que proporciona a utilização de aplicativos Windows e o armazenamento de arquivos nos data centers da Microsoft. Para novas versões do Office a Microsoft planeja uma opção de navegação integrada que possibilitará a leitura e edição de documentos on-line.

6. cONcLUSÃO

A divisão de recursos entre um grupo de máquinas e a virtualização de aplicativos e dados são alternativas encontradas para suprir a atual necessidade computacional, que cada vez mais necessita de alto poder computacional, eficácia, segurança, disponibilidade e mobilidade de recursos computacionais.

É possível concluir que com a divisão de recursos entre um grupo de máquinas por meio de da computação em cluster ou em grid é possível compartilhar recursos computacionais, aproveitando todo potencial de processamento dos equipamentos evolvidos. Sendo uma solução viável e adaptável a várias áreas que se utilizam da computação de alto desempenho e necessitam de alto poder computacional. O melhor aproveitamento dos recursos computacionais barateia projetos, tornando viável o processamento de dados, problemas complexos ou de processamento intensivo, uma vez que esses dados não poderiam ser analisados por programas executados em computadores normais, e a utilização de supercomputadores tornaria iniviável o desenvolvimento de muitos projetos.

Concluiu-se também que utilização do cloud computing ou computação em nuvens é uma alternativa que possibilita cortar custos operacionais, uma vez que é possível utilizar as aplicações on-line em qualquer lugar sem a necessidade de telas instaladas no computador, o

Page 25: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

117Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

armazenamento de dados virtual, a acessibilidade e segurança também são pontos fortes da computação em nuvens uma vez que todos os dados e informações necessárias para tomada de decisões e negociações estarão em grandes data centers disponíveis e acessíveis a todo o momento e em todo lugar.

REfERêNcIAS

BOINC. Software open-source para a computação voluntária e rede de computação. Disponível em: <http://boinc.berkeley.edu/>. Acesso em: 03 nov. 2010.

CERN – ORGANIZAÇÃO EUROPEIA PARA PESQUISA NUCLEAR. Disponível em: <http://public.web.cern.ch/public/en/lhc/lhc-en.html>. Acesso em: 03 nov. 2010.

CIRNE, W.; SANTOS-NETO, E. Laboratório de sistemas distribuídos – LSD. Disponível em: <www.siban.com.br/destaque/16_carta.pdf>. Acesso em: 17 nov. 2009.

CPTEC – CENTRO DE PREVISÃO DE TEMPO E ESTUDOS CLIMÁTICOS. Novo cluster do cPTEc/INPE entra em operação em agosto. Disponível em: <http://www.cptec.inpe.br/noticias/noticia/7023>. Acesso em: 28 out. 2010.

DEITEL, H. M; DEITEL, P. J; CHOFFNES, D. R. Sistemas operacionais. São Paulo: Pearson Prentice Hall, 2005.

TECMUNDO. Entenda a computação em nuvens em apenas 90 segundos. Disponível em: <http://www.tecmundo.com.br/computacao-em-nuvem/13395-entenda-a-computacao-em-nuvens-em-apenas-90-segundos.htm>. Acesso em: 31 jan. 2012.

IMASTERS. computação nas nuvens – Parte I. Disponível em: <http://imasters.com.br/artigo/10157/tendencias/computacao_nas_nuvens_parte_i/>. Acesso em: 12 nov. 2010.

INPE – INSTITUTO NACIONAL DE PESQUISAS ESPACIAIS. Novo sistema de supercomputação mostra desempenho superior ao esperado. Disponível em: <http://www.inpe.br/noticias/noticia.php?Cod_Noticia=2221>. Acesso em: 30 ago. 2010.

Page 26: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

118 Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

LHc@HOmE. LHc @ Home é um programa de computação voluntária. Disponível em: <http://lhcathome.cern.ch/>. Acesso em: 03 nov. 2010.

MARQUES, G. físicas, tendências e perspectivas. São Paulo: Livraria da Física, 2005.

MORIMOTO, E. C. Hardware, o guia definitivo. GDH e Sul Editores, 2007.

PISKE, O. R. computação em grid. Disponível em: <www.angusyoung.org/arquivos/artigos/grid_computing.pdf>. Acesso em: 17 nov. 2009.

PITANGA, M. computação em cluster: O estado da arte. Rio de Janeiro: Brasport, 2003.

_______. computação em grade – uma visão introdutória. Disponível em <http://www.clubedohardware.com.br/artigos/124/4>. Acesso em: 12 ago. 2010.

RYDLEWSKI, Carlos. Computação sem fronteiras. Revista Veja, n. 2125, 12 ago. 2009. Disponível em: <http://veja.abril.com.br/120809/computacao-sem-fronteiras-p-062.shtml>. Acesso em: 09 fev. 2012.

QUÍMICA NOVA. Aspectos técnicos envolvidos na construção de um “Cluster Beowulf”. Disponível em: <http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100-40422003000300018#fig1>. Acesso em: 20 out. 2010.

______ Tabela 2. Disponível em: <http://www.scielo.br/img/revistas/qn/v26n3/15667t2.gif>. Acesso em: 20 out. 2010.

SETI@Home. O que é o SETI @ home? Disponível em: <http://setiathome.ssl.berkeley.edu/>. Acesso em: 03 nov. 2010.

VELTE, A. T.; VELTE, T. J.; ELSENPETER, R. cloud computing: Computação em nuvem - uma abordagem prática. Rio de Janeiro: Alta Books, 2011.

Page 27: Computação distribuída: o melhor aproveitamento de ... rendo a um conjunto de processadores normais ligados em rede. Deitel ... desempenho em sistemas multiprocessados, ... Escabilidade:

119Linguagem Acadêmica, Batatais, v. 2, n. 1, p. 93-119, jan./jun. 2012

Title: Distributed computing: best computer resource utilization.Author: Lúcia Maria de Sousa Ferrão; Rodrigo de Oliveira Plotze.

ABSTRAcT: This work presents a study of distributed computing techniques applied to high performance applications. through the sharing of computational resources available locally (clusters) or geographically distributed (grid), it is possible viable projects that need high performance computing (image processing, processing uncertain calculations, such as particle physics, dna sequencing) or high availability of data (web servers, systems banking, and others). the results present a detailed overview about each technology, and which scenario is more appropriately.Keywords: Distributed Computing. Clusters. Grids. Cloud Computing.