La máquina virtual paralela ( PVM ) es una herramienta de software para la interconexión en red de ordenadores en paralelo . Está diseñada para permitir que una red de máquinas Unix y/o Windows heterogéneas se utilice como un único procesador paralelo distribuido . [2] De este modo, los grandes problemas computacionales se pueden resolver de forma más rentable utilizando la potencia y la memoria agregadas de muchos ordenadores. El software es muy portátil; el código fuente, disponible de forma gratuita a través de netlib , se ha compilado en todo tipo de ordenadores, desde portátiles hasta Crays . [3]
PVM permite a los usuarios explotar su hardware informático existente para resolver problemas mucho más grandes a un menor coste adicional. PVM se ha utilizado como herramienta educativa para enseñar programación paralela , pero también se ha utilizado para resolver problemas prácticos importantes. [3] Fue desarrollado por la Universidad de Tennessee , el Laboratorio Nacional de Oak Ridge y la Universidad Emory . La primera versión se escribió en ORNL en 1989 y, tras ser reescrita por la Universidad de Tennessee, la versión 2 se publicó en marzo de 1991. La versión 3 se publicó en marzo de 1993 y admitía tolerancia a fallos y mejor portabilidad .
PVM fue un paso hacia las tendencias modernas en procesamiento distribuido y computación en red , pero desde mediados de los años 1990 ha sido reemplazado en gran medida por el estándar MPI, mucho más exitoso , para el paso de mensajes en máquinas paralelas. PVM es software libre , publicado bajo la Licencia BSD y la Licencia Pública General GNU .
PVM es un sistema de software que permite utilizar una colección de computadoras heterogéneas como un recurso computacional concurrente coherente y flexible, o una " máquina virtual paralela ".
Las computadoras individuales pueden ser multiprocesadores de memoria compartida o de memoria local , supercomputadoras vectoriales , motores gráficos especializados o estaciones de trabajo escalares y PC , que pueden estar interconectados mediante una variedad de redes , como Ethernet o FDDI .
PVM consta de un entorno de ejecución y una biblioteca para el paso de mensajes , la gestión de tareas y recursos y la notificación de fallos. Si bien PVM no hará que un paquete de software comercial se ejecute más rápido de forma automática, sí proporciona un potente conjunto de funciones para paralelizar manualmente un programa fuente existente o para escribir nuevos programas paralelos o distribuidos.
El software PVM debe instalarse específicamente en cada máquina que se vaya a utilizar en una "máquina virtual" determinada. No existe una instalación "automática" de ejecutables en máquinas remotas en PVM, aunque simplemente copiar los directorios pvm3/lib
y pvm3/bin
a otra máquina similar (y configurar $PVM_ROOT
y $PVM_ARCH
) es suficiente para ejecutar programas PVM. La compilación o creación de programas PVM requiere la instalación completa de PVM.
Los programas de usuario escritos en C , C++ o Fortran pueden acceder a PVM a través de las rutinas de biblioteca proporcionadas.
PVM también admite la difusión (PVM_bcast), que envía a todos los procesos de un grupo, y la multidifusión (PVM_mcast), que envía a una lista específica de procesos.