Table Of ContentUniversidade Federal do Ceará 
 
 
Mestrado em Ciência da Computação 
 
Dissertação de Mestrado 
 
 
 
WVM:  Uma Ferramenta para Processamento 
Distribuído de Alto Desempenho na Web 
 
 
 
 
 
Paulo Benício Melo de Sousa 
Orientador: Prof. Dr. Mário Fiallos Aguilar 
 
Fortaleza 
Outubro, 2001
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
 
 
Informações Gerais 
Título: WVM: Uma Ferramenta para Processamento Distribuído de Alto Desempenho 
na Web 
Autor: Paulo Benício Melo de Sousa 
Orientador: Mário Fiallos Aguilar 
Departamento: Ciência da Computação 
Grau: Mestrado 
Local e Data: Fortaleza, Ceará – Outubro de 2001 
 
WVM: Uma Ferramenta para PAD na Web           i i
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
 
Agradecimentos 
Primeiramente, agradeço ao Deus Eucarístico, verdadeira fonte de vida e sabedoria, 
pelo maior dom que recebi: a vida e por ter me concedido a graça de ter chegado até aqui. 
Não  posso  começar  sem  reconhecer  a  meu  orientador,  o  prof.  Mário  Fiallos,  pelo  seu 
empenho  e  paciência:  apesar  de  suas  ocupações  e  os  enormes  desafios  de  sua  lenta 
recuperação,  sempre  estava  pronto  a  atender  meus  questionamentos,  sugerir  propostas  e 
avaliar o andamento de meu trabalho. 
Devo ainda agradecer a todo o corpo técnico do Centro Nacional de Processamento 
de Alto Desempenho no Nordeste (CENAPAD-NE), em especial à Sra. Silvia Lustosa e ao 
meu amigo Wagner Melcíades, que me estimularam nos momentos em que precisava dispor 
de mais tempo para a redação desta dissertação. Um carinho especial às duas mulheres da 
minha  vida:  Regina  e  Lília,  que  souberam  entender  minhas  ausências,  aceitando  as 
dificuldades surgidas e me apoiando nos problemas do percurso. Não posso esquecer ainda o 
Orley da Secretaria do Mestrado que, por várias vezes, soube me ajudar com os vários 
problemas enfrentados perante a Pró-Reitoria de Pós-Graduação. 
Agradeço,  enfim,  a  todos  os  que,  direta  ou  indiretamente,  me  auxiliaram  nos 
trabalhos. 
 
 
WVM: Uma Ferramenta para PAD na Web          i i i
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
 
 
 
 
 
 
 
 
 
 
 
AD ASTRA PER ASPERA 
(Uma estrada tortuosa leva às estrelas) 
 
WVM: Uma Ferramenta para PAD na Web          i v
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
A  
PRESENTAÇÃO
 
WVM: Uma Ferramenta para PAD na Web           v
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
Resumo 
Este trabalho apresenta uma alternativa para programação de aplicações paralelas-
distribuídas que utilizam PVM, MPI ou Java. A ferramenta, que se utiliza de conceitos 
extremamente simples, é chamada WVM (Web Virtual Machine), numa alusão à possibilidade 
de se utilizar a World-Wide-Web como alternativa para configurar e utilizar aglomerados 
(clusters) remotos para processamento. 
WVM  dá  suporte  às  várias  fases  de  desenvolvimento  de  aplicações,  tais  como 
conexão  remota,  edição  de  códigos,  compilação,  execução  e  monitoramento  básico  de 
programas. Além disso, WVM permite que usuários ligados à WWW através de browser, 
acessem  os  aplicativos  (bibliotecas)  de  um  sistema  de  PAD  (Processamento  de  Alto 
Desempenho) específico. 
O  objetivo  final  é  apresentar  um  modelo  simples  e  expansível  e  fornecer  uma 
ferramenta que possa auxiliar no desenvolvimento de programas distribuídos em diferentes 
plataformas, tais como clusters de PCs, estações de trabalho e computadores de grande porte, 
como  o  existente  no  campo  piloto  do  protótipo,  em  execução  no  Centro  Nacional  de 
Processamento de Alto Desempenho (CENAPAD-NE). 
 
 
Palavras-Chaves 
Processamento paralelo e distribuído, PVM, MPI, Java, WWW. 
 
