Buscar

Trabalho de Arquitetura e Organização de Computadores

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS – PUC GOIÁS
DEPARTAMENTO DE COMPUTAÇÃO
Arquitetura de Computadores – Arquitetura Paralela, Clusters, Soluções Existentes e Programação.
Atividade apresentada como requisito para a obtenção da segunda nota da P2 (substitutiva) na disciplina de Arquitetura e Organização de Computadores, no Curso de Ciência da Computação, na Pontifícia Universidade Católica de Goiás – PUC-GO.
Prof. Ms. Claudio Martins Garcia
Alunos:
Anderson Silva da Costa
Eduardo Martins de Castro e Souza
Herisson Pablo Ferreira Lopes
GOIÂNIA
JUNHO DE 2012
�
RESUMO
Neste trabalho, apresentamos os principais conceitos de Arquitetura de Computadores, que envolve arquitetura paralela, clusters, as soluções existentes atualmente e os programas utilizados para a implementação de computação paralela e sua utilização em clusters
Palavras-chave: Arquitetura de computadores, clusters, Beowulf, OpenMosix, MPI, PVM, paralelismo,hardware, software .
ABSTRACT
This work, we present the main concepts of Computer Architecture, which involves parallel architecture, clusters, existing solutions and programs currently used to implement parallel computing and its use in clusters
Word-key: Computer architecture, clusters, Beowulf, OpenMosix, MPI, PVM, parallelism, hardware, software.�
 INTRODUÇÃO
O conjunto de arquiteturas de computadores é comumente dividido e 3 grupos: arquiteturas seqüenciais, arquiteturas com mecanismos de paralelismo de baixo nível e arquiteturas paralelas. E é sobre esta última que falaremos um pouco.
É bastante comum a aplicação da computação paralela em variados ambientes, que são determinados pela natureza da aplicação paralela a ser executada. Vale ressaltar que com a busca para a resolução de problemas cada vez mais complexos e a constante necessidade de trabalhar esses problemas em máquinas com capacidade de processamento maiores é inevitável. Por este motivo o custo é levado considerando a escolha do tipo de arquitetura paralela [Foster et al. 2002], afinal, máquinas potentes exigem um pesado investimento. Exatamente por esse motivo, a implementação do modelo de clusters de computadores pessoais é uma boa saída aos preços elevados dos processadores com vários núcleos - ou multiprocessadores – utilizando para isso os conceitos de paralelismo (divisão de tarefas grandes em tarefas menores, para serem distribuídas e processadas em vários processadores - coordenados - simultaneamente). 
DEFINIÇÃO
“Uma arquitetura paralela fornece uma estrutura explícita e de alto nível para o desenvolvimento de soluções utilizando o processamento paralelo, através da existência de múltiplos processadores que cooperam para resolver problemas através de execução concorrente”. (Duncan, 1990)
Uma grande parcela dos sistemas computacionais de hoje baseiam-se nas arquiteturas RISC (Reduced Instrution Set Computer) - executa um conjunto reduzido de instruções - e CISC (Complex Instruction Set Computer) - executa várias centenas de instruções (conhecidos também como processadores x86).
 ARQUITETURA DE COMPUTADORES PARALELOS – CLASSIFICAÇÃO
