desenvolvimento pronto com capa

26
1 Pontifícia Universidade Católica de Minas Gerais Ciência da Computação Cluster Daniel Valente Gouveia Gama, João Roberto de Oliveira Rêgo e Yuri Antonio Gonçalves Vilas Boas Poços de Caldas 2011

Upload: daniel-gama

Post on 04-Aug-2015

180 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento PRONTO Com Capa

1

Pontifícia Universidade Católica de Minas Gerais

Ciência da Computação

Cluster

Daniel Valente Gouveia Gama, João Roberto de Oliveira Rêgo e Yuri Antonio

Gonçalves Vilas Boas

Poços de Caldas

2011

Page 2: Desenvolvimento PRONTO Com Capa

2

Daniel Valente Gouveia Gama, João Roberto de Oliveira Rêgo e Yuri

Antonio Gonçalves Vilas Boas

Cluster

Trabalho realizado para disciplina Arquitetura de

Computadores, sobre orientação do professor Renan

Eduardo Pedroso.

Poços de Caldas

2011

Page 3: Desenvolvimento PRONTO Com Capa

3

RESUMO

Este trabalho realizou um estudo sobre os tipos de cluster que vêm

sendo mais usados nos últimos anos. O objetivo foi relatar aspectos da

arquitetura, funcionamento e tipos, relatando também sua evolução. Foram

estudadas suas vantagens, técnicas de sua utilização, possibilidade de

aplicações práticas e o projeto de um cluster.

Palavras-chave: Cluster de Armazenamento, Cluster de Aplicação,

Cluster Tomcat, Zope Cluster.

Page 4: Desenvolvimento PRONTO Com Capa

4

ABSTRACT

This work conducted a study on the types of cluster which have been

used in recent years. The goal was to describe aspects of its architecture,

operation, types and also report its evolution. Were studied its benefits,

techniques for its use, the possibility of practical applications and design of a

cluster.

Keywords: Storage Cluster, Application Cluster, Cluster Tomcat, Zope

Cluster.

Page 5: Desenvolvimento PRONTO Com Capa

5

LISTA DE ILUSTRAÇÕES

Figura 1: Evolução da utilização de Arquiteturas de alto desempenho. Fonte Top500.org ..... 8

Figura 2: Evolução da utilização de S.O. Fonte Top500.org ......................................................... 8

Figura 3: Estrutura MPI ..................................................................................................................... 15

Figura 4: Arquitetura de um cluster com um nó controlador ....................................................... 16

Figura 5: Esquema de um Cluster Beowulf .................................................................................... 23

Page 6: Desenvolvimento PRONTO Com Capa

6

LISTA DE TABELAS

Tabela 1: Aceleração e Eficiência .................................................................................................... 19

Tabela 2: Métodos de Clustering ..................................................................................................... 21

Page 7: Desenvolvimento PRONTO Com Capa

7

Sumário

1. INTRODUÇÃO .................................................................................................................................. 8

1.1. OBJETIVOS ................................................................................................................................... 9

1.2. JUSTIFICATIVA ............................................................................................................................. 9

2. HISTÓRIA ....................................................................................................................................... 10

3. FUNDAMENTAÇÃO TEÓRICA ......................................................................................................... 10

3.1. O QUE É UM CLUSTER? ............................................................................................................. 11

3.2. SISTEMAS OPERACIONAIS ......................................................................................................... 11

3.3. HADWARE.................................................................................................................................. 12

3.3.1. EXECUCAO ............................................................................................................................. 12

3.3.2. TRANSMISSÃO DE DADOS ..................................................................................................... 13

3.4. BIBLIOTECAS DE COMUNICAÇAO .............................................................................................. 13

3.4.1. PVM (PARALLEL VIRTUAL MACHINE) .................................................................................... 14

3.4.2. MPI (MESSAGE PASSING INTERFACE) ................................................................................... 14

