Вы находитесь на странице: 1из 21

CLUSTER: UMA ABORDAGEM COMPUTAO PARALELA DE ALTA VELOCIDADE

Mauro S. M. Rodrigues

Novembro de 2007

ndice Resumo ............................................................................................................................ 3 Introduo ........................................................................................................................ 4 Reviso Bibliogrfica ...................................................................................................... 5 Metodologia ..................................................................................................................... 8 Princpios bsicos da computao paralela ..................................................................... 9 O que um cluster? ....................................................................................................... 10 Tipos de cluster ............................................................................................................. 10 O openMosix ................................................................................................................. 13 Migrao de processos ................................................................................................... 13 O cluster VRaptor .......................................................................................................... 15 Desempenho e testes ...................................................................................................... 16 Projetos Futuros ............................................................................................................. 19 Concluso ...................................................................................................................... 20 Referncias Bibliogrficas ............................................................................................. 21

Resumo O Objetivo deste artigo apresentar conceitos da computao paralela, mais especificamente sobre clusters e seus softwares gestores. A estrutura do artigo gira em torno de conceitos principais sobre arquiteturas paralelas e computao de alta performance, focando a seguir em clusters e seus softwares, como o openMosix que ser destaque, finalizando com uma breve anlise do Cluster VRaptor da Universidade Federal de Itajub.

Palavras-chave: Cluster, arquiteturas paralelas, openMosix, alta performance, VRaptor, desempenho.

Introduo A computao tem sido uma das cincias que mais evoluiu ao longo dos ltimos 20 anos, o poder de processamento cresceu a passos largos e, junto a ele, surgiram cada vez mais aplicaes que necessitam desse poder. Entretanto, principalmente no meio acadmico e cientfico, existem softwares que exigem mquinas super poderosas para sua execuo, as quais no podem ser atendidas pelos computadores comerciais de hoje em dia, os personal computers (PC), ou mesmo pelas Workstations, pois demorariam horas, dias, meses e at mesmo anos at que o resultado das operaes fosse alcanado, dada a complexidade dos clculos, ou dos dados de entrada; Entre elas podemos citar, por exemplo, aplicaes de geoprocessamento, anlise geomtrica de molculas, renderizao de imagens e, at mesmo, pesquisas em prol da cura de doenas como o cncer. Surgiu assim, a necessidade do uso de supercomputadores para a execuo paralela de algumas tarefas, mas essa metodologia vem dando lugar aos clusters, devido s suas facilidades como o baixo preo e simplicidade na sua construo. Um cluster, assim como um supercomputador, uma mquina de arquitetura paralela, entretanto ele composto de 2 ou mais computadores (sejam eles PC e/ou Workstations) ligados atravs de uma rede de alta velocidade e dedicada que, pelos algoritmos do software gestor do cluster, distribuem as tarefas (processos e/ou threads) entre si de forma transparente ao usurio, isto , formam um supercomputador virtualmente. Ao longo deste artigo, sero abordados conceitos sobre clusters, softwares gestores (mais especificamente o openMosix), alm de uma breve anlise do desempenho utilizado os dados providos pelo cluster da Universidade Federal de Itajub, o VRaptor.

Reviso bibliogrfica

Apesar da grande velocidade com a qual os recursos de hardware vm se desenvolvendo, aplicaes que demandam de um poder computacional superior so comumente encontradas. A resposta para esse gargalo a utilizao de supercomputadores, mas, uma outra soluo forma que desponta, e que se destaca, ultimamente a utilizao de cluster. Entretanto, antes de optar pela arquitetura paralela, deve-se averiguar se realmente necessrio aplic-la na resoluo do problema que temos em mos; Dietz, em seu artigo Linux Parallel Processing: HOWTO demonstra as condies bsicas para se perceber a necessidade ou no da computao paralela: Sua aplicao deve ter paralelismo suficiente para fazer bom uso de mltiplos processadores, isso , ter trechos que possam ser executados independentemente e simultaneamente. Qualquer aplicao que deseje utilizar dessa forma deve estar previamente paralelizada (escrita de forma a tomar vantagem no uso do paralelismo) ou ter que escrever pelo menos algum cdigo novo para obter uma melhora no desempenho. Esses seriam alguns dos questionamentos bsicos a se fazer para iniciar-se na utilizao do paralelismo. O conceito de computao paralela refere-se ao aumento da velocidade de execuo de um programa atravs de sua diviso em N fragmentos, que podem executar em at N processadores simultaneamente e que, sendo assim, pode rodar at N vezes mais rpido do que rodaria em um computador normal [DIETZ, 1998]. A construo de clusters a soluo que trz melhor custo-benefcio para a execuo de tarefas exigentes em recursos no ramo da computao paralela. Clusters so supercomputadores baseados no conceito de MVP (Mquina paralela virtual)[SOUZA, 2004]. Mquina virtual paralela um software que permite que uma rede heterognea de computadores, sejam eles mquinas Unix-Like e/ou Windows, trabalharem juntas, em uma rede, para serem usadas como um supercomputador [Oak Ridge National Laboratory]. Alm de preocupaes com as aplicaes a serem executadas no sistema, deve-se ainda uma ateno especial elaborao do cluster a alguns fatores explicitados no livro High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI, como:

Selecionar o Hardware que ser usado. Escolher o sistema operacional, e o software necessrio para criao do cluster e as aplicaes que sero utilizadas, entre outros. Como podemos perceber, a construo de um cluster algo relativamente simples, essa facilidade na sua criao, no entanto, acarreta tambm a necessidade da classificao de arquiteturas paralelas, para que, desse forma, possamos escolher aquela que melhor se encaixa ao formato da nossa aplicao. Em seu artigo Yokokura[2005] descreve a importncia dessa classificao pela descrio das arquiteturas de Flynn [1972], e as arquiteturas paralelas, conforme vemos a seguir,

SISD: Single Instruction Single Data; MISD: Multiple Instruction Single Data; SIMD: Single Instruction Multiple Data; MIMD: Multiple Instruction Multiple Data; as quais sero explicadas e discutidas no decorrer deste artigo.

Um cluster precisa, entretanto, de um sistema capaz de realizar a distribuio/ gerencia dos processos de uma aplicao dentro do sistema, verificando aspectos como memria disponvel, ociosidade do sistema, entre outros recursos. O OpenMosix, extenso do Kernel do Linux, foi escolhido como a ferramenta que far tal funo dentro do cluster VRaptor, da UNIFEI. Sua escolha se deu por uma srie de motivos que sero descritos ao longo do artigo. Dentre suas principais caractersticas podemos citar sua transparncia ao usurio, otimizao dos recursos do cluster (atravs do auto-balanceamento), sistema de arquivos prprio (o oMFS), etc.[BAR, 2003]. O openMosix se beneficia principalmente quando mltiplos processos esto em andamento, ou apenas um trabalho que funcione por muitas horas seguidas, os exemplos para estes tipo de aplicao so numerosos, destes incluem as instituies financeiras que trabalham com a anlise do risco ou as instituies de pesquisa cientficas que funcionam com base de dados de comparao de DNA[SOUZA, 2004]. H entretanto caractersticas das quais o OpenMosix ainda carente, como a migrao de processos multi-thread.

A tecnologia empregada no OpenMosix consiste de duas partes principais: uma delas um mecanismo responsvel pela migrao e ordenao de execuo de processos com maior prioridade (Preemptive Process Migration ou PPM); a outra um conjunto de algoritmos adaptados para o compartilhamento de recursos [BAR2, 2003]. Ambas implementadas em nvel de kernel e explicitadas mais adiante.

