PVM (Parallel Virtual Machine) es un paquete de software libre desarrollado por el Oak Ridge National Laboratory. Con PVM es posible hacer que una colección heterogénea de computadoras conectadas en red funcione como una sola computadora paralela, lo cual permite la ejecución y programación de aplicaciones paralelas en red, mediante el modelo de paso de mensajes.
PVM está escrito en C y cuenta con librerías que soportan la generación de aplicaciones en C, C++ y Fortran.
Algunas de las características principales de PVM incluyen las siguientes:
• Conjunto de máquinas definido por el usuario: El usuario puede elegir a través de una consola, de entre las máquinas conectadas al cluster, en cuales de ellas se va a ejecutar una tarea. Incluso las máquinas que forman parte de ese conjunto pueden ser agregadas o eliminadas dinámicamente, lo cual es una característica importante para la implementación de tolerancia a fallos.
• Acceso traslúcido al hardware: Los usuarios pueden utilizar un acceso transparente al hardware, en el que se permite que PVM decida la asignación de tareas o puede asignarse de manera explícita cuál máquina ejecutará cada tarea, para explotar mejor las capacidades del hardware.
• Computación basada en procesos: La unidad de paralelismo en PVM es una tarea, que es un hilo independiente de control que se alterna entre los estados de comunicación y cálculos. No existe un mapeo directo entre tareas y procesadores. De hecho es posible ejecutar varias tareas en una sola máquina.
• Modelo de paso de mensajes Explícito: Un conjunto de tareas cooperan en la solución de un problema enviándose mensajes entre sí. El tamaño de los mensajes sólo está limitado por la cantidad de memoria de cada computadora.
• Soporte de heterogeneidad: PVM soporta la heterogeneidad en términos de computadoras, redes y aplicaciones. Con respecto al paso de mensajes, PVM permite que mensajes que contienen más de un tipo de datos puedan ser intercambiados entre computadoras con diferentes formas de representación de datos.
• Soporte de multiprocesadores: PVM utiliza las facilidades nativas de paso de mensaje en computadoras paralelas, para hacer uso de las ventajas de este tipo de hardware subyacente. Algunos distribuidores proveen versiones de PVM optimizadas para sus arquitecturas particulares, que pueden comunicarse con las versiones públicas de PVM.
El sistema PVM está compuesto por dos partes: la primera parte es un daemon (llamado pvmd3 y a veces abreviado como pvmd) que se ejecuta en cada computadora conectada a la máquina virtual. Este proceso residente o daemon es el responsable de mantener la comunicación que
permite el paso de mensajes y la creación y eliminación de tareas en el cluster.
La segunda parte es un conjunto de librerías que permiten a las aplicaciones hacer uso de las características que ofrece PVM.
Instalación
Un cluster PVM está compuesto por un nodo maestro y varios nodos esclavos.
Para instalar PVM, es necesario que los nodos que van a ser incluidos en el cluster puedan accederse entre ellos mediante sus hostnames. Esto puede lograrse configurando un DNS o agregando dichos nombres en los archivos de hosts de cada uno de los nodos.
Para la ejecución de los procesos de forma remota, PVM utiliza por omisión RSH. Sin embargo, debido a que este es un protocolo que ya ha caído en desuso, se recomienda que se configure en cada nodo el servicio SSH. Posteriormente se puede recompilar PVM con la opción de utilizar SSH o simplemente crear una variable de entorno que le indica a PVM que utilice SSH y no RSH como su método de ejecución remota.
Para instalar PVM en Scientific Linux, basta con seleccionar el paquete al momento de instalar el sistema operativo, o instalarlo posteriormente desde los discos de la distribución.
Si se tiene acceso a internet, se puede instalar el paquete mediante un
yum -y install pvm
También es posible descargar y compilar el código fuente de PVM desde:
http://www.netlib.org/pvm3/index.html
Antes de utilizar el paquete, deben crearse las siguientes variables de entorno en cada nodo del cluster:
• PVM_ROOT: que debe contener la ruta donde esta instalado PVM. Para Scientific Linuxes: /usr/share/pvm3
• PVM_ARCH: que debe contener el nombre de la arquitectura para la cual se ha compilado (o se va a compilar) PVM. Por ejemplo LINUXI386 para computadoras que ejecutan una versión de Linux con un procesador compatible con el 386 de Intel.
• PVM_RSH: Que permite seleccionar el programa que se utilizará para lanzar procesos en cada nodo del cluster. Se recomienda utilizar /usr/bin/ssh.
Para que estas variables se carguen de manera automática, al iniciar la sesión de cada usuario que vaya a utilizar PVM, se pueden agregar las siguientes líneas a su archivo .bashrc:
PVM_ROOT=/usr/share/pvm3
PVM_ARCH=LINUXI386
PVM_RSH=/usr/bin/ssh
export PVM_ROOT PVM_ARCH PVM_RSH
De forma opcional, es recomendable agregar al PATH el directorio donde se encuentran las librerías de pvm, lo cual permite la ejecución de la consola y aimk (una herramienta para la compilación automática que funciona sobre make). Esto se logra agregando la cadena $PVM_ROOT/lib a la variable PATH
Por ejemplo:
PATH=$PATH:$HOME/bin:$PVM_ROOT/lib
Acto seguido, pueden compilarse en cada nodo las aplicaciones de ejemplo de PVM que vienen en el directorio $PVM_ROOT/examples. Esto puede hacerse cambiándose a dicho directorio y ejecutando el comando aimk all, el cual compila todos los ejemplos incluidos con PVM.
Los ejecutables son depositados automáticamente por aimk en el directorio $PVM_ROOT/bin/$PVM_ARCH.
Una vez hecho esto en cada nodo del cluster es posible dar de alta una máquina paralela virtual ejecutando el comando PVM en el nodo maestro y agregando, desde esta consola cada uno de los nodos esclavos mediante el comando add , SSH pedirá el password para poder acceder a cada uno de ellos. Para esto, es recomendable que en cada computadora se cree una cuenta con el mismo nombre de usuario, que permita acceder al cluster. El comando quit, permite salir de la consola de pvm sin dar de baja el cluster y ejecutar los ejemplos (como master1 o hello) desde la línea de comandos.
La página del proyecto PVM permite acceder a un manual de referencia muy completo, escrito por sus desarrolladores, que cubre la instalación y el desarrollo de aplicaciones en esta plataforma. Dicho manual está disponible en formato postscript y html en:
http://www.csm.ornl.gov/pvm/pvm_home.html
Excelente tutorial. Gracias.
ResponderEliminarPROFEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE se la rifa es el MEJOR
ResponderEliminarno funco uwu
ResponderEliminarNo pude hacer ni xuxas, gracias
ResponderEliminarme dice que no existe el comando aimk
ResponderEliminar