4. ARQUITETURA CLUSTER ................................................................................................................ 15

4.1. CAMADAS .................................................................................................................................. 16

4.1.1. CAMADA DE COMUNICACÃO ............................................................................................... 16

4.1.2. CAMADA DE LIGACÃO ........................................................................................................... 17

4.1.3. CAMADA DE INTEGRAÇÃO .................................................................................................... 17

4.1.4. CAMADA DE RECUPERAÇÃO ................................................................................................. 18

4.2. OUTROS SERVIÇOS .................................................................................................................... 18

5. DESEMPENHO ............................................................................................................................... 19

5.1. VANTAGENS .............................................................................................................................. 19

5.2. DESVANTAGENS ........................................................................................................................ 20

6. TIPOS DE CLUSTER ......................................................................................................................... 21

7. CONFIGURAÇÃO DE CLUSTER ....................................................................................................... 21

8. EXEMPLOS ..................................................................................................................................... 22

8.1. BEOWULF .................................................................................................................................. 22

8.2. MOSIX ........................................................................................................................................ 23

9. CONCLUSÃO .................................................................................................................................. 25

10. REFERÊNCIAS ............................................................................................................................. 26

Page 8: Desenvolvimento PRONTO Com Capa

8

1. INTRODUÇÃO

Nos últimos 20 anos foram observados um crescimento na utilização de

cluster em diversas pesquisas. Algumas das áreas que incentivaram essas

tecnologias são: pesquisa genética, bioinformática, física, química, engenharia,

climatologia, petroquímica, pesquisa espacial e resolução de equações e

métodos matemáticos.

Figura 1: Evolução da utilização de Arquiteturas de alto desempenho. Fonte Top500.org

Apesar das tecnologias de cluster serem recentes, sua utilização vem

crescendo e máquinas que fazem uso de tal tecnologia já dominam a lista de

mais rápidas do mundo. Além disso, a utilização de softwares livres – como

GNU/Linux [1] – acompanha esse crescimento.

Figura 2: Evolução da utilização de S.O. Fonte Top500.org

Sistemas de computação em cluster tornaram-se populares quando a

razão preço/desempenho de computadores pessoais e estações de trabalho

Page 9: Desenvolvimento PRONTO Com Capa

9

melhorou [7]. Outra razão para o surgimento e rápida aceitação de sistemas em

cluster foi à maior necessidade de tolerância a falhas e a alta disponibilidade [8].

“Os clusters fornecem desempenho e tolerância a falhas, não encontrados em

qualquer sistema com multiprocessamento simétrico” [9].

Uma grande tarefa computacional pode ser distribuída entre as

estações como se fosse um supercomputador paralelo. Estes computadores

paralelos são utilizados em estudos científicos ou análises financeiras, tarefas

que requerem grande processamento.

1.1. OBJETIVOS

Estabelecer uma descrição esclarecedora sobre o funcionamento das

tecnologias de cluster, com atenção a aspectos mais técnicos sobre a

arquitetura.

1.2. JUSTIFICATIVA

As informações contidas neste trabalho auxiliam no entendimento das

tecnologias abordadas. É importante saber como funcionam clusters e tenta-se

explicar isso da maneira mais clara possível.

Page 10: Desenvolvimento PRONTO Com Capa

10

2. HISTÓRIA

A ideia inicial era, simplesmente, que um buffer entre a memória e o

processador fosse chamado de cluster. A IBM em 1960 foi a primeira a integrar

grandes mainframes (computador de grande porte) procurando ter uma solução

comercialmente possível de paralelismo no Paquistão.

Mas o cluster passou a ganhar força quando três tendências dirigiram-se

a um ponto comum em 1980, que é o aumento de velocidade das redes, dos

microprocessadores e da computação distribuída de alto desempenho. Hoje,

pesquisas científicas (quarta tendência) vem fazendo com que o uso destes

supercomputadores cresça ainda mais.