De modo geral, os modelos desta arquitetura classificam-se pelo fluxo de instruções / fluxo de dados, ou seja, são executadas instruções em sequência sobre uma sequência de dados, de forma que diferencie o fluxo dessas sequências. Flynn dividiu essa classificação nas seguintes categorias:
SISD (single instruction single data) – único fluxo de instruções atuando sobre um único fluxo de dados, conhecida também como arquiteturadVon-Neumann. 
Ex.: máquinas convencionais com um processador.
MISD (multiple instruction stream single data stream) – vários fluxos de instruções atuam sobre um único fluxo de dados.
Ex.: Não existem máquinas convencionais nesta categoria
.
SIMD (single instruction stream multiple data stream) – única instrução executada simultaneamente sobre vários dados. 
Ex.: máquinas vetorais (mesma operação executada sobre múltiplos operandos).
MIMD (multiple instruction stream multiple data stream) – máquinas operando com fluxos de instruções e de dados múltiplos, ou seja, várias instruções executadas simultaneamente sobre vários dados, controladas por unidades de controle independentes. 
Ex: A maioria dos computadores paralelos.
Esta arquitetura é comumente dividida em: arquitetura de memória compartilhada (os processadores tem acesso a memória compartilhada – acesso UMA e NUMA)....................................................................
MPP’s (massively parallel processors - processadores paralelos maciços): nós interconectados por intermédio de uma rede de alta velocidade.
SMP’s (symmetric multiprocessors – multiprocessadores simétricos): Um agrupamento de processadores trabalhando paralelamente em conjunto partilhando a memória, o barramento de comunicação e o canal dekE/S. 
A conexão paralela é composta de multiprocessadores, de módulos de memória, links (canais físicos para passagem de bits – simplex, full-duplex e half-duplex) e switches (para roteação de pacotes).
 PARALELISMO
Técnica que consiste em quebrar tarefas grandes e geralmente complexas, em tarefas menores, para distribuí-las entre outros processadores interligados e executando simultaneamente as instruções a fim de obter resultados mais rápidos.
Ele opera em dois níveis: paralelismo de hardware e de software. Paraleliza-se para obter aumento de desempenho, ganhos de performance computacional e diminuição do gasto de processamento
Paralelismo de hardware visa melhorar o desempenho interno da CPU (memória cache, pipeline e unidades de execução múltiplas) e do sistema multi-processado (SMP), para a resolução de problemas computacionais de forma paralela.
Paralelismo de software é a habilidade de acelerar a execução de um programa, a grosso modo, dividindo ele em pedaços e destinando cada trecho dessa divisão para ser executado entre os nós, ficando cada nó com um pedaço do código.
�
SOLUÇÕES EXISTENTES
Trabalhar com uma grande quantidade de dados e problemas complexos exige uma alta demanda computacional. Por isso, a solução oferecida pelos sistemas paralelos é vista com bons olhos, afinal, além da redução de custos (utiliza máquinas convencionais ao invés de máquinas com grande poder computacional), também é aplicado as técnicas de paralelismo de programa - utilizando bibliotecas para estabelecer comunicação, como PVM e MPI - e de dispositivos (ou hardwares) – máquinas de arquitetura paralela SMP, NUMA e MIND – que resulta numa implementação um tanto fácil e simplificada de ser feita. 
Estas características conferem ao cluster (que são um agregado ou conglomerados de múltiplos computadores interconectados, que trabalham juntos, como um recurso computacional unificado com o objetivo de prover alto desempenho) uma alternativa viável capaz de substituir supercomputadores e determinadas aplicações (como cálculos científicos, por exemplo), mantendo um alto desempenho, explorando as características do paralelismo lógico (software) e físico (hardware). 
As principais características de um cluster são: 
Alta disponibilidade (ambiente seguro contra falhas, fazendo uso de redundância dos componentes conectados, resultando em uma estrutura computacional onde a falha de um nó não afeta a disponibilidade ou a aplicação do ambiente computacional);
Alto desempenho (divisão das tarefas entre os nós bem coordenadas para extrair maior vantagem dos recursos);
Escalabilidade incremental (facilidade de expansão dos nós para adicionar novos sistemas);
9�
 melhor aproveitamento de recursos, uso de hardware de baixo custo.
 CLASSIFICAÇÃO DOS CLUSTERS
