close
Ir para o conteúdo

Parallel Virtual Machine

Origem: Wikipédia, a enciclopédia livre.
Parallel Virtual Machine
DesenvolvedoresOak Ridge National Laboratory
Universidade do Tennessee
Universidade Emory
Lançamento estável
3.4.6[1] / 2 de fevereiro de 2009[1]
Escrito emC
Sistema
operacional
Unix e Windows
TipoAmbiente de computação paralela e computação distribuída
WebsiteNetlib

Parallel Virtual Machine (PVM) é um sistema de software para computação paralela e computação distribuída que permite reunir computadores heterogéneos conectados em rede em um recurso computacional concorrente configurável pelo utilizador. Os computadores participantes podem possuir arquiteturas, sistemas operativos e capacidades de processamento diferentes.[2]

Aplicações escritas em C ou Fortran utilizam rotinas fornecidas pelo PVM para criar processos, enviar e receber mensagens, sincronizar tarefas e modificar a composição da máquina virtual. O sistema também realiza o encaminhamento de mensagens e a conversão de dados entre computadores que utilizam representações internas diferentes.[2][3]

História

[editar | editar código]

O projeto PVM começou durante o verão de 1989 no Oak Ridge National Laboratory, nos Estados Unidos. O primeiro protótipo, denominado PVM 1.0, foi desenvolvido por Vaidy Sunderam e Al Geist e utilizado internamente no laboratório, sem distribuição pública.[4]

A segunda versão foi desenvolvida na Universidade do Tennessee e lançada publicamente em março de 1991. Após diferentes revisões da série 2, o programa foi reescrito, dando origem ao PVM 3, concluído em fevereiro de 1993.[4]

O desenvolvimento posterior ocorreu como uma colaboração entre o Oak Ridge National Laboratory, a Universidade do Tennessee e a Universidade Emory. O projeto fazia parte de pesquisas sobre computação concorrente em redes heterogéneas.[3]

Durante a década de 1990, o PVM tornou-se amplamente utilizado em aplicações científicas e foi considerado um padrão de facto para a formação de agrupamentos de computadores heterogéneos. Segundo o Oak Ridge National Laboratory, o sistema havia atraído mais de 400 mil utilizadores em meados daquela década.[5]

A versão 3.4.6 foi disponibilizada em fevereiro de 2009. A atualização concentrou-se em correções de erros e de segurança, compatibilidade com diferentes distribuições Linux, atualizações de compiladores e melhorias para arquiteturas de 64 bits.[1]

Arquitetura

[editar | editar código]

A documentação do PVM descreve dois componentes principais. O primeiro é o daemon pvmd3, executado em cada computador participante da máquina virtual. O segundo é uma biblioteca de rotinas utilizada pelas aplicações para comunicar-se com o ambiente PVM e com outras tarefas.[6]

O daemon mantém informações sobre os computadores e as tarefas que integram a máquina virtual, inicia processos e participa do encaminhamento de mensagens. As bibliotecas oferecem rotinas para transmissão e receção de dados, criação de tarefas, sincronização e alteração da configuração da máquina virtual.[6]

A distribuição também inclui um console textual, iniciado pelo comando pvm, que permite adicionar ou remover computadores, listar tarefas, iniciar programas e encerrar a máquina virtual. O XPVM foi desenvolvido como uma interface gráfica complementar para acompanhamento e análise da execução das aplicações.[2]

Modelo de programação

[editar | editar código]

Uma aplicação PVM é formada por um conjunto de tarefas, cada uma responsável por uma parte do trabalho computacional. Essas tarefas podem executar funções diferentes ou utilizar o mesmo programa sobre partes distintas dos dados.[6]

No paralelismo funcional, tarefas diferentes executam etapas distintas da aplicação, como entrada, processamento e apresentação dos resultados. No paralelismo de dados, diversas tarefas executam operações semelhantes sobre subconjuntos dos dados, modelo também denominado programa único, múltiplos dados. O PVM permite combinar as duas abordagens.[6]

As tarefas são identificadas por números próprios e comunicam-se por meio de mensagens. As bibliotecas oferecem operações ponto a ponto, envio para grupos de tarefas, barreiras de sincronização e mecanismos de notificação.[2]

Comunicação e heterogeneidade

[editar | editar código]

Na implementação genérica, a comunicação entre os computadores utiliza sockets e os protocolos TCP e UDP. O encaminhamento pode ocorrer por intermédio dos daemons ou diretamente entre tarefas, dependendo da configuração e da plataforma.[7]

Para permitir a comunicação entre arquiteturas incompatíveis, o PVM pode converter automaticamente os dados transmitidos. Dessa forma, uma mesma máquina virtual pode combinar estações de trabalho, computadores multiprocessados, máquinas vetoriais e outros sistemas conectados em rede.[2]

A composição da máquina virtual pode ser modificada durante a execução. O PVM também detecta determinadas falhas de computadores ou da rede e fornece mecanismos de consulta e notificação às aplicações. Entretanto, não recupera automaticamente uma aplicação interrompida; a lógica de tolerância a falhas deve ser implementada pelo programador.[7]

Instalação

[editar | editar código]

O daemon foi projetado para poder ser instalado e executado por um utilizador comum, sem exigir privilégios administrativos. Diferentes utilizadores podem configurar máquinas virtuais próprias, inclusive utilizando parcialmente os mesmos computadores.[6]

Os programas devem ser compilados para as arquiteturas nas quais serão executados. A variável PVM_ARCH identifica a arquitetura local, enquanto PVM_ROOT indica o diretório em que o sistema está instalado.[6]

Ver também

[editar | editar código]

Referências

[editar | editar código]

Referências

  1. 1 2 3 «PVM Version 3.4.6 is Available on Netlib» (em inglês). Netlib. 2 de fevereiro de 2009. Consultado em 31 de julho de 2026. Cópia arquivada em 31 de julho de 2026
  2. 1 2 3 4 5 «Parallel Virtual Machine (PVM) Version 3» (em inglês). Netlib. Consultado em 31 de julho de 2026. Cópia arquivada em 31 de julho de 2026
  3. 1 2 Sunderam, Vaidy S.; Geist, G. A.; Dongarra, Jack; Manchek, Robert (abril de 1994). «The PVM concurrent computing system: Evolution, experiences, and trends». Parallel Computing (em inglês). 20 (4): 531–545. doi:10.1016/0167-8191(94)90027-2
  4. 1 2 «A Bit of History». PVM: Parallel Virtual Machine — A User's Guide and Tutorial for Networked Parallel Computing (em inglês). MIT Press. 1994. Consultado em 31 de julho de 2026. Cópia arquivada em 27 de julho de 2023
  5. «Oak Ridge National Laboratory: 80 Years of Great Science» (em inglês). Oak Ridge National Laboratory. Consultado em 31 de julho de 2026. Cópia arquivada em 11 de julho de 2026
  6. 1 2 3 4 5 6 «The PVM System». PVM: Parallel Virtual Machine — A User's Guide and Tutorial for Networked Parallel Computing (em inglês). MIT Press. 1994. Consultado em 31 de julho de 2026. Cópia arquivada em 31 de julho de 2026
  7. 1 2 «How PVM Works». PVM: Parallel Virtual Machine — A User's Guide and Tutorial for Networked Parallel Computing (em inglês). MIT Press. 1994. Consultado em 31 de julho de 2026. Cópia arquivada em 9 de junho de 2024

Ligações externas

[editar | editar código]