Centro Baiano de Computao de Alto Desempenho
Computao de Alto Desempeho
Prof. Leandro Coelho
Sumrio
Viso Geral Classificao das Arquiteturas Tipos de Paralelismo Programao Paralela Modelos de Computao Paralela Paradigmas da Computao Paralela Metricas de avaliao do desempenho Cluster de computadores Bibliotecas de passagem de mensagem MPI (Message Passing Interface) Prticas Bibliografia
Terminologias importantes
Tarefa
Uma seo logicamente discreta de um trabalho computacional Exemplos:
Calcular a transformada de Fourier Calcular a mdia de 1000 valores
Tarefas paralelas
Tarefas cujo processamento independente um dos outros Execuo de um programa de forma seqencial, uma instruo de cada vez
Execuo serial
Melhorando o desempenho
Existem 3 maneiras para melhorar o desempenho:
Trabalhar
duro Trabalhar inteligentemente Pedir ajuda
Melhorando o desempenho
Existem 3 maneiras para melhorar o desempenho: Usar hardware
Trabalhar
duro Trabalhar inteligentemente Pedir ajuda
rpido: reduzir o tempo por instruo (clock cycle).
Melhorando o desempenho
Existem 3 maneiras para melhorar o desempenho: Usar hardware
Trabalhar
duro Trabalhar inteligentemente Ciclo de busca Pedir ajuda
(Fetch Cycle) Partid a Buscar instruo / Prxima instruo
rpido: reduzir o tempo por instruo (clock cycle).
Executar instruo Ciclo de execuo (Execute Cycle)
Parad a
Ciclo de instruo bsico
Melhorando o desempenho
Existem 3 maneiras para melhorar o desempenho:
Trabalhar
duro Trabalhar inteligentemente Pedir ajuda
Otimizar os algoritmos
Melhorando o desempenho
Existem 3 maneiras para melhorar o desempenho:
Trabalhar
duro Trabalhar inteligentemente Pedir ajuda
Mltiplos computadores para resolver o problema: isto, aumenta o nmero de instrues executadas por ciclo de clock.
Melhorando o desempenho
Ciclo de busca (Fetch Cycle) Buscar instruo / Executar
Ciclo de execuo (Execute Cycle)
instruo Existem 3 Prxima instruo para melhorar o maneiras Partid Ciclo de busca Parad desempenho: Cycle) a (Fetch a
Trabalhar
duro Executar Trabalhar inteligentemente Prxima instruo instruo Pedir ajuda Ciclo de instruo duplo
Buscar instruo /
Ciclo de execuo (Execute Cycle)
Mltiplos computadores para resolver o problema: isto, aumenta o nmero de instrues executadas por ciclo de clock.
Taxonomia de Arquiteturas de Computadores
Taxonomia de Flynn
SISD: a clssica mquina seqencial de Von Neumann; SIMD: uma mquina que trabalha com uma unidade de controle nica, isto , resolve uma instruo por vez; MISD: Multiple Instruction Single Data; MIMD: Envolve a maior parte dos computadores paralelos. So mquinas construdas com CPUs mltiplas que resolvem muitas instrues e conjuntos de dados ao mesmo tempo.
Taxonomia de Arquiteturas de Computadores
Single Instruction, Single Data (SISD)
Serial
Instrues so executadas uma aps outra Pode-se saber o que est ocorrendo exatamente em cada instante de tempo e reproduzir o processo passo a passo mais tarde Computadores pessoais, estaes de trabalho com uma nica CPU, minicomputadores e mainframes
Determinismo
Exemplos:
Taxonomia de Arquiteturas de Computadores
Single Instruction, Single Data (SISD)
B(I)=A(I)*4 LOAD A(I) MULT 4 STORE B(I)
Processador P LOAD A(1) Processador P
TEMPO:
t1
t2
MULT 4 Processador P
t3
STORE A(1)
Taxonomia de Arquiteturas de Computadores
Single Instruction, Multiple Data (SIMD)
Sncrono
Todas as unidades devem receber a mesma instruo no mesmo instante de tempo de modo que todas possam execut-la de forma simultnea Em cada instante de tempo s existe uma instruo sendo executada por vrias unidades, ento se o programa executado com os mesmos dados de entrada, utilizando o mesmo nmero de unidades de execuo, o resultado ser o mesmo
Determinismo
Apropriado para aplicaes que utilizam paralelismo orientado a instruo Hoje em dia existem poucos supercomputadores SIMD vetorizados pipelined
Quadrics Apemille Cambridge Parallel Processing Gamma II Plus
Taxonomia de Arquiteturas de Computadores
Single Instruction, Multiple Data (SIMD)
B(I)=A(I)*4 LOAD A(I) MULT 4 STORE B(I)
TEMPO:
P1 LOAD A(1) P1
P2 LOAD A(2) P2 MULT 4 P2 STORE A(2)
P3 LOAD A(3) P3 MULT 4 P3 STORE A(3) ... ...
t1
t2
MULT 4 P1
...
t3
STORE A(1)
Taxonomia de Arquiteturas de Computadores
Mltiple Instruction, Multiple Data (MIMD)
Sncrono
ou assncrono Determinismo ou no determinismo
Sistemas MIMD pode ter comportamento determinstico tomando cuidado com alguns fatores, como a ordem de recepo das mensagens
Adequado
subrotinas
para paralelismo orientado a bloco, loop ou
Requerimentos de comunicao menos restritos que paralelismo orientado a instruo (Ass) IBM SP - *NOW - Intel Paragon - Fujitsu VPP5000 (Sin) IBM RS/6000
Exemplos:
Taxonomia de Arquiteturas de Computadores
Multiple Instruction, Multiple Data (MIMD)
TEMPO: P1
Programa principal
P2
P3
Inicializa Dispara tarefa A Dispara tarefa B Tarefa B Espera por processador Fim Dispara tarefa C Espera por processador Dispara tarefa D Espera fim de todas as tarefas Junta resultados Fim Fim Tarefa C
Tarefa A
Fim
Tarefa D Fim
Taxonomia de Arquiteturas de Computadores
Taxonomia de arquiteturas de computadores
SISD
SIMD
MIMD
Vectorprocessors
Arrayprocessors
Multiprocessors
Multicomputers
Von Neumann
UMA*
COMA*
NUMA*
MPP
COW
NOW
* Uniform Memory Access Cache-only Memory Architecture Non-Uniform Memory Access
HNOW
CoHNOW
Tipos de paralelismo
Paralelismo de dados
Cada
tarefa executa uma mesma srie de clculos sobre diferentes dados Localidade dos dados parte essencial do algoritmo Exemplos:
clculo da mdia de temperatura em um estado, procura de pessoas com mais de 65 anos em uma populao Jogo de xadrez:
Tipos de paralelismo
Paralelismo funcional
Cada
tarefa executa clculos diferentes para resolver um problema Tarefas podem ser executadas sobre mesmos dados ou dados diferentes
Exemplo:
Modelagem de um ecossistema, onde cada programa calcula a populao de um determinado grupo que depende dos vizinhos
Programacao Paralela
Um sistema paralelo e distribudo consiste de colees de processadores, dos mesmos tipos ou no, interconectados de acordo com uma determinada topologia, possibilitando assim a realizao de atividades e troca de informaes entre os mesmos
Cceres, SBC 2001.
Objetivos
Reduzir o tempo total do processamento Aumentar o desempenho de um sistema
Problemas
grandes de difcil soluo.
Reducao dos custos
Problemas especificos podem ser executados em modelos paralelos a um custo menor que em um super computador dedicado.
Computing Platforms Evolution
Breaking Administrative Barriers
2100
2100
2100
2100
P E R F O R M A N C E
?
2100 2100 2100 2100
2100
Administrative Barriers
Individual Group Department Campus State National Globe Inter Planet Universe
Desktop
(Single Processor?)
SMPs or SuperCom puters
Local Cluster
Enterprise Cluster/Grid
Global Cluster/Grid
Inter Planet Cluster/Grid ??
Por que utilizar Supercomputadores alternativos?
Grande nmero de workstations subutilizadas e disponveis para utilizao; Grande nmero de ciclos de processador e recursos no utilizados, que podem ser postos em uso para uma variada gama de aplicaes; Relutncia em comprar Supercomputadores devido ao alto custo e curto tempo de utilizao.
Modelos de acesso memria
Um computador convencional consiste de um processador executando um programa armazenado na memria:
M
Instrues para o processador Dados para ou do processador
Memoria Compartilhada
Cada processador tem acesso a uma memria global.
Acesso
global aos dados. Controle de acesso a memria complexo. Evitar que dois processadores acessem a memria simultaneamente. Este tipo de controle (acesso a memria) torna-se o grande "gargalo" com uma grande quantidade de processadores.
Memoria Compartilhada
Proc
Proc
Proc
Proc
Memoria Distribuida
Possibilitam a programao paralela atravs do uso de bibliotecas de troca de mensagens.
PVM
(Parallel Virtual Machine). MPI (Message-Passing Interface)
Memoria Distribuida
Proc
Proc
Proc
Proc
Distributed Shared Memory
Tcnicas eficientes para simular memria compartilhada em mquinas inicialmente com memria distribuda. Consiste em ligar-se vrios processadores atravs de uma rede de alta velocidade e simular memria compartilhada atravs de troca de mensagens. Cada processador determina uma rea da sua memria que ser compartilhada Necessita gerenciador de memria.
Distributed Shared Memory
Proc
Proc
Proc
Proc
Interconexo
Paradigmas de Programao Paralela
Pipeline Master/Worker Variaes Master/Worker
Dois ou mais programas podem ser executados de forma coordenada, em uma determinada ordenao, de forma que o output de cada um redirecionado como input do prximo.
Paradigmas de Programao Paralela
Master / Worker
A
ideia consiste em ter um processo master, que divide uma certa tarefa em n partes independentes. Cada uma dessas partes vai sendo atribuda a um worker que a realiza. Sempre que um worker termina a sua tarefa envia o resultado para o master, que se ainda tiver tarefas a realizar, lhe envia uma nova tarefa.
Paradigmas de Programao Paralela
Master / Worker
Mestre Coordena os trabalhos e expe os resultados
Trabalhador trablho pesado.
Executa
Metricas de avaliao do desempenho
Speedup
S ( n) = tempo de execuo serial t = s tempo de execuo paralela t p
Desempenho de uma mquina no cresce proporcional ao nmero de processadores disponveis
Metricas de avaliao do desempenho
Eficincia
E= tempo de execuo serial t = s tempo de execuo paralela nmero de processado res t p n
Gera a frao de tempo que os processadores esto sendo utilizados para processamento
Cluster de computadores
uma coleo de maquinas que se utilizam das redes de computadores comerciais, locais e / ou remotas para paralelizar suas transaes; Utiliza um software de passagem de mensagem que permite que um conjunto heterogneo ou homogneo de computadores (srie, paralelo ou vetorial) seja visto como uma nica mquina.
Cluster de computadores
Vantagens
Baixo Custo Facilidade de Expanso Softwares livres
Cluster de computadores
Computador
Problema
Cluster de computadores
Problema / n Problema / n
Problema / n
Motivao para usar Clusters
As pesquisas mostram que a utilizao de ciclos da CPU de estaes de trabalho so tipicamentes < 10%;
Normalmente uma estao de trabalho utilizada por um individuo, grupo ou departamento. - elas so dedicadas para o uso exclusivo pelos "donos".
O desempenho de estaes de trabalho vem crescendo rapidamente; As organizaes relutam para comprar grandes supercomputadores , devido aos altos custos e perodo de vida til pequeno; As ferramentas de desenvolvimento para estaes de trabalho esto mais maduras que as solues proprietrias para computadores paralelos - principalmente devido natureza no normal de muitos sistemas paralelos
Motivao para usar Clusters
Clusters de estaes de trabalho so uma alternativa barata e disponvel para computadores de alto desempenho especializado (HPC); A largura de banda para comunicao entre workstations cresceu muito nas novas tecnologias de rede e os protocolos podem ser implementados em LANs e LDNs; Cluster de Workstation so fceis de serem integrados dentro de redes existentes.
Arquitetura de clusters
Os clusters podem ser ampliados: com o aumento da escalabilidade (up, down, and across):
O desempenho de ns individuais podem ser melhorados adicionando recursos adicionais (memria, disco) Novos ns podem ser adicionados ou podem ser removidos Clusters de clusters e Metacomputing Threads, PVM, MPI, C, C++, Java, Parallel C++, Compiladores, Debuggers, OS, etc Para resolver os "principais desafios" ("grand challenge")
Ferramentas de software completas:
Ampla variedade de aplicativos:
Aplicaes de Clusters
Numerosas Aplicaes Cientificas e de Engenharia. Simulaes Paramtricas Aplicaes Comerciais
Aplicaes de e-commerce Aplicaes de banco de dados Sistemas de apoio a deciso
Aplicaes Internet
Web server / searching ASPs (application service providers) eMail, eChat, ePhone, eBook, eCommerce, eBank, eSociety, eAnything! Portais
Aplicaes de Misso Critica
sistemas de controle de processo, bancos, controle de reatores nucleares, guerra nas estrelas, e muitas outras situaes.
Cluster de Computadores Projetos de Pesquisas
Beowulf (CalTech and NASA) - USA CCS (Computing Centre Software) - Paderborn, Germany CEBACAD Centro de Computao de Alto Desempenho. Salvador, Ba, Br. Condor - Wisconsin State University, USA DQS (Distributed Queuing System) - Florida State University, US. EASY - Argonne National Lab, USA HPVM -(High Performance Virtual Machine),UIUC&now UCSB,US far - University of Liverpool, UK Gardens - Queensland University of Technology, Australia MOSIX - Hebrew University of Jerusalem, Israel MPI (MPI Forum, MPICH is one of the popular implementations) NOW (Network of Workstations) - Berkeley, USA NIMROD - Monash University, Australia NetSolve - University of Tennessee, USA PBS (Portable Batch System) - NASA Ames and LLNL, USA PVM - Oak Ridge National Lab./UTK/Emory, USA
Quem j chegou!
Exemplos de Clusters: Berkeley NOW
100 Sun UltraSparcs
200 disks 160 MB/s AM, MPI, ...
Myrinet SAN Fast comm. Ether/ATM switched external net Global OS Self Config
Exemplos de Clusters: Massive Cheap Storage Cluster
Basic unit:
2
PCs double-ending four SCSI chains of 8 disks each
Exemplos de Clusters: CEBACAD
Pentium 133 12 Pentium 166 03 Pentium 500 - 01 Cluster remoto na UAB Conexo 512 Kbps Conexo 25 Mbps
Cadeia alimentcia de computadores -1984
Mainframe Mini Computer Workstation PC
Cadeia alimentcia de computadores - hoje
Bibliotecas de passagem de mensagem
PVM (Parallel Virtual Machine)
Criada em 1989, no Oak Ridge National Laboratory. Vaidy Sunderam e Al Geist desenvolveram a primeira verso (PVM 1.0.), que foi usada internamente (no saiu comercialmente). A Verso 2 do PVM foi escrita na Universidade de Tennessee e lanada em Maro de 1991.
O PVM composto de uma biblioteca de programao e um conjunto de programas que constituem a mquina virtual.
Bibliotecas de passagem de mensagem
PVM (Parallel Virtual Machine)
Tem verses para trabalhar com C, C++ e Fortran. Trabalha com o conceito de mquina virtual. Possui um programa daemon (pvmd3 ou pvmd), que responsvel por constituir e gerenciar a mquina virtual. uma capa a mais sobre o sistema operacional da mquina.
Principais problemas:
Capa extra de software sobre o S.O > Overhead No suporta CoHNOWs
Bibliotecas de passagem de mensagem
MPI (Message Passing Interface)
[Link]
Foi desenvolvido pelo MPI FORUM e lanado em Junho de 1995. O MPI Forum foi um consrcio que reuniu laboratrios de pesquisa governamentais, universidades e empresas. A idia era lanar um padro.
O MPI no uma nova linguagem de programao, sim uma biblioteca que pode ser chamada em programas escritos em C e Fortran.
MPI no trabalha com nenhuma camada extra de software.
Bibliotecas de passagem de mensagem
MPI (Message Passing Interface)
Usa rsh (ou ssh) para fazer a conexo entre as mquinas pertencentes a mquina paralela virtual Rsh Remote Shell SSh Secure Shell Possui diversas implementaes. Por ser um padro, qualquer um pode desenvolver sua verso do MPI
MPICH mais usada e documentada.
O MPI no uma nova linguagem de programao, sim uma biblioteca que pode ser chamada em programas escritos em C e Fortran.
[Link]
Bibliotecas de passagem de mensagem
MPI (Message Passing Interface)
Principais problemas: Pouca documentao de como funciona de fato as comunicaes Suporte deficiente a CoHNOWS
Fatores de influencia na hora de progrmar...
Balanceamento de carga
Quanto cada processador poder assumir de trabalho sem que fique sobrecarregado enquanto outro fique ocioso. Influncia do tempo de resposta dos diferentes tipos de registradores microinstrues etc. Tipo de rede que interliga os computadores certamente influenciar na transmisso de mensagens entre as mesmas.
Heterogeneidade estrutural dos processadores
Ligao fsica entre os processadores
MPI (Message Passing Interface)
Estrutura de um Programa MPI
.......... #include mpi.h .......... int main (int argc, char *argv[]) { .............. /*Nenhuma funo MPI antes daqui*/ MPI_Init(&argc,&argv); ............... MPI_Finalize( ); /*Nenhuma funo MPI depois daqui*/ .............. return(0); }
Biblioteca a ser includa em qualquer programa que utilize funes do MPI.
Inicializa o MPI. Primeira linha de qualquer programa com MPI. argc e argv - argumentos
Termina a execuo do MPI, liberando todas as estruturas alocadas pelo MPI
MPI (Message Passing Interface)
MPI_Send (pa1,pa2,pa3,pa4,pa5,pa6) :
Pa1 = Dados da mensagem que se deseja passar; Pa2 = Numero de dados dentro da mensagem; Pa3 = Tipo de dado a ser transmitido; Pa4 = Id de destino; Pa5 = Tag; Pa6 = Comunicador. Um comunicador um dado objeto que especifica o escopo de uma operao de comunicao que contem grupos de processos envolvidos na aplicao. No Caso deste projeto, o grupo de comunicao definido fora o MPI_COMM_WORLD.
MPI (Message Passing Interface)
MPI_Recv(pa1,pa2,pa3,pa4,pa5,pa6,pa7) :
Pa1 = Dados da mensagem que se deseja receptar; Pa2 = Numero de dados dentro da mensagem. Pa3 = Tipo de dado a ser receptado; Pa4 = Id de origem; Pa5 = Tag; Pa6 = Comunicador ; Pa7 = Status. Status. MPI_SOURCE, Id de quem enviou, MPI_TAG, identificador do Tag da mensagem e MPI_ERROR, cdigo de erro da mensagem.
MPI (Message Passing Interface)
mpicc Compila e "linka" programas MPI escritos em C Exemplo: mpicc o programaXPTO programaXPTO.c mpirun O "mpirun" um script de shell, usado para executar programas MPI escritos em C Exemplo: mpirun np 4 programaXPTO
Nmero de processadores
MPI (Message Passing Interface)
Alguns procedimentos MPI (MPI Routines)
MPI_Comm_rank()
Determina o rank do processo no communicador Determina o tamanho do grupo associado com um comunicador (nmero de processos que esto executando o programa. Captura o tempo em segundos Sincroniza os processos
MPI_Comm_size()
MPI_Wtime()
MPI_Barrier()
MPI (Message Passing Interface)
Cluster MPI:
[Link]
Determina os computadores de sua rede que faro parte do cluster.
Exemplo:
# Change this file to contain the machines that you want to use to run MPI jobs on. The # format is one host name per line, with either hostname or hostname:n where n is the # number of processors in an SMP. The hostname should be the same as the result # from the command "hostname # Cluster [Link] [Link] # Master [Link] # Trabalhador [Link] # Trabalhador [Link] # Trabalhador
MPI (Message Passing Interface)
Estrutura Bsica de um programa Al Mundo.c
MPI (Message Passing Interface)
Prtica 1 Recebe.c
Algoritmo que utiliza a rotina MPI_Recv (recebe). Ao ser compilado (mpicc o 2_recebe_1p 2_recebe_1p.c e ser executado (mpirun np <nmero de processadores> 2_recebe_1p). Os trabalhadores retornam as mensagens: Nomes dos trabalhadores; O resultado do clculo da raiz quadrada de um nmero pr-definido(16); O tempo de processamento dos trabalhadores; O tempo de processamento total do cluster (computo + comunicao.
MPI (Message Passing Interface)
Prtica 2 EnviaRecebe.c
Algoritmo que utilizam as rotinas MPI_Send (envia) e MPI_Recv (recebe). Ao ser compilado (mpicc o 3_envia_recebe_1c 3_envia_recebe_1c.c e ser executado (mpirun np <nmero de processadores> 3_envia_recebe_1c). O mestre envia um nmero para que os trabalhadores calculem a raiz quadrada. Os trabalhadores calculam a raiz do nmero recebido e retornam as mensagens: Nomes dos trabalhadores; Resultado do processamento (clculo da raiz quadrada do nmero recebido); O tempo de processamento dos trabalhadores; O tempo de processamento total do cluster (computo + comunicao).
MPI (Message Passing Interface)
Prtica 3 Funcao.c
Algoritmo que utiliza as rotinas MPI_Send (envia) e MPI_Recv (recebe). Ao ser compilado (mpicc o 4_funcao_1b 4_funcao_1b.c e ser executado (mpirun np 4 <este algoritmo foi desenvolvido para rodar com 4 hosts> 4_funcao_1b) . O mestre: Cria os processos; Mostra o formato da funo(y = a*x^3 + b*x^2 + c*x + d); Pede os valores de a, b, c e d da funo; Pede o valor de x; Envia os valores de a, b, c e de x, para os trabalhadores. Trabalhadores: Calculam a funo e retornam valor para o mestre. O mestre: Mostra o resultado da funo
MPI (Message Passing Interface)
Prtica 4 Matriz.c
Algoritmo que utiliza as rotinas MPI_Send (envia) e MPI_Recv (recebe). Ao ser compilado (mpicc o matriz matriz.c e ser executado (mpirun np 4 <numero de computadores> matriz) . O mestre: Seleciona as posies das linhas e colunas; Envia as linhas e colunas correspondentes para um trabalhador; Trabalhadores: Calculam a multiplicao e retornam um valor O mestre: Recebe um valor e armazena na matriz resultado.
Bibliografia bsica
BUYYA R. High Performance Cluster Computing: Architectures and Systems, v. 1. Prentice Hall PTR. 1999. BUYYA R. High Performance Cluster Computing: Architectures and Systems, v. 2. Prentice Hall PTR. 1999. CEBACAD. Centro Baiano de Computao de Alto Desempenho, Universidad Catlica do Salvador - UCSAL, Curso de Bacharelado em Informtica, Departamento de informtica. Instalao e configurao do MPICH Verso 1.2.5., 2003. Guia 2003.s GROPP, W.; LUX, E.; THAKUR, R. Using MPI-2: Advanced Features of the Message-Passing Interface. Scientific and Engineering Computation Series, Massachusetts Intitute of Technology. 1999a. MPIS. The Message Passing Interface (MPI) Standard. Disponvel em: <[Link] Acessado en: 19 novembro 2002). 2002. SOUZA, Josemar; FURTADO, Adhvan; REBOUCAS, Andr; REXACHS, Dolores; LUQUE, Emilio; Efficient Algorithm Execution in a Collection of HNOWs. In: International Conference on Computer Science, Software Engineering, Information Technology, e-business, and Application (CSITeA'02), 1., 2002. Proceeding... Brasil: [s.n.], 2002a.
Bibliografia bsica
SOUZA, Josemar; FURTADO, Adhvan; REBOUAS, Andr; REXACHS, Dolores; LUQUE, Emilio. Architectures for an Efficient Application Execution in a Collection of HNOWs. In: D. Kranzlmller et al. (Eds.): Euro PVM/MPI 2002, LNCS 2474, pp.450460, 2002. Springer-Verlag Berlin Heidelberg 2002. Linz, Austria. 2002. SOUZA, Josemar; FURTADO, Adhvan; REBOUAS, Andr; REXACHS, Dolores; LUQUE, Emilio; ARGOLLO, Eduardo. Application Execution Over a CoHNOWS. In: International Conference on Computer Science, Software Engineering, Information Technology, e-business, and Application (CSITeA'03), 1., 2003. Proceeding... Brasil: ISBN: 0-9742059-0-7, 2003a. SOUZA, Josemar; LUQUE, Emlio; REXACHS, Dolores. Anlise da distribuio de carga em cluster heterogneo. In: Congreso Argentino de Ciencias de la Computacin (CACIC00), 6., 2000. Proceeding... Argentina: [s.n.], 2000b. SOUZA, Marcelo; SOUZA, Josemar; MICHELI, Milena. Influncia da comunicao no rendimento de uma mquina paralela virtual baseada em Redes Atm. In: Workshop de Porto Alegre Internet 2 e Redes de Alta Velocidade, 1., 2000. Proceeding... Brasil: [s.n.], 2000. Sterling, Thomas L., etal. How to Build a Beowulf A guide to the implementation and Application of PC Clusters, MIT Press.
Centro Baiano de computao de Alto Desempenho
Programao Paralela
Prof. Leandro Coelho