Características:
a) Aplicação: 
HPC (High Performance Cluster - clusters de alto desempenho ) – geralmente implementados para trabalhar com cálculos científicos, reduzindo o tempo gasto para resolver problemas complexos. Ele permite computação paralela(divisão dos processos para vários CPU’s para diminuir o esforço computacional) e computação distribuída (compartilhamento de recursos para obter otimização);
HA (High Availability - clusters de alta disponibilidade) – muito usados em aplicações com tarefas críticas, implementando redundância em todo o sistema de qualquer serviço disponibilizado. São caracterizados como dedicados e heterogêneos;
b) Utilização dos nós:
cluster dedicados - recursos destinados principalmente para processamento paralelo;
cluster não-dedicados – máquinas que fazem parte do cluster que em algum momento ficarem ociosas (sem serem utilizadas) emprestam processamento ao cluster que pertencem;
c) Hardware: 
clusters de PC’s (CoPCs) ou Pilha de PC’s (PoPC) - nós são PCs;
10
clusters de workstations (COW) - nós são Workstations;
clusters de SMPs (CLUMPs) - nós são máquinas SMP;
d) Sistema Operacional:
cluster Linux, cluster Solaris, cluster NT, cluster AIX, cluster BCCD; 
e) Configuração dos nós:
 
cluster Homogêneo - todos os nós tem a mesma arquitetura e o mesmo sistema operacional;
cluster Heterogêneo – todos os nós tem arquitetura e/ou sistema operacional diferente;
 CLUSTER BEOWULF
É um projeto da NASA que inicialmente tinha o objetivo de determinar a aplicabilidade de arquiteturas de processamento paralelo a problemas relacionados as ciências espaciais, especialmente informações recolhidas por satélites, sem ser preciso um investimento alto.
Acabou se popularizando e se tornou uma arquitetura muito usada na computação paralela. Caracteriza-se por um sistema composto de nós clientes (computadores montados apenas com placa-mãe, placa de rede, disco rígido (alguns), memória principal e processador) interligados junto a um nó servidor (computador convencional – com periféricos - para fazer a interface com o mundo exterior) que controla o cluster inteiro, disponibilizando o sistema operacional e dividindo as tarefas entre os nós clientes. O sistema BEOWULF utiliza software livre (SO Linux, por exemplo) e bibliotecas para comunicação via rede (PVM – parallel virtual machine - e MPI – message passing interface). Seu desempenho é da ordem do Gigaflops.
BEOWULF é um agrupamento de computadores baseados em Linux para formar um supercomputador paralelo estruturados em rede. Como é comum em todo cluster, tem um desempenho elevado – HPC – e processamento paralelo, além disso, outra característica é serem interconectados por redes convencionais, ou seja, é uma topologia MIMD, baseada no kernel (núcleo) do Linux, fazendo comunicações via mensagens.
O hardware destes sistemas são componentes convencionais de computadores, muito comercializados, e o software implementado é de licença livre, como os sistemas operacionais FreeBSD, BCCD e Linux, por exemplo. Neles são instalados ferramentas de programação para processamento paralelo, também de licenças livres e muito usadas, como PVM e MPI que são bibliotecas para passagem de mensagem. Além de serem sistemas de processamento paralelo ainda detêm uma rede de comunicação privada, de uso exclusivo do cluster.
6.1 VANTAGENS x DESVANTAGENS
Vantagens do BEOWULF:
Domínio público (ninguém exerce direitos sobre o produto); 
Utilização de interfaces padronizadas como IDE, PCI e SCSI (permitindo o uso de variados componentes e hardwares);
Capacidade de adequação tecnológica simplificada (mesmo software rodando em hardwares mais novos, por exemplo);
Facilidade de agregar e expandir o sistema (que confere uma maior facilidade e eficiência na gestão de falhas); 
Escalabilidade (coordenar facilmente uma grande quantidade de nós);
Software com código fonte incluso e livre (simplificando alterações nas aplicações usadas e até ao nível do sistema operacional); enfim.
Desvantagens do BEOWULF:
Exceções a parte, há grande latência e largura de banda menor que sistemas SMP no hardware de rede;
Os softwares que tratam e suportem o cluster como um único sistema ainda são bem poucos;
Exige um certo conhecimento sobre como administrar sistemas Linux.
Monitoramento dos nós (dependendo de como foi feita a configuração do cluster, monitorar as informações passadas em cada nó pode se tornar um problema, especialmente em um sistema muito grande)
6.2 APLICAÇÕES DO BEOWULF
O cluster em si tem uma aplicabilidade bastante diversificada. Com o BEOWULF, dá pra montar um servidor de arquivos com uma disponibilidade dos dados muito melhor e mais rápido do que inúmeros servidores comerciais, já que possui conexões múltiplas de rede e sistemas múltiplos, além de poder ser implementado também um sistema de banco de dados, servidores WEB de alto-desempenho, inteligência artificial e automação, computação gráfica, entre outros.
6.3 ARQUITETURA FÍSICA
Servidor: nó de controle do cluster. É quem administra e distribui as tarefas entre os nós clientes. Ele também faz a interface com o mundo exterior. É também o único computador do sistema com periféricos (para fazer interface com o usuário).
Clientes: são os outros nós interligados do sistema. O servidor controla e é por ele que é feito a configuração. Toda a conexão passa pelo servidor. São elas que formam a capacidade de processamento do cluster e caracterizam-se por não ter periféricos como mouses, teclados, monitores,... apenas processadores, memórias, placa-mãe, e eventualmente disco-rígido. Processam as tarefas atribuídas pelo servidor.
Rede dedicada: faz a conexão entre todos os nós do cluster. (é geralmente padronizada para usar Ethernet).
 