WVM: Uma Ferramenta para PAD na Web          v  i
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
Abstract 
This  work  presents  an  alternative  for  programming  of  parallel  and  distributed 
applications that use PVM, MPI or Java. The tool is called WVM (Web Virtual Machine), 
alluding to the possibility for using the World-Wide-Web as an alternative to configure and to 
utilize specific remote clusters for processing.  
WVM supports the different phases of application development: remote connection, 
code editing, compiling, execution and programming monitoring.  WVM also allows that 
users interconnected to the WWW access applications (libraries) from a High Performance 
Computing Center. 
The  tool,  which  is  experimentally  running  at  the  National  High  Performance 
Computing  Center  in  the  Northeast  of  Brazil  (CENAPAD-NE)  has  been  aiding  in  the 
development of programs distributed in different platforms, such as clusters of PCs, of work 
stations and computers of great load.  
 
 
Keywords 
Distributed and parallel processing, PVM, MPI, Java, WWW. 
 
WVM: Uma Ferramenta para PAD na Web         v  i i
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
 
 
 
Sumário 
INFORMAÇÕES GERAIS...........................................................................................................II 
AGRADECIMENTOS...............................................................................................................III 
APRESENTAÇÃO.................................................................................................................V 
RESUMO...............................................................................................................................VI 
PALAVRAS-CHAVES..............................................................................................................VI 
ABSTRACT...........................................................................................................................VII 
KEYWORDS.........................................................................................................................VII 
SUMÁRIO............................................................................................................................VIII 
ÍNDICE DAS FIGURAS...........................................................................................................XV 
ÍNDICE DAS TABELAS........................................................................................................XVIII 
INTRODUÇÃO......................................................................................................................XIX 
i.  Considerações Iniciais.............................................................................................xix 
ii.  Objetivo da Dissertação............................................................................................xx 
iii. Notação Utilizada.......................................................................................................xx 
iv. Organização do Trabalho...........................................................................................xxi 
PARTE I..................................................................................................................................1 
CAPÍTULO 1 - CONCEITOS BÁSICOS.......................................................................................2 
Introdução.........................................................................................................................2 
1.1.  Considerações de Hardware: Sistemas Computacionais..........................................2 
1.1.1 – Evolução e Desafios...........................................................................................2 
A. Breve Histórico......................................................................................................2 
(i). Necessidades dos usuários.................................................................................5 
(ii). Hardware versus Software................................................................................5 
B. O Problema do Processamento...............................................................................5 
C. Desafios para o Processamento..............................................................................8 
1.1.2 – Classificações das Arquiteturas..........................................................................8 
A. Considerações Históricas ......................................................................................8 
B. Sistemas MIMD ..................................................................................................11 
(i). Quanto ao Acoplamento...................................................................................11 
(ii). Quanto à Dep. dos Processadores e Granulosidade das Tarefas .....................13 
WVM: Uma Ferramenta para PAD na Web        v  i i i
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
(iii). Quanto à Sincronização ................................................................................14 
C. Sistemas Distribuído e Redes de Computadores ..................................................14 
1.2.  Considerações de Software: Sistemas e Aplicações Distribuídas...........................15 
1.2.1 – Breve Histórico................................................................................................15 
1.2.2 – Classificação dos Sistemas...............................................................................16 
1.2.3 – O Modelo C/S..................................................................................................18 
1.2.4 – Aplicações Distribuídas....................................................................................18 
A. Definição..............................................................................................................18 
B. Desafios................................................................................................................19 
C. Componentes de Aplicações Distribuídas.............................................................20 
D. Requisitos para Aplicações Distribuídas..............................................................21 
E. Alternativas de Implementação ............................................................................24 
Resumo........................................................................................................................26 
CAPÍTULO 2 - PROGRAMAÇÃO PARALELA - DISTRIBUÍDA....................................................27 
Introdução.......................................................................................................................27 
2.1.  Processamento de Alto Desempenho.....................................................................28 
2.1.1 – Definição..........................................................................................................28 
2.1.2 –Alternativas Atuais............................................................................................28 
A. Em nível de hardware..........................................................................................30 
B. Em nível de software............................................................................................31 
2.2.  Processamento Paralelo.........................................................................................30 
2.2.1 – Definição..........................................................................................................30 
2.2.2 – Tipos de Paralelismo........................................................................................31 
A. Quanto à Programação.........................................................................................31 
B. Quanto ao Particionamento..................................................................................33 
C. Quanto ao Programa (homogeneidade dos processos) .........................................34 
2.2.3 – Paradigmas de Programação.............................................................................33 
2.2.4 – Aspectos Funcionais.........................................................................................36 
A. Fatores Determinantes para o Desempenho..........................................................34 
(i). Granulosidade..................................................................................................35 
(ii). Balanceamento de Carga / Sincronização.......................................................37 
(iii). Escalabilidade................................................................................................38 
B. Dificuldades no Paralelismo.................................................................................37 
C. Justificando o Paralelismo....................................................................................38 
2.3.  Passagem de Mensagem........................................................................................39 
2.3.1 – Definição e Características...............................................................................39 
A. Vantagens.............................................................................................................39 
B. Limitações............................................................................................................41 
WVM: Uma Ferramenta para PAD na Web          i x
Universidade Federal do Ceará                        Mestrado em Ciência da Computação     
2.3.2 – Tipos de Rotinas...............................................................................................42 
2.3.3 – Tipos de Comunicação.....................................................................................42 
A. Quanto ao Bloqueio..............................................................................................42 
B. Quanto à Sincronização........................................................................................43 
C. Quanto ao Armazenamento da Mensagem...........................................................44 
2.3.4 – Principais Bibliotecas de Passagem de Mensagem...........................................43 
A. Características Comuns........................................................................................44 
B. PVM (Parallel Virtual Machine)...........................................................................45 
(i). Introdução........................................................................................................46 
(ii). Funcionamento...............................................................................................46 
(iii). Principais Rotinas..........................................................................................49 
C. MPI (Message Passing Interface)........................................................................50 
(i). Introdução........................................................................................................50 
(ii). Funcionamento...............................................................................................50 
(iii). Principais Rotinas..........................................................................................52 
2.3.5 – Características da Programação Distribuída de Alto Desempenho...................53 
Resumo........................................................................................................................54 
CAPÍTULO 3 - PROCESSAMENTO NA INTERNET.....................................................................54 
Introdução.......................................................................................................................54 
3.1.  Internet e Computação Distribuída........................................................................54 
3.1.1 – Histórico...........................................................................................................54 
3.1.2 - Java...................................................................................................................56 
A. Considerações Iniciais..........................................................................................56 
B. Computação Distribuída com Java.......................................................................57 
C. Usando Java para Comunicar Processos...............................................................58 
D. Tendências Futuras..............................................................................................59 
E. Outras Tecnologias...............................................................................................61 
(i). Aplicações proprietárias...................................................................................61 
(ii). Novas linguagens de programação..................................................................62 
3.1.3 – Características da Programação Internet...........................................................62 
3.2.  Metacomputação....................................................................................................64 
3.2.1 – Definições e Características..............................................................................62 
A. O que significa Metacomputação.........................................................................62 
B. Características......................................................................................................63 
C. Componentes........................................................................................................64 
3.2.2 – Modelos de Metacomputação...........................................................................66 
A. Classes de Comunicação e Interfaces...................................................................67 
B. Ferramentas e Arquiteturas baseada em Agentes..................................................68 
WVM: Uma Ferramenta para PAD na Web           x
Description:Processamento paralelo e distribuído, PVM, MPI, Java, WWW.  Abstract. This work presents an alternative for programming of parallel and distributed  desempenho, rapidez de processamento, modularidade, confiabilidade e concorrência,  [JAWORSKI, 1998] - Jaworski, J. Java 1.2 Unleashed.