M-PVM: An Implementation of PVM for Multithreaded and Shared-Memory Environments
Resumo
O M-PVM é 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 M-PVM 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. O M-PVM é uma biblioteca de programação paralela construída sobre as primitivas de programação paralela do MULPLIX. No M-PVM, as tasks PVM são mapeadas em threads do MULPLIX. Duas 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. O M-PVM não é totalmente compatível com o PVM padrão, mas oferece um ambiente que simplifica o transporte 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 M-PVM e PVM, sendo executados em uma Sun Sparcstation 20 de 4 processadores sob Solaris 2.5. Estes resultados mostram que o M-PVM pode produzir ganhos de velocidade na faixa de 5% a 10% em relação ao PVM.
Referências
Azevedo, R.P., Azevedo, G.P., Silveira, J.T.C, Aude, J.S., "Parallel Programming Primitives within MULTIPLUS (in Portuguese)", Proceedings of the V Brazilian Symposium on Computer Architecture, Florianópolis, pp. 761-775, September 1993
Barros, M. O., Aude, J. S., "Implementation of Multithread Libraries in the Mulplix Operating System (in Portuguese)", Proceedings of the VIII SBAC-PAD-Recife, PE-August 1996
Chuang, W., "PVM Light Weight Process Package", Laboratory of Computer Science, Massachussets lnstitute of Technology, Computation Structures Group Memo 372, December, 1994
Faller, N., Salenbauch, P., "Piurix: A multiprocessing Unix-like operating system", Proceedings of the 2nd Workshop on Workstation Operating Systems, IEEE Computer Society Press, Washington, DC, USA, pp. 29-36, September 1989
Ferrari, A., Sunderam, V.S., "TPVM: A Threads-Based Interface and Subsystem for PVM", Computer Science Technical Report CSTR-940802, Ermory University, August, 1994
Geist AI, Beguelin A., Dongarra J., Jiang W., Mancheck R., Sunderarn V., "PVM - A users guide and tutorial for Network Parallel Computing", 1994, The MIT Press, Cambridge, Massachusetts.
lnstitute of Electrical and Electronics Enginners, POSIX PI003.4a, "Threads Extension for Portable Operating Systems", 1994
Knopman, J., Aude, J.S., "Parallelization of Genetic Algorithms Applied to the Placement Problema in Workastation Cluster", (in Portuguese) - Proceedings of the VIII SBAC-PAD, Recife, PE, August 1996
"High Performance Software Coherence for Current and Future Architectures" , L.l. Kontothanassis, M.L. Scott, Journal of Parallel and Distributed Computing, Vol. 29, No. 2, September 1995, pp. 179-195
Shckhar, S., Chubb, D., Turner, G., "Parallelizing GIS on a Shared Address Space Architecture", IEEE Computer, Dec. 1996, pp.42-48
Sun Microsystems Inc., " Multithreaded Programming Guide-Solaris 2.5", 1995
Vahalia, U. , "Unix Internais - The New Frontiers", Prentice Hall, 1996
Zhou, H., Geist, AI. "LPVM: A Step Towards Multithread PVM", Technical Report, Oak Ridge National Laboratory, June 1995