14
O cluster Beowulf foi idealizado pelos seus desenvolvedores com o objetivo de suprir a crescente e elevada capacidade de processamento em diversas áreas cientificas com o objetivo de construírem sistemas computacionais poderosos e economicamente viáveis. Claro que a evolução constante do desempenho dos processadores tem colaborado e muito na aproximação entre PCs e Workstations, a diminuição do custos das tecnologias de rede e dos próprios processadores e o sistema operacional aberto e gratuito, como o GNU/Linux em muito influenciam as pesquisas para melhoria desta nova filosofia de processamento de alto desempenho em clusters.
Uma característica chave de um cluster Beowulf, é o software utilizado, que é de elevado desempenho e gratuito na maioria de suas ferramentas, como exemplo podemos citar os sistemas operacionais GNU/Linux e FreeBSD sobre os quais estão instaladas as diversas ferramentas que viabilizam o processamento paralelo, como é o caso das API’s MPI e PVM. Isto se permitiu fazer alterações no sistema operacional Linux para dotá-lo de novas características que facilitaram a implementação para aplicações paralelas.
 6.4 PROGRAMAÇÃO
 
MPI (message passing interface)
É uma biblioteca que define rotinas para comunicação entre processos paralelos, proporcionando alta performance em plataformas de memória distribuída. MPI é utilizado por programas em C e FORTRAN, sendo portável para uma infinidade de arquiteturas, e implementado em ambientes com máquinas paralelas, sendo todo o paralelismo explícito, deixando a cargo do programador a responsabilidade de identificar o paralelismo e implementar um algoritmo parametrizado com o MPI.
Elementos importantes em implementações paralelas são a comunicação de dados entre processos paralelos e o balanceamento da carga. Dado o fato do número de processos no MPI ser normalmente fixo, neste texto é enfocado o mecanismo usado para comunicação de dados entre processos. Os processos podem usar mecanismos de comunicação ponto a ponto (operações para enviar mensagens de um determinado processo a outro). Um grupo de processos pode invocar operações coletivas (collective) de comunicação para executar operações globais. O MPI é capaz de suportar comunicação assíncrona e programação modular, através de mecanismos de comunicadores (communicator) que permitem ao usuário MPI definir módulos que encapsulem estruturasde comunicação interna.
6.5 ALGUMAS DEFINIÇÕES
Rank: Identificador único do processo. Começa do 0 e vai até n-1 (n é a quantidade de processos)
Group (grupo): Conjunto de processos que podem se comunicar. Está sempre associado a um communicator. A principio, todos os processos pertencem a um único communicator (MPI_COMM_WORLD).
Communicator: Objeto local representando o domínio da comunicação, ou seja, estabelece a comunicação os Group’s que se comunicarão entre si.
Application Buffer: Endereço de memória que armazena um dado que o processo precisa receber ou enviar.
System Buffer: Endereço de memória reservado pelo sistema para armazenar mensagem.
Overhead: Desperdício de tempo que ocorre durante a execução do processo. Pode ser de dois tipos:
System Overhead: tempo gasto pelo sistema na transferência de dados para o processo destino;
Synchronization Overhead: tempo gasto para a sincronização de processos.
Embora o MPI seja um sistema complexo, um amplo conjunto de problemas pode ser resolvido usando-se apenas 6 funções, que servem basicamente para: iniciar, terminar, executar e identificar processos, enviando e recebendo mensagens.
Todos os procedimentos acima, exceto os dois primeiros, possuem um manipulador de comunicação como argumento. Esse manipulador identifica o grupo de processos e o contexto das operações que serão executadas.Os comunicadores proporcionam o mecanismo para identificar um subconjunto de processos, durante o desenvolvimento de programas modulares, assegurando que as mensagens, planejadas para diferentes propósitos, não sejam confundidas.
6.6 Cluster Mosix
Mosix é a sigla para Multicomputer Operating System for UNIX. Trata-se de um projeto que teve inicio nos anos 80 em Jerusalem é um conjunto de ferramentas de cluster para Linux, tem como característica principal, fazer com que o cluster se comporte como um grande e único supercomputador lançando mão da migração preemptiva de processos e balanceamento dinâmico de carga.
A implementação da Migração Preemptiva faz com que um processo em um nó com poucos recursos seja transportado para outro nó que tenha maior disponibilidade, melhorando, assim, o desempenho do sistema.
Diferente do Beowulf no Mosix não existe um nó mestre que controle os outros nós do cluster utiliza algoritmos descentralizados a grande vantagem nesse tipo de cluster é a possibilidade de incluir ou remover um computador do cluster sem que o desempenho seja afetado, nenhum distúrbio seja notado.
O Mosix possui também algoritmos que monitoram e identificam qual a velocidade dos nós, a memória livre disponível, a carga da CPU, a comunicação interprocessos (IPC) e a velocidade de acesso de cada processo. Outra vantagem do Mosix e ser transparente para o usuário. Assim que é iniciado um aplicativo o Mosix envia os processos ao melhor computador no momento na rede e monitora sua execução. Tudo isso sem que o usuário perceba ou seja de forma transparente.
O sistema Mosix é utilizado em diversas aplicações dentre elas Processos CPU-bound: processos com longos tempos de execução e baixo volume de comunicação entre processos, ex: aplicações científicas, engenharia e outras aplicações que demandam alta performance de computação, Grandes compilações, Banco de dados que não usem memória compartilhada.
O Mosix é eficiente na tarefa de distribuição dinâmica de processamento entre os computadores do cluster. Esse tipo, assim como o Beowulf, é muito utilizado por universidades em pesquisas e projetos. Por ser baseada em Linux, sua implementação é transparente, além de ser relativamente fácil de instalar.
6.7 QUESTÕES DE CLUSTERIZAÇÃO
	Um cluster consiste de uma coleção de computadores convencionais interconectados entre si que podem atuar com um único e integrado recurso computacional. Cada nó de um cluster é um sistema completo tendo os seus próprios recursos de hardware e software.
	Contudo, eles oferecem ao usuário uma visão de um único sistema através de mecanismos de hardware e software comumente conhecidas como SSI.
