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.