Em 1993 iniciou-se um projeto de um sistema de processamento

distribuído, construído a partir de hardware convencional, como um combate

aos custos dos supercomputadores. Em meados de 1994 iniciou-se o projeto

Beowulf, cujo protótipo inicial possuia 16 processadores DX4. A máquina foi um

sucesso e a ideia se espalhou pelos meios acadêmicos, pela NASA e por

outras comunidades de pesquisa [2].

3. FUNDAMENTAÇÃO TEÓRICA

Nesta seção, apresentam-se os conceitos técnicos e teóricos para o

entendimento de cluster de computadores.

Page 11: Desenvolvimento PRONTO Com Capa

11

3.1. O QUE É UM CLUSTER?

Cluster é um sistema distribuído de computadores independentes e

interligado, cujo objetivo é suprir a necessidade de um grande poder

computacional com um conjunto de computadores de forma transparente ao

usuário. Para a construção dessas plataformas é necessário ter confiança no

sistema adotado, na distribuição de carga e no desempenho [3].

3.2. SISTEMAS OPERACIONAIS

Este tem a função principal de controlar o funcionamento do

computador, gerenciar a utilização e o compartilhamento de recursos

(processador, memória e dispositivos de entrada e saída) [4].

No cluster, é através dele que o computador consegue garantir a

execução primordial das seguintes tarefas:

Controle de recursos: Controle da entrada e saída de cada nó do

cluster envolvido na tarefa;

Monitoração: Verificação da disponibilidade de cada nó e também da

quantidade de carga que cada nó poderá receber;

Contabilidade: Medidor de desempenho do cluster, tanto para calcular

custos da operação quanto a medir seu desempenho propriamente dito;

Consulta: Armazenamento em fila de prioridades todos os processos

que serão executados;

Planificação: Organicação de quais tarefas serão distribuídas entre os

nós do cluster.

Page 12: Desenvolvimento PRONTO Com Capa

12

3.3. HADWARE

Nesta parte o cluster pode dividir-se em execução, ou processamento de

dados; e transmissão de dados, vistos a seguir.

3.3.1. EXECUCAO

É realizado por computadores usuais, e como o cluster é um

aglomerado de computadores que funcionam de forma distribuída, os recursos

que influenciam seus desempenhos são:

Processador: Processamento de dados, hoje já é capaz o

desenvolvimento de processadores com vários núcleos e com memória

cache, sendo elas cada vez maiores;

Placa Mãe: Nela são ligados todos os chips e componentes, sendo o

barramento sua principal via de comunicação entre memória, disco

rígido e processador;

Memoria RAM: Responsáveis pelo armazenamento de dados dos

programas em execução. São voláteis e mais rápidas se comparadas ao

disco rígido;

Disco Rígido: Armazena os dados que serão guardados. Não é volátil e

é lenta mas possui uma grande capacidade de armazenamento;

Page 13: Desenvolvimento PRONTO Com Capa

13

Memoria virtual (Swap): Memória gerenciadora do uso de programas

que exigem mais do que a RAM possa fornecer. É usando a memoria

virtual que o cluster consegue evitar com que os programas travem.

3.3.2. TRANSMISSÃO DE DADOS

Em clusters, a transmissão de dados é onde se encontra o principal

problema, nas operações. Isso ocorre devido à latência que há nas

informações que são trocadas entre os nós.

Atualmente, o principal meio de comunicação de dados é a rede, sendo

composta por meios físicos e mecanismos de controle para o transporte, além

de uma política de sincronização de dados. Na seqüência, são apresentadas

algumas das principais tecnologias de redes existentes usadas em clusters:

Ethernet: Classificada em: Fast Ethernet e Gigabit Ethernet. Em clusters

usa-se mais a Fast, cuja velocidade é entre 10 Mbps e 100 Mbps, mas,

numa rede Gigabit, a velocidade pode chegar a casa dos 1 Gbps

