PVM Parallel Virtual Machine Autor: Alejandro Gutiérrez Muñoz PVM – ¿Qué es PVM? Consiste en un software y un conjunto de librerías, que permiten establecer una colección de uno o mas sistemas de computación, con el fin de poder integrar dichos sistemas en un esquema de una sola máquina virtual. Opera sobre diferentes plataformas de UNIX y Windows. Puede establecerse en cualquier esquema de red heterogénea, sobretodo en el ambiente de Internet. Brinda rutinas en lenguajes C y en Fortran para procesos como paso de mensajes asincrónicamente y para el control de procesos. Además de ofrecer un paralelismo escalable, entre otras muchas ventajas. Es muy utilizado para realizar y desarrollar aplicaciones científicas complejas que requieren un esquema de programación en paralelo, dada su compatibilidad entre sistemas operativos, es muy portable y fácil de instalar. Actualmente PVM esta en la versión 3.4.6. Pero para exponer los ejemplos nos basaremos en la versión 3.0. PVM – Ventajas Es una de las librerías de paso de mensajes mas fáciles de usar. Flexible: Control arbitrario de dependencia de estructuras. La aplicación decide: ○ Donde y cuando ejecutar o terminar las tareas. ○ Que máquinas se añaden o se eliminan desde la máquina virtual paralela. ○ Que tareas se pueden comunicar y/o sincronizar con otras. Flexible: Control arbitrario de dependencia de estructuras. La aplicación decide: Puede incorporar cualquier ordenador al esquema de la maquina virtual, como vemos a continuación. PVM – Desventajas Al ser un esquema heterogéneo de ordenadores, el rendimiento depende de la capacidad de procesamiento de los ordenadores vinculados al esquema de la maquina virtual (lo que era una ventaja tiene una su desventaja). Es algo deficiente en cuanto al paso de mensajes se refiere. PVM – Configuración del Ámbito Para explicar este punto nos vamos a vasar en los sistemas operativos UNIX. Cada ordenador debe de estar ejecutando el demonio pvmd PVM requiere de cierta configuración para cada usuario. Es necesario crear un archivo .rhosts en el directorio HOME de cada usuario que quiera ejecutar programas bajo PVM. El archivo .rhosts debe contener una línea por cada ordenador que va formar parte de la maquina virtual. Además debe incluir el nombre de usuario que se utilizara en cada una de ellas. Ejemplo: maquina1 username1 maquina2 username2 maquina3 username3 maquina4 username4 Además, se debe crear el directorio pvm3/bin/LINUX en el directorio HOME y colocar ahí los programas. PVM – Configuración de la MV Para configurar la MV utilizamos el programa “pvm” en cualquiera de los ordenadores que forman parte de la MV. Nos aparecerá un promt donde podremos introducir comandos para interactuar con la MV. Los comandos mas interesantes son: add/delete hostname: Añade/Quita el ordenador con nombre hostname a la maquina virtual. conf: Para ver la configuracion actual. ps –a: Para ver los procesos en ejecucion en la maquina virtual. quit: Para salir de la consola pero dejar la maquina virtual activa. halt: Para detener la maquina virtual y salir de la consola. PVM – Librerías libpvm3: Esta librería brinda una gran cantidad de rutinas escritas en lenguaje C. Esta librería siempre es requerida. libfpvm3: Librería adicional que se requiere en caso de que la aplicación escrita en PVM utilice código de Fortran. libgpvm: Librería requerida en caso de usar grupos dinámicos. A continuación explicaremos un poco los métodos mas interesantes de la librería principal libpvm3 PVM – Librerías – libpvm3 (I) En libpvm3 encontramos; Message Passing (paso de mensajes), como por ejemplo: Task Control (tareas de control), por ejemplo: pvm_barrier: Bloquea el proceso de la llamada hasta que todos los procesos en un grupo la han llamado. Virtual Machine Control (Control de la maquina virtual): pvm_exit: Para que el proceso salga de PVM Group Library Functions: pvm_send: Envía la información del buffer. pvm_addhosts: Añade un host a la MV Miscellaneous (funciones varias): vm_perror: Imprime mensaje describiendo el último error devuelto por una llamada PVM. PVM – Compilación Para compilar los programas implementados para PVM usamos: cc -o prog prog.c -lpvm3 PVM – Bibliografía www.wikipedia.en http://www.csm.ornl.gov/pvm/man/manpages.html Libro Online: PVM: parallel virtual machine Autores: Varios