6.8 SSI (Single System Image)
	O Single System Image (Sistema Único de Imagem) é ilusão de um único sistema montado com recursos distribuídos. Basicamente, O SSI faz uma coleção de máquinas interligadas parecer como um recurso único para o SO (visão globalizadas dos recursos do sistema).
Existem duas variações de SSI:
– Administração de Sistemas /Escalonamento de Tarefas – um “middleware” que habilita cada nó paraprover os serviços requisitados.
– Núcleo do S.O. – uso transparente de dispositivos remotos ou usar um sistema de armazenamento que é visto pelos usuários como um único sistema de arquivos.
6.9 HPC (High Processing Cluster)
	A utilização de supercomputadores necessita investimento de alto custo, o que para muitos é um grande problema, Os Clusters HPC (Cluster de Alto Processamento) são uma solução alternativa que vem atendendo a necessidade de alta performance de universidades e empresas de forma muito mais viável, além disso apresenta os seus principais conceitos.
Na prática o Cluster HPC é utilizado em diversas aplicações onde haja a necessidade de alto desempenho de processamento como: pesquisas climáticas, sequenciamento genético, estudos geofísicos, simulação de explosões nucleares, servidores web, aplicações financeiras, mecanismos de busca, etc.
7.0 HA (High Availability)
Os modelos de clusters HA (Alta Disponibilidade )são construídos para prover uma disponibilidade de serviços e recursos de forma ininterruptas através do uso da redundância implícitas ao sistema. A idéia geral é que se um nó do cluster vier a falhar (failover), aplicações ou serviços possam estar disponíveis em outro nó. Estes tipos de cluster são utilizados para base de dados de missões críticas, correio, servidores de arquivos e aplicações.
7.1 SOLUÇÕES EXISTENTES
Esta solução combinada visa prover uma solução de alta performance aliada a possibilidade da não existência de paradas críticas. Este cluster combinado é uma solução perfeita para ISP e aplicações de rede nas quais a continuidade de suas operações é muito crítica.
Algumas caracteristicas desta plataforma:
Redirecionamento dos pedidos aos nós falhas para os nós reservas;
Melhoria na qualidade dos níveis de serviço para as aplicações típicas de rede;
Transparente integração para as aplicações stand-alone e não-cluster juntos em uma única rede virtual;
Disponibilizar uma arquitetura de framework altamente escalável.
 CONCLUSÃO
