PVM permet aux utilisateurs d'exploiter leur matériel informatique existant pour résoudre des problèmes beaucoup plus complexes à moindre coût. PVM a été utilisé comme outil pédagogique pour enseigner la programmation parallèle, mais aussi pour résoudre d'importants problèmes pratiques. Il a été développé par l' Université du Tennessee , le Laboratoire national d'Oak Ridge et l'Université Emory . La première version a été écrite à ORNL en 1989, et après avoir été réécrite par l'Université du Tennessee, la version 2 a été publiée en mars 1991. La version 3, publiée en mars 1993, offrait une meilleure tolérance aux pannes et une portabilité accrue .
PVM a constitué une avancée vers les tendances modernes du traitement distribué et du calcul en grille, mais a été largement supplanté, depuis le milieu des années 1990, par la norme MPI, beaucoup plus performante , pour la communication par messages sur machines parallèles. PVM est un logiciel libre , distribué sous les licences BSD et GNU GPL .
machine virtuelle parallèle ».Les ordinateurs individuels peuvent être des multiprocesseurs à mémoire partagée ou à mémoire locale , des supercalculateurs vectoriels , des moteurs graphiques spécialisés ou des stations de travail et des PC scalaires , qui peuvent être interconnectés par divers réseaux , tels que Ethernet ou FDDI .
PVM comprend un environnement d'exécution et une bibliothèque pour la transmission de messages , la gestion des tâches et des ressources, ainsi que la notification des erreurs. Bien que PVM n'améliore pas automatiquement les performances d'un logiciel commercial, il offre un ensemble de fonctions puissantes permettant de paralléliser manuellement un programme source existant ou de développer de nouveaux programmes parallèles/distribués.
Le logiciel PVM doit être installé spécifiquement sur chaque machine utilisée dans une machine virtuelle donnée. Il n'existe pas d'installation automatique des exécutables sur les machines distantes avec PVM ; toutefois, la simple copie des répertoires ` pvm3/lib<nom_du_logiciel> ` et `<nom_du_répertoire>` pvm3/binvers une autre machine similaire$PVM_ROOT (et la configuration des variables d'environnement `<nom_du_logiciel>` et `<nom_du_répertoire $PVM_ARCH>`) suffit pour exécuter les programmes PVM. La compilation ou la génération de programmes PVM nécessite l'installation complète de PVM.
Les programmes utilisateur écrits en C , C++ ou Fortran peuvent accéder à PVM via les routines de bibliothèque fournies.
PVM prend également en charge la diffusion (PVM_bcast) qui envoie à tous les processus d'un groupe et la multidiffusion (PVM_mcast) qui envoie à une liste spécifique de processus.