Metodologia A questo do desempenho em processamento distribudo freqentemente abordada pelos cientistas da computao. Assim, existem muitas pesquisas em Universidades que fazem o estudo de tal rea. Essa seo esclarece o motivo de algumas especificaes do sistema que estaremos abordando. O principal objeto de estudo o cluster que vem sendo desenvolvido na Universidade Federal de Itajub, o VRaptor. >> Por que o OpenMosix? O OpenMosix foi escolhido por diversas razes dentre elas: Trata-se de uma implementao de patch no Kernel do linux, e sendo assim opensource, podendo, portanto, adaptar-se s mais diversas necessidades atravs da alterao de trechos do cdigo fonte. O OpenMosix uma das mais estveis distribuies linux para cluster computing. A paralelizao das aplicaes totalmente transparente aos olhos do usurio. O OpenMosix tenta continuamente otimizar o sistema, ou seja, a rede que forma o cluster, atravs da distribuio de processos conforme a quantidade de recursos disponveis, migrando, se necessrio, processos, ainda que j estejam em andamento, de um dos ncleos do sistema para outro, sem que isso acabe em perda de dados ou do processamento j realizado. Suas ferramentas, so estveis e robustas, e o sistema efetivamente faz o que promete, mas ainda deixa a desejar em algumas questes importantes como a realocao da memria distribuda no caso da ocorrncia de migrao de processos em andamento. A especificao de hardware das mquinas que compem o cluster VRaptor, at o momento dos testes so as seguintes: Estao de controle e os ns so um AMD Athlon 64 Processor 3000+, rodando a 2,01 GHz, 512Mb de memria RAM, e os testes foram realizados em rede de 10Mbps e 100Mbps, com o Sistema Operacional GNU/Linux Debian, Kernel 2.4.26 com o patch openMosix, e diferentes quantidades de ncleos no sistema (computadores em rede). Para efeito de anlise, nesse artigo estaremos considerando apenas testes realizados na rede de 100Mbps, pois um cluster , geralmente, construdo com essas condies. At o momento os teste vem sendo realizados com o intuito de renderizar imagens geradas pelo POV-Ray.

1 - Princpios bsicos de computao paralela Embora os computadores estejam cada vez mais velozes, exigncias sobre eles crescem no mnimo mias rpido do que a velocidade de operao [TANENBAUM,2001], e em virtude disso os profissionais da rea computacional esto dando ateno cada vez maior s arquiteturas paralelas. A principal caracterstica desse tipo de arquitetura o uso de vrias unidades de processamento, que podem ser arranjadas de duas formas bsicas descritas pela taxionomia de Flynn; A classificao segundo ele pode ser feita relacionando a forma como devem ser tratados os blocos de cdigo e os blocos de dados. Veja: SISD (Single Instruction Single Data): Essa a arquitetura de um computador comum, nela s possvel executar uma instruo sobre um nico conjunto de dados por vez; SIMD (Single Instruction Multiple Data): Essa uma das arquiteturas paralelas, nela vrios conjuntos de dados so submetidos mesma instruo, ou seja, cada instruo executa em um co-processador do sistema; MISD (Multiple Instruction Single Data): Essa arquitetura no equivale a nenhuma mquina existente, sua idia de vrias instrues sobre um conjunto de dados algo ainda inconcebvel. MIMD (Multiple Instruction Multiple Data): aqui que se encaixam a maioria das mquinas paralelas, tanto sistemas multicomputadores (clusters por exemplo) como multiprocessadores (processadores com mais de 1 ncleo por exemplo) se classificam como MIMD. Nessa categoria, a execuo de uma aplicao dividida entre diversos ncleos que operam sobre vrios conjuntos de dados, que aps isso so reunidos e oferecidos ao usurio.

2 - O que um cluster? O principal conceito que envolve um cluster o de mquina virtual paralela, isto , trata-se de um sistema que, sendo transparente ao usurio, simula um supercomputador, mas que, entretanto, est usando de sua rede de alta velocidade para se comunicar com os demais ncleos do sistema para realizar a distribuio das tarefas. Assim, em condies ideais, em um sistema de, por exemplo, 3 ncleos, as aplicaes, que seguissem os padres de aplicaes paralelas, levariam 3 vezes menos tempo para serem executadas, ou onde as requisies em um servidor podem ser feitas at 3 vezes mais vezes do que a quantidade de requisies mximas que este aceitaria, muito embora tais condies no existam.

Fig. 2.1: Um Cluster. Fonte: Banco de imagens do google.com

2.1 - Tipos de Cluster Inicialmente, a palavra cluster era imediatamente encarada como um sistema de alta performance, hoje, entretanto, existem tipos de cluster que no buscam desempenho [Sloan,2004]. Existem, basicamente, 3 tipos de cluster: Cluster de alta performance: Nesse tipo, o foco o desempenho. Geralmente utilizado na comunidade acadmica ou cientfica, para o processamento de muitos dados ou de clculos complexos. Ser o tipo descrito ao longo deste artigo, e voc pode perceber seu esquema abaixo.

10

Fig.2.2: Cluster de alta performance: A distribuio das tarefas para cada n do cluster feita de maneira transparente ao usurio que fica na estao de controle; Fonte: hpc.ilri.cgiar.org/images/hpc_graphic.gif

