MPVM: Uma Implementação de PVM com Uso de Threads para Ambientes com Memória Compartilhada
Autores
1618 |
Cláudio Miguel de Paiva Santos
|
680,681
|
1619 |
680,681
|
Informações:
Publicações do PESC
MPVM
Uma Implementação de PVM com Uso de Threads para Ambientes com Memória Compartilhada
Cláudio Miguel de Paiva Santos
Março/1998
Orientador: | Julio Salek Aude | |
|
0 MPVM é uma implementação do PVM projetada para trabalhar eficientemente
em arquiteturas paralelas que aceitam o conceito de multithreading e o modelo de
memória compartilhada. Em particular, a implementação atual do MPVM executa no
Mulplix, um sistema operacional Unix-like, desenvolvido para executar de modo
eficiente aplicativos paralelos no Multiplus, um multiprocessador paralelo de
memória compartilhada distribuída em desenvolvimento na Universidade Federal
do Rio de Janeiro.
0 MPVM é uma biblioteca de programação paralela construída sobre as
primitivas de programação paralela do Mulplix. No MPVM, as tasks PVM são mapeadas
em threads do Mulplix. Três abordagens foram adotadas para a implementação das
primitivas de troca de mensagens. Na primeira abordagem, uma única cópia da
mensagem é compartilhada por todas as tasks destinos. A segunda abordagem replica
a mensagem para cada task destino, mas exige menos sincronização.
Finalmente, a terceira abordagem utiliza uma solução mista baseada nas
abordagens anteriores. 0 MPVM não é totalmente compatível com o PVM padrão, mas
oferece um ambiente que simplifica o transports dos aplicativos PVM para as
plataformas de memória compartilhada multithreaded, na maioria dos casos, com
melhorias de desempenho. São apresentados alguns resultados experimentais
comparando o desempenho dos aplicativos MPVM e PVM, sendo executados em uma
Sun Sparcstation 20 de 4 processadores sob Solaris 2.5.
Estes resultados mostram que o MPVM pode produzir ganhos de velocidade na
faixa de 20% a 50% em relação ao PVM.
MPVM
An Implementation of PVM for Multithreaded and Shared-Memory Environments
Cláudio Miguel de Paiva Santos
March/1998
Advisor: | Julio Salek Aude | |
Department: Systems Engineering and Computer Science |
MPVM is an implementation of PVM designed to work efficiently in parallel architectures supporting multithreading and the shared memory model. In particular, the current MPVM implementation is running within Mulplix, a Unix-like operating system designed to efficiently support parallel applications running on Multiplus, a distributed shared memory parallel computer under development at the Federal University of Rio de Janeiro. MPVM is a parallel programming library built on top of the Mulplix parallel programming primitives. Within MPVM, PVM tasks are mapped onto Mulplix threads. Three approaches have been adopted for the implementation of the message passing primitives. In the first approach a single copy of the message in memory is shared by all destination MPVM tasks. The second approach replicates the message for every destination task but requires less synchronization. Finally, the third approach uses a mixed solution based on the two previous approaches. MPVM is not totally compatible with standard PVM but offers an environment which simplifies the portability of PVM applications to multithreaded shared memory platforms, in most cases, with performance improvements. Experimental results comparing the performance of MPVM and PVM applications running on a 4-processor Sparcstation 20 under Solaris 2.5 are presented. These results show that MPVM can produce speed-up gains in the range of 20 to 50% in relation to PVM.