Máquina virtual paralela
Parallel Virtual Machine (PVM) es una herramienta de software para redes paralelas de computadoras. Está diseñado para permitir el uso de una red de máquinas Unix y/o Windows heterogéneas como un único procesador paralelo distribuido. Por lo tanto, los problemas computacionales grandes se pueden resolver de manera más rentable utilizando la potencia y la memoria agregadas de muchas computadoras. El software es muy portátil; el código fuente, disponible gratis a través de netlib, ha sido compilado en todo, desde computadoras portátiles hasta Crays.
PVM permite a los usuarios aprovechar el hardware de su computadora existente para resolver problemas mucho más grandes a un costo adicional menor. PVM se ha utilizado como una herramienta educativa para enseñar programación paralela, pero también se ha utilizado para resolver problemas prácticos importantes. Fue desarrollado por la Universidad de Tennessee, el Laboratorio Nacional de Oak Ridge y la Universidad de Emory. La primera versión se escribió en ORNL en 1989 y, después de ser reescrita por la Universidad de Tennessee, la versión 2 se lanzó en marzo de 1991. La versión 3 se lanzó en marzo de 1993 y admitía tolerancia a fallas y mejor portabilidad.
PVM fue un paso hacia las tendencias modernas en el procesamiento distribuido y la computación en red, pero desde mediados de la década de 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.
Diseño
PVM es un sistema de software que permite usar 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 local o compartida, supercomputadoras vectoriales, motores de gráficos especializados o estaciones de trabajo escalares y PC, que pueden estar interconectadas por una variedad de redes, como Ethernet o FDDI.
PVM consta de un entorno de tiempo de ejecución y una biblioteca para el paso de mensajes, la gestión de tareas y recursos y la notificación de errores. Si bien PVM no hará que un paquete de software comercial se ejecute automáticamente más rápido, sí proporciona un poderoso conjunto de funciones para paralelizar manualmente un programa fuente existente o para escribir nuevos programas paralelos/distribuidos.
El software PVM debe instalarse específicamente en cada máquina que se vaya a utilizar en una "máquina virtual" determinada. No hay "automático" instalación de ejecutables en máquinas remotas en PVM, aunque simplemente copiando los directorios pvm3/lib
y pvm3/bin
a otra máquina similar (y configurando $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 es compatible con la transmisió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.
Contenido relacionado
IBM 632
USENIX
TAT-4