Parallel Virtual Machine

Parallel Virtual Machine

Parallel Virtual Machine (PVM) est une bibliothèque de communication (langages C et Fortran) pour machines parallèles et réseau d'ordinateurs (locaux ou distants, éventuellement hétérogènes). Il permet à un réseau d'ordinateurs d'apparaître comme un seul ordinateur, appelé machine virtuelle. Il a été développé à Oak Ridge National Laboratory en 1989 et a servi de base à un projet plus vaste commun à trois universités des États-Unis [1].


Sommaire

Introduction

PVM est une bibliothèque portable de passage de messages permettant d'utiliser un réseau de machines hétéroclites (PC, Serveur, Superordinateur) en formant une machine virtuelle unique.

Le but général de PVM est de proposer une solution simple et hautement productive pour développer des applications fortement partagées.

PVM gère tout le routage de messages, la conversion de données et la répartition des tâches au sein d'un réseau d'architectures distinctes et normalement incompatibles.

L'interface de programmation est très simple:

  • L'utilisateur écrit une application comme une collection de taches coopératives
  • Les tâches accèdent aux ressources PVM à travers une bibliothèque de routines standards
  • Ces routines permettent l'initialisation et l'exécution des tâches à travers le réseau ainsi que les communications et les synchronisations entre les différentes tâches.

Le démon PVM (pvmd)

Un démon PVM est lancé sur chaque machine pour former une machine virtuelle globale. Un pvmd possède un propriétaire qui est le seul à pouvoir utiliser les ressources de la machine, pour des raisons de sécurité.

Le démon PVM fournit plusieurs fonctionnalités:

  • authentification
  • routage et contrôle des messages
  • contrôle de processus
  • détection des erreurs

Il vérifie également si les autres démons de la machine virtuelle sont toujours en activité.

Même si l'application crashe, le démon continue de fonctionner afin d'assister le débogage.

Au démarrage, le démon se configure comme maître ou esclave selon les arguments. Il crée une grille de connexion pour communiquer avec les taches et les autres démons, et ouvre un journal d'erreurs.

Un démon maître lit le fichier hôte s'il existe alors que le démon esclave reçoit les paramètres du maitre (ce fichier est un .pvmrc dont chaque ligne est: add <nom_du_client> )

Après configuration, le démon lance une boucle qui examine toutes les sources d'entrée et place les paquets dans une file d'attente. Ces paquets sont ensuite réassemblés et injectés dans le point d'entrée.

le démon est stoppé quand il est supprimé de la machine virtuelle ou quand il reçoit un message d’arrêt.

Quand le démon s'arrête, il effectue deux actions finales:

  • il arrête les tâches sous son contrôle (avec un SIGTERM)
  • il envoie un message à tous les autres démons dans sa table des hôtes