A arquitetura paralela de computadores, como visto nesse trabalho, permite a aplicação de multiprocessamento de dados de uma maneira que isoladamente não seria possivel. Através de mecanismos como o cluster, seja Beowulf, Bccd ou MOSIX, é possivel aumentar a taxa de processamento geral (utilizando o HPC), ou ainda a disponibilidade de acesso a este cluster (utilizando HA), conforme a necessidade. Também foi visto como cluster funciona internamente, usando as bibliotecas de mpi e pvm para a passagem de messagem e assim, funcionamento do cluster.
Referências
Beowulf Cluster – Disponível em - http://www.clubedohardware.com.br/artigos/Computacao-em-cluster/153/3 Acessado em 25 de Junho de 2012.
Ambientes de troca de Mensagem PVM 
http://equipe.nce.ufrj.br/gabriel/progpar/PVM.pdf
http://www.dcc.ufrj.br/~gabriel/arqcomp2/ArqPar6.pdf
 	Acessado em 25 de Junho de 2012.
Ambientes de troca de Mensagem MPI
http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0101-74382002000100007
Acessado em 26 de Junho de 2012.
PINTO, Hudson J. L., SILVA, Michel P. e SILVEIRA, Gabriel D. Ambientes de Alto Desempenho utilizando Cluster de Computadores: 
Universidade de Formiga, Departamento de Ciência da Computação, Instituto de Ciências Sociais Aplicadas e Exatas. Formiga, MG, Brasil.
PITANGA, Marcos. Computaçãoem cluster: o estado da arte da computação. Rio de Janeiro:
Brasport Livros e Multimídia Ltda,
SOUZA, Marcelo S. Análise do Servidor Web Apache em Clusters OpenMosix com Memória
Compartilhada Distribuída: CEBACAD, Centro Baiano de Computação de Alto Desempenho,
Universidade Católica do Salvador (UCSal), Salvador, Bahia – Brasil.
2003.http://www4.fct.unesp.br/ronaldo/uploads/Cluster%20HPC%20%E2%80%93%20High%20Performance%20Computing..PDF
Acessado em 26 de Junho de 2012.
CLUSTERS < http://www.dcc.ufrj.br/~gabriel/arqcomp2/ArqPar6.pdf>
Acessado em 28 de Junho de 2012.

Outros materiais