Cluster de alta disponibilidade: Conhecido tambm como failover, o objetivo dessa arquitetura de evitar falhas de acesso caso um disco venha a se danificar ou negar servio devido ao alto trafego de informaes que podem estar circulando. Geralmente utilizado em corporaes, cujas intranet disponibiliza servios crticos, como servidores internos de http ou e-mail; A chave para este tipo de cluster a replicao dos dados para todos os demais ns do sistema Uma vez que estes servios no podem ficar inacessveis por muito tempo (isso poderia causar um enorme prejuzo empresa). Se o servidor principal cair por algum motivo, automaticamente um segundo servidor assume seu lugar oferecendo o servio sem perda de nenhum dado, agindo ento de maneira transparente ao usurio (Veja o esquema da figura 1.3).

11

(a)

(b)

(c)

Fig. 2.3: Cluster de alta disponibilidade: Em (a) o sistema est atuando normalmente, repare que o fluxo de dados que vem da rede tratado pelo Server 1 e o armazenamento das informaes necessrias para a replicao em ambos os Storage; Em (b) simulada a falha do Server 1, como previsto o Server 2 assume sem maiores problemas, e o armazenamento continua sendo replicado; Em (c) tem-se um caso extremo de falha em uma das mdias de armazenamento, note que o servidor continuar atendendo as requisies pois est utilizando os dados que haviam sido replicados. Fonte: www.storitback.de/anim_gif/cluster-ha.gif

Cluster de balanceamento de carga: Essa topologia consiste em dividir requisies entre vrios servidores, mas ao contrrio do cluster de alta performance, o objetivo no realizar um processamento distribudo que culminaria em velocidade, e sim um sistema que divida o servio. Geralmente utilizado em servidores de provedores de acesso, ou mesmo em sites muito acessados como o google.com; A idia que caso haja muitos acessos simultneos, o servidor negaria servio por estar ocupado com os usurios no sistema. Com o uso desse tipo de cluster, cada acesso seria dividido entre os vrios servidores, o que balancearia o nmero de requisies fazendo com que dificilmente um servidor negasse servio.

Fig. 2.4: Cluster de balanceamento de carga: Requisies so feitas, e ento o balanceador de carga as distribui entre os servidores.

12

3 - O openMosix Parte importante na construo de um cluster a escolha do seu software gestor, isso , um software capaz de prover a distribuio das tarefas pelos ns do cluster. No cluster VRaptor, o openMosix o software que realiza essa funo. Sua escolha deve-se a uma srie de facilidades que prov. Trata-se de uma extenso (patch) para o kernel do Linux, e sendo assim um software opensource, o que quer dizer que ele gratuito, com o cdigo fonte aberto e qualquer um pode modific-lo se achar necessrio, sendo assim uma ferramenta que pode ser adequada perfeitamente a um sistema com as mais diferentes caractersticas. Entre suas principais caractersticas pode-se citar: Algoritmos de auto-balanceamento de carga entre os ns de acordo com sua disponibilidade de recursos como memria, tempo ocioso do processador, etc.; Algoritmos de compartilhamento de recursos que atuam na migrao de uma tarefa qualquer de um n para outro, evitando que alguma informao seja passada de forma incoerente ao n de destino durante a troca de memria; Sistema perfeitamente escalvel, isso , o acrscimo ou retirada de uma mquina ao cluster pode ser feito de imediato, desde que tambm possua o openMosix instalado em seu Kernel (e que as verses sejam as mesmas ou compatveis), uma vez que no existe a relao de n mestre e escravo, todos so iguais; Facilmente instalvel, em algumas horas voc pode ter seu cluster pronto para rodar; E, com maior destaque, a granularidade de um cluster construdo com ele: o Processo! Isso quer dizer que qualquer software uma vez divido em processos, ainda que no seja uma aplicao que possua paralelismo segundo DIETZ[1998], pode ser executados em um openMosix Cluster com ganho de velocidade. Repare que a granularidade do sistema o processo e, portanto, aplicaes que geram apenas 1 processo, ou aplicaes que fazem o uso de threads no se beneficiam do paralelismo nesse sistema.

3.1 - Migrao de processos A principal caracterstica que faz do openMosix um poderoso gestor para cluster so seus algoritmos de migrao de processos atravs da rede. Para dar suporte a isso, openMosix divide o processo em 2 partes ou contextos: O contexto de usurio contm o cdigo do programa, a pilha, informao, etc., e a parte que

13