Le nombre de taches qu'un démon peut gérer est limité par deux facteurs:

  1. le nombre de processus que le système d'exploitation autorise à un utilisateur
  2. le nombre de descripteurs de fichier disponibles (dépend de l'OS)

L'interprète PVM (pvm)

Il y a un interprète, qui se lance avec la commande pvm, et qui permet d'agir sur le démon (pvmd) grâce à diverses commandes:

  • conf liste l'ensemble des machines disponibles
  • add permet de rajouter un client
  • del permet de supprimer un client
  • halt sort de l'interprète et tue le démon

La librairie PVM

La librairie permet à une tache de communiquer avec le démon et les autres tâches. Elle contient des fonctions pour assembler et désassembler les messages, et d'autres fonctions pour effectuer les appels systèmes.

la librairie est construite en deux niveaux:

  • haut niveau générique pour toutes les machines incluant la plupart des fonctions de l'interface
  • bas niveau spécifique à un environnement pouvant être remplacé

Protocoles utilisés par PVM

Les démons communiquent entre eux par UDP en utilisant un mécanisme de vérification et de récupération. TCP n'est pas utilisé dans ce cas car il consomme un FileDescriptor pour chaque connexion (nombre limité par le système) et ne permet pas de tolérance aux pannes si un démon a crashé. TCP serait également trop gourmand niveau ressource car chaque démon devrait avoir N-1 sockets, ce qui représenterait N*(N-1) sockets pour le système global.

Les taches communiquent entre elles par le protocole TCP afin d'assurer la cohérence des données.

Architectures supportées

Architectures supportées[2]
Architecture Système
Pentium II, Pentium Pro, Pentium, Duals and Quads Win95, NT 3.5.1, NT 4.0

Linux, Solaris, SCO, NetBSD, BSDI, FreeBSD

MAC NetBSD
Amiga NetBSD
SUN3, SUN4, SPARC, UltraSPARC SunOS, Solaris 2.x
IBM RS6000, J30 AIX 3.x, AIX 4.x
HP 9000 HPux
DEC Alpha, Pmax, microvax OSF, NT-Alpha
SGI IRIS 5.x, IRIS 6.x
Cray YMP, T3D, T3E, Cray2
Convex Exemplar
IBM SP2, 3090
NEC SX-3
Fujitsu
Amdahl
TMC CM5
Intel Paragon
Sequent Symmetry, Balance


Références

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Parallel Virtual Machine de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Parallel virtual machine — (PVM) est une bibliothèque de communication (langages C et Fortran) pour machines parallèles et réseau d ordinateurs (locaux ou distants, éventuellement hétérogènes). Il permet à un réseau d ordinateurs d apparaître comme un seul ordinateur,… …   Wikipédia en Français

  • Parallel Virtual Machine — (PVM) (виртуальная параллельная машина)  общедоступный программный пакет, позволяющий объединять разнородный набор компьютеров в общий вычислительный ресурс («виртуальную параллельную машину») и предоставляющий возможности управления… …   Википедия

  • Parallel Virtual Machine — NOTOC The Parallel Virtual Machine (PVM) is a software tool for parallel networking of computers. It is designed to allow a network of heterogeneous Unix and/or Windows machines to be used as a single distributed parallel processor. Thus large… …   Wikipedia

  • Virtual machine — A virtual machine (VM) is a completely isolated guest operating system installation within a normal host operating system .[1] Modern virtual machines are implemented with either software emulation or hardware virtualization or (in the most… …   Wikipedia

  • Virtual Machine Interface — [ [http://vmi.ncsa.uiuc.edu/ Official web site] ] ( VMI ) may refer to a communication protocol for running parallel programs on a distributed memory system.Virtual Machine Interface [ [http://www.vmware.com/interfaces/paravirtualization.html… …   Wikipedia

  • Machine virtuelle parallèle — Parallel Virtual Machine Parallel Virtual Machine (PVM) est une bibliothèque de communication (langages C et Fortran) pour machines parallèles et réseau d ordinateurs (locaux ou distants, éventuellement hétérogènes). Il permet à un réseau d… …   Wikipédia en Français

  • Virtual lab automation — is refers to a category of software solutions to automate IT labs using virtualization technology. Virtual Lab Automation (VLA) solutions are available as on premise packaged software or as a cloud service.HistoryAkimbi pioneered the Virtual Lab… …   Wikipedia

  • Virtual Processor — Tao Virtual Processor (VP) is a virtual machine from Tao Group.The first version, VP1, was the basis of its parallel processing multimedia OS and platform, TAOS. VP1 supported a RISC like instruction set with 16 32 bit registers, and had data… …   Wikipedia

  • Virtual synchrony — is an interprocess messaging passing (sometimes called event queue management) technology. Virtual synchrony systems allow programs running in a network to organize themselves into process groups , and to send messages to groups (as opposed to… …   Wikipedia

  • Máquina Virtual Paralela — La Máquina Virtual Paralela (conocida como PVM por sus siglas en inglés de Parallel Virtual Machine) es una biblioteca para el cómputo paralelo en un sistema distribuido de computadoras. Está diseñado para permitir que una red de computadoras… …   Wikipedia Español

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”