M-PVM: An Implementation of PVM for Multithreaded and Shared-Memory Environments - Santos, Cláudio M. P.; Aude, Júlio S. (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD); 1997: Anais do IX Simpósio Brasileiro de Arquitetura de Computadores e Processamento de Alto Desempenho, 1997)
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.