Myrinet: Rede de alta velocidade, sua velocidade pode chegar à faixa

de 2,4 Gbps, seu funcionamento se deve através de interruptores em

que são traçadas as rotas de transmissão de dados [5].

cLan: Rede apropriada para os clusters, seu funcionamento assim como

o Myrinet também se deve através de interruptores, alcança a faixa de

2,5 Gbps.

3.4. BIBLIOTECAS DE COMUNICAÇAO

Page 14: Desenvolvimento PRONTO Com Capa

14

São responsáveis pela comunicação entre os nós de um cluster. Cada

biblioteca possui suas particularidades, ou seja, elas implementam diferentes

soluções para os problemas de comunicação.

Hoje em dia são usadas duas bibliotecas principais PVM e o MPI,

abordadas a seguir.

3.4.1. PVM (PARALLEL VIRTUAL MACHINE)

O PVM é uma biblioteca de comunicação que emula computação

concorrente heterogênea de propósitos gerais em computadores

interconectados, em que se pode trabalhar com diversas arquiteturas. A idéia

do PVM é montar uma máquina virtual de n processadores e usá-los para

enviar tarefas e receber os resultados, de maneira cooperativa. Tudo isso é

realizado de modo simplificado, utilizando apenas rotinas básicas, enviando e

recebendo mensagens.

3.4.2. MPI (MESSAGE PASSING INTERFACE)

O MPI teve como objetivo padronizar a troca de mensagem em

ambientes paralelos de memória distribuída. Além disso, o MPI também

procura aprimorar a comunicação e ampliar o desempenho de aplicações

paralelas ou distribuídas. O MPI surgiu da necessidade de se resolver alguns

problemas relacionados à portabilidade existentes entre as diferentes

plataformas e características peculiares de algumas arquiteturas paralelas [6].

Page 15: Desenvolvimento PRONTO Com Capa

15

Figura 3: Estrutura MPI

A eficiência do MPI é garantida através da disponibilidade de várias

implementações para um mesmo problema. Por exemplo, para o envio de

mensagens, há funções que implementam comunicações ponto a ponto e a

coletiva. Uma das vantagens da MPI, considerando-se a engenharia de

programas, é que esta permite programação modular: o comunicador

identifica um grupo de processos, em que uma operação deve ser realizada.

4. ARQUITETURA CLUSTER

Conforme apresentado no capítulo 2, o cluster possui três condições

primordiais pra o seu devido funcionamento, Sistema Operacional, Hardware e

biblioteca de comunicação. Na figura 3 é descrito um ambiente cluster com um

nó mestre e cinco nós escravos, todos eles conectados a um hub.

Page 16: Desenvolvimento PRONTO Com Capa

16

Figura 4: Arquitetura de um cluster com um nó controlador

4.1. CAMADAS

A estrutura da arquitetura pode ser formada pelas seguintes camadas

básicas[10]:

Camada de Comunicação: trata das comunicações ponto-a-

ponto entre os nós.

Camada de Ligação: agrupa canais de comunicação em uma

única ligação entre dois nós.

Camada de Integração: forma a topologia do cluster.

Camada de Recuperação: executa a recuperação (failover) e a

inicialização/parada controlada de serviços depois de uma transição do cluster.

4.1.1. CAMADA DE COMUNICACÃO

Page 17: Desenvolvimento PRONTO Com Capa

17

Esta é a camada de comunicação de baixo nível. Há múltiplas interfaces

(IP, serial ou SCSI, por exemplo), que são independentes entre si e que tratam

a descoberta da vizinhança. Uma conexão ponto-a-ponto permanente é

estabelecida e então vários tipos de mensagens são permitidos: entrega

seqüencial de informações, verificação do estado do link (heartbeat) e

reinicialização controlada.

4.1.2. CAMADA DE LIGACÃO

A camada de ligação estabelece um mecanismo de ligação de alto nível,

que associa todos os canais para um dado nó em um único link. Este é um link