possvel migrar; O contexto de sistema, que possui a descrio de onde os recursos do processo esto distribudos e a pilha do kernel (kernel stack); Essa parte no migra, continua no n que originou o processo(Unique home node UHN)[Sloan,2004].

A realizao ou no da mudana de ns se d pela avaliao do resultado do algoritmo de avaliao da carga de cada n. Quando um desses ns est mais ''leve'', o computador tende a migrar processos para l, e assim que isso acontece, ou que um novo processo comea ou termina em um n, um novo balanceamento realizado para tornar a mquina paralela equilibrada.

Fig. 3.1: O mosmon mostrando o balano da carga atual do cluster Fonte: High Performance Linux Clusters with OSCAR, Rocks, openMosix, and MPI

O openMosix at o momento, uma das melhores, seno a melhor, alternativa para o gerenciamento de cluster, excetuando-se realmente pelo fato de no migrar aplicaes cuja granularidade a nvel de thread e no de processos. Entretanto, ainda existe o agravante do projeto openMosix estar chegando ao fim. Segundo o prprio site, o projeto vem perdendo sua funo desde que as arquiteturas multicore tm se tornando mais populares. Para projetos futuros deve-se buscar entender alternativas como o OSCAR e o Rocks, ou mesmo a arquitetura de clusters beowulf.

14

4 - O cluster VRaptor Essa seo tem o objetivo de realizar uma rpida anlise de desempenho do cluster VRaptor, da UNIFEI. Foram realizados apenas testes de renderizao de imagens, do arquivo benchmark.pov padro do POV-Ray(software que faz a renderizao). Renderizar uma imagem o processo de se obter uma imagem digital, criada a partir de instrues do tipo: foco de luz, cor, formas, textura, transparncia, etc.; A imagem a seguir representa a imagem gerada pelo arquivo bechmark.pov:

Fig 2.2: A imagem gerada atravs do POV-Ray. Fonte: Cluster VRaptor

15

4.1 - Desempenho e Testes A renderizao de uma imagem uma tarefa que pode levar muitas horas quando realizada por apenas uma mquina, viu-se ento nessa tarefa uma aplicao tima para testes. Conforme j citado, utilizou-se o arquivo padro do software renderizador de imagens, o benchmark.pov e a imagem da Fig 2.2 o produto final. Abaixo segue a tabela dos testes realizados at ento:
Mquinas Processos 1 2 4 6 8 10 12 14 16 18 20 22 24 26 28 Fora do padrao A serem feitos 4 17167 8789 5458 8 16451 8806 5033 4082 2734 16 17139 8923 4831 3554 2962 2585 2318 2220 2205 24 17735 9019 4620 3239 2581 2173 1939 1659 1632 1547 1493 1514 1662 32 9441 4905 3367 2692 2077 2036 1391 1709 1592 1430 1324 1675 1327 1311 40 9687 4933 3419 2688 2267 1921 1759 1642 1492 1406 1226 1306 1219 1241 48 10004 5124 3510 2700 2272 2076 1759 1526 1419 1406 1279 1214 1200 56 10092 5104 3487 2584 2231 1886 1713 1503 1382 1309 1231 1097 1047 64 10702 5540 3665 2845 2375 2030 1748 1555 1481 1338 1238 1200 1124 1146

Tabela 4.1: Tempos de execuo, em segundos, dos testes realizados em rede de 100Mbps Fonte: Cluster VRaptor

Percebe-se que ainda h testes a serem feitos, e que alguns, em vermelho, fogem do padro de tempos que previsto dado o aumento do nmero de computadores, esses sero tambm considerados como no feitos ainda. A relao de desempenho da tabela acima dada de acordo com o nmero de processos por n do cluster, a relao perfeita seria de 1 para 1 onde o tempo de execuo de uma aplicao dividida em N partes decairia N vezes h, entretanto, que considerar outros fatores que fazem com que um cluster fique mais ou menos lento como por exemplo velocidade da rede de comunicao ou saturao dessa mesma rede pelo excesso de mquina se comunicando. Vejamos os grficos para 4, 8 e 16 processos, como exemplo:

16

Fig 4.1: Grfico do teste rodando com 4 processos

Fig 4.2: Grfico do teste rodando com 8 processos

Fig 4.3: Grfico do teste rodando com 16 processos

17