“virtual”, pois a informação ainda trafega pelos meios de comunicação

estabelecidos na camada de comunicação. Este link pode ter vários estados,

que determinam sua possibilidade de operação. A grande utilidade desta

camada é abstrair a comunicação de dados e suas particularidades entre dois

nós, a fim de tornar a tarefa de trocar mensagens mais simples para as

camadas superiores

4.1.3. CAMADA DE INTEGRAÇÃO

Esta camada realiza transições na topologia do cluster, aglomerando

clusters vizinhos, despejando membros inativos ou com mal comportamento e

garantindo transições entre as topologias do cluster. Estas transições

Page 18: Desenvolvimento PRONTO Com Capa

18

mencionadas são basicamente alterações na topologia do cluster, ou seja, da

sua lista de membros. Sempre que a lista é alterada, uma transição atômica

ocorre a fim de que todos os nós membros tomem conhecimento desta

modificação.

4.1.4. CAMADA DE RECUPERAÇÃO

Esta camada tem por função recuperaras transições efetuadas pela Camada de

Integração, além de restringir processos até que a recuperação esteja completa.

Esta recuperação pode ser feita como:

Recuperação interna: Responsável pela recuperação de todos os serviços

previamente registrados;

Recuperação de serviço do usuário: Se processos do usuário forem

afetados durante a transição de topologia, cabe a esta camana reiniciá-los em

outro nó. Esta migração é chamada de failover.

4.2. OUTROS SERVIÇOS

Banco de Dados: Nada mais é do que um repositório de informações locais a cada nó do cluster.

Camada de Quórum: determina qual partição do cluster possui autorização para prosseguir com sua execução. Isso trata o problema de uma partição (subcluster) que acredita ser o cluster principal, processando os mesmo dados e gerando uma situação de concorrência.

Serviço de Barreiras: provê um serviço de sincronização global ao cluster. Uma operação de barreira envolve todos os processos que se cooperam a esperar pela mesma barreira: somente quando todos eles tiverem a atingido

Page 19: Desenvolvimento PRONTO Com Capa

19

que algum deles terá permissão para prosseguir

Serviço de Nomes: provê um serviço de nomes global ao cluster. Através desse serviço processos podem tanto registrar e consultar nomes.

5. DESEMPENHO

Aumentar o desempenho é um dos objetivos de clusters de

computadores. Eles têm o paralelismo como principal ferramenta e, para

garantir ganhos, existem métodos que são utilizados a fim de estruturar uma

melhor solução para os problemas paralelizados.

O Speedup ou Aceleração (Sp) é um método usado para medir o

desempenho de aplicação paralela. É definida pela razão do tempo gasto para

a execução seqüencial (Ts) e o tempo gasto da execução paralela em n

processadores idênticos (Tn), ou seja, Sp = Ts/Tn [2]. A Eficiência mostra

quanto da potência computacional foi utilizada no processamento, sendo esta

potência dentro do disponível e apresentada como a razão entre a Aceleração

e o número de processadores, logo Ef = Sp/ n.

Tabela 1: Aceleração e Eficiência

Caso Aceleração (Sp) Eficiência (Ef)

Ideal = p = 1

Real < p < 1

Excepcional > p > 1

5.1. VANTAGENS

Page 20: Desenvolvimento PRONTO Com Capa

20

Expansibilidade: A utilização de cluster de computadores deixa o sistema

altamente expansível, para melhorar o processamento basta acrescer um

novo nó ao sistema.

Baixo Custo: Já que o cluster de computadores pode ser configurado com computadores convencionais, isso faz com que a configuração deste fique altamente barata comparada a outros sistemas.

Alta Disponibilidade: Um nó quando desativado não prejudica o sistema como um todo, pois existem outros para fazer a mesma tarefa. Como o cluster tem vários nós, para a manutenção não é necessário desativar o cluster completo, basta desativar o nó defeituoso.

Tolerância de Falhas: Visto que o cluster funciona de forma paralela e distribuída, a perda de dados será improvável, pois os dados que estavam sendo transmitidos podem ser encaminhados para outro nó que não esteja com problemas.

Balanceamento de Carga: O sistema de cluster pode ser montado com

computadores de configurações diferentes, sendo assim disponível efetuar o

balanceamento de carga de acordo com a potência de cada máquina.

5.2. DESVANTAGENS

Manutenção do Equipamento: A manutenção de grande quantidade de

máquinas pode tornar-se difícil.

Monitoração dos nós: Monitorar um nó em um cluster pode ser tornar um

problema dependendo da maneira que este fora implementado.

Troca de Informações: Como os cluster tem a configuração de seus

sistemas utilizando redes, a troca de informações se transforma no principal

gargalo, uma vez que dependendo da qualidade da rede, essa troca de

Page 21: Desenvolvimento PRONTO Com Capa

21

informações pode ser lenta, mas isso pode ter ajustes para a melhoria da

troca de informações.

6. TIPOS DE CLUSTER

Existem três tipos mais comuns de Cluster:

Cluster de Alto Desempenho: Processamento com um volume

alto de gigaflops em computadores comuns e utilizando sistema

operacional gratuito, o que diminui seu custo.

Cluster de Alta Disponibilidade: Sistemas conseguem

permanecer ativos por um longo período de tempo e em plena

condição de uso.

Cluster para Balanceamento de Carga: Controle da distribuição

equilibrada do processamento.

São abordados neste artigo dois exemplos: o Beowulf e o Mosix

7. CONFIGURAÇÃO DE CLUSTER

Tabela 2: Métodos de Clustering

Método de clustering Descrição Benefícios Limitações

Secundário passive (passive standby)

Servidor secundário assume caso primário falhe

Fácil de implementar

Custo alto porque o servidor secundário está indisponível para

Page 22: Desenvolvimento PRONTO Com Capa

22

processamento

Secundário Ativo Servidor secundário é usado também para tarefas de processamento

Custo reduzido devido ao uso dos servidores secundários

Complexidade aumentada

Servidores separados

Possuem seus próprios discos. Dados são copiados continuamente do primário para o secundário

Alta disponibilidade

Sobrecarga de rede e de servidores devido às operações de cópia

Servidores conectados aos discos

Servidores são ligados aos mesmos discos, mas cada servidor tem seu disco. Se um servidor falha, outro servidor assume seus discos

Carga de rede e servidores reduzida por causa da eliminação das operações de cópia

Requer espelhamento de discos (RAID) para compensar o risco da falha de disco

Servidores com discos compartilhados

Vários servidores compartilham simultaneamente o acesso a discos

Baixa carga de rede e servidores. Risco reduzido de inatividade causada por falha de disco

Requer software de gerenciamento de bloqueio + estratágia RAID.

8. EXEMPLOS

8.1. BEOWULF

Foi criado em 1994, feito pelo pesquisador da NASA Thomas Sterling e

Donald J. Becker, este cluster tem como finalidade a computação paralela,

para processar informações especiais que a entidade recebia. A criação deste

cluster foi motivada pelo fato do instituto necessitar o processo de informações

acima de Gigaflops que, para a época, computadores deste poder de

processamento tinha o custo muito elevado.

Page 23: Desenvolvimento PRONTO Com Capa

23

Beowulf, diferente dos outros, não requer uma arquitetura específica, e

muito menos máquinas homogêneas, mas deve obedecer os seguintes pontos

para que faça parte desta família:

Conexão entre os nós, que pode ser ethernet.

Um ou mais nós mestre (front-end) para controlar os nós escravos

(back-end)

O S.O. deve ser código aberto, e nele disponível as ferramentas

para configurações de um cluster.

Os front-end são responsáveis pela monitoração das tarefas realizadas