Pode-se perceber que, apesar do valor fora do padro encontrado na bateria de testes com 4 processos, um cluster tem sempre a tendncia a minimizar seu tempo at o momento onde se aproxima da relao 1 para 1. A explicao para isso simples: Em um cluster gerenciado pelo openMosix, no qual processos so a base da granularidade, os computadores possuem o mesmo poder de processamento, e as aplicaes distribudas pelo sistema so processos de tamanhos iguais, os processos so distribudos pelos ns d seguinte forma: Quando h mais ns do que processos: alguns ns recebem 1 processo, nunca mais do que isso, e os demais ficam ociosos; Assim o tempo de execuo depende, praticamente, apenas do tempo de execuo do um nico processo; Quando h mais processos que ns: Cada n vai recebendo um processo, at esgostarem-se os processos; Nesse caso o tempo de execuo total ser o tempo de execuo do processo vezes o nmero de processos que o n mais carregado possui; Finalmente quando a relao de 1 para 1 percebe-se que o tempo tambm tende ao tempo de execuo de apenas 1 processo.

18

Projetos futuros Devido a descontinuidade do projeto openMosix, declarado no prprio site para Maro de 2008, um dos objetivos para trabalhos futuros o estudo de novos gestores de cluster,

como o OSCAR ou o Rocks, ou mesmo utilizar metodologias mais famosas como o caso do Beowulf; Entender a implementao de cada um deles verificando o mais adequado aos objetivos do VRaptor. Ainda como trabalho futuro, mas j focando mais alm, iniciou-se uma fase entre os participantes do projeto do cluster que a de construo de aplicaes paralelas. Assim o estudo do paradigma da programao paralela e o desenvolvimento de software nessa estrutura, torna-se parte do projeto VRaptor, que vem crescendo a bons passos.

19

Concluso Fica claro que em qualquer ramo acadmico - cientifico as aplicaes utilizadas necessitam de um grande poder computacional para sua execuo, e que a soluo natural para isso o processamento paralelo. Muito embora supercomputadores sejam tambm uma soluo paralela, no decorrer do artigo ficaram ntidas as vantagens da implementao de um cluster e, com a utilizao dos dados do cluster VRaptor, tambm fica claro que estes podem ser muito mais poderosos e com melhor custo benefcio do que as super mquinas que existem no mercado. A implementao dessa arquitetura pode ser a chave tambm para problemas como um gargalo de acessos, ou servios crticos que no podem ficar indisponveis, como servidores de dados, e provedores de acesso. Assim, nota-se que a computao paralela uma cincia extremamente abrangente e com isso, oportunidades de desenvolvimento nessa rea vem surgindo cada vez mais, devido a necessidade de processamento ser cada vez maior.

20

Referncias Bibliogrficas [1] Sloan, Joseph D. High Performance Linux Clusters: with OSCAR, Rocks, OpenMosix, and MPI [2] Tanenbaum, Andrew S. Organizao Estruturada de Computadores. Rio de Janeiro, LTC, 2001 [3] Dourado Flynn, M. J. Some computer organizations and their effectiveness. IEEE Transactions on Computing, n. 9, p. 948960, 1972. [4] Dietz, Hank Linux Parallel Processing How To. 5 January 1998. [5] Yokokura, Alex Yuichi. Estudo de Viabilidade de Implantao de tcnica de Cluster ao projeto Servidor de estaes de trabalho (SET), 2005 [6] Bar, Moshe,et al. OpenMosix X Beowulf: a case study, 2003. [7] Bar, Moshe,et al. Introduction to OpenMosix, Linux Kongress, 2003. [8] Russo, Ruggero; Lamanna, Davide; Baldoni, Roberto,. Distributed software platforms for rehabilitating obsolete hardware, 2005. [9] Projeto OpenMosix < openmosix.sourceforge.net > acesso em 22/09/2007 [10] Projeto da Univ. de Stanford em prol da cura do Cncer, atravs de um Cluster: < folding.stanford.edu > acesso em 27/08/2007 [11] IBM Projeto XGrid <www.apple.com/br/macosx/features/xgrid/ > acesso em 25/08/2007 [12] Wikipedia: Cluster < pt.wikipedia.org/wiki/Cluster > acesso em 14/10/2007 [13] Computer Science and Mathematics Division of Oak Ridge National Laboratory, < www.csm.ornl.gov/pvm/pvm_home.html> acesso em 15/10/2007. 21