pelo cluster, sejam elas falhas ou direcionamento das cargas.

Figura 5: Esquema de um Cluster Beowulf

8.2. MOSIX

Estes trabalham com distribuição de processos. Ao detectar uma grande

quantidade de processamento, migram as instâncias entre as máquinas do

cluster, sendo processadas simultaneamente, sem a necessária adaptação do

código. O que os difere dos demais, é que em vez de quebrar os processos

como em clusters Beowulf, o Mosix realiza esta migração. Ele detecta o nó

mais ocioso através da troca de informações de cargas de instâncias.

“A migração de processos permite que um usuário inicie uma

aplicação em qualquer nó (denominado nó nativo), e se mover

Page 24: Desenvolvimento PRONTO Com Capa

24

transparentemente para outros nós a fim de, por exemplo, fazer uso

eficiente de recursos”. [7]

O que torna este cluster pouco flexível é o fato que se estiver

executando apenas uma tarefa ele não a divide, mas ele o leva para o nó mais

rápido, prejudicando assim a execução. Apesar de ser um dos tipos de

sistemas de cluster mais utilizados, os criadores expuseram que cessaram o

projeto em março de 2008.

Page 25: Desenvolvimento PRONTO Com Capa

25

9. CONCLUSÃO

Nota-se que ganho em desempenho utilizando Clusters é significativo,

mas seu uso só é justificado dependendo da aplicação desejada, desde que

esta exija um alto nível de processamento de dados.

Além disso, o uso de Clusters é dependente da tecnologia de

transferência de dados, visto que esta é a principal característica que permite a

existência dessas tecnologias em si. Sendo assim, uma rede efetiva produz um

cluster efetivo.

Também, o uso de computadores convencionais produzidos em larga

escala definem o baixo custo de implementação do Cluster, que amplia a

disponibilidade do recurso para ser utilizado em instituições com poder

financeiro menor do que grandes instituições como a NASA e o IBGE.

Em suma, como tudo na computação, o Cluster tem sua aplicação com

efetividade somente em determinadas ocasiões sendo elas: aplicações com

grande volume de dados, com pouca transferência de dados entre seus nós e

em casos que um supercomputador seja uma alternativa economicamente

inviável.

Page 26: Desenvolvimento PRONTO Com Capa

26

10. REFERÊNCIAS

[1] - Guia de Estruturação e Administração do Ambiente de Cluster e Grid

[2] - <http://pt.wikipedia.org/wiki/Cluster>, ultimo acesso: 23/09/2011;

[3] - < http://www.clubedohardware.com.br/artigos/153/3>, ultimo acesso:

23/09/2011;

[4] - MACHADO, Francis Berenger. MAIA, Luiz Paulo. Arquitetura de Sistemas

Operacionais. 4ª ed. Editora LTC, São Paulo, 2007.

[5] - Site Myrinet. Disponível em: <http://www.myri.com/myrinet/overview/>, visitado

em: 01 de set.2011.

[6] - JAQUIE, Kalinka Regina Lucas. Extensão da Ferramenta de Apoio à

Programação Paralela (F.A.P.P.) para ambientes paralelos virtuais. Disponível em:

<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-08022001-095456/>,

visitado em: 05 de out.2011.

[7] - TANENBAUN, Andrew S. Sistemas Distribuídos: Princípios e Paradigmas. 2ª

ed. Editora Pearson Prentice Hall, São Paulo, 2007.

[8] - MACHADO, Francis Berenger. MAIA, Luiz Paulo Arquitetura de Sistemas

Operacionais. 4ª ed. Editora LTC, São Paulo, 2007.

[9] - PITANGA, Marcos. Construindo supercomputadores com Linux. 2ª ed. Editora

Brasport. Rio de Janeiro, 2004.

[10] - PEREIRA, Nelio. Linux, Clusters e Alta Disponibilidade

http://www.ime.usp.br/~nelio/publications/linuxha/html/node1.html