miércoles, 24 de octubre de 2012

PVM (Parallel Virtual Machine)


PVM (Parallel Virtual Machine, Máquina Virtual Paralela)

PVM significa “Parallel Virtual Machine”, es relativamente nuevo ya que sus inicios se remontan al verano de 1989 en el Oak Ridge National Laboratory.

PVM consiste en un software y un conjunto de librerías, que permiten establecer una colección de uno o más sistemas de computación, con el fin de poder integrar dichos sistemas en un esquema de una sola máquina virtual (PVM: Parallel Virtual Machine - Máquina virtual en paralelo).

PVM opera sobre diferentes plataformas de UNIX y también de Windows 9x, la cantidad de plataformas en las que puede correr el ambiente de PVM es muy variada y abundante. PVM puede establecerse en cualquier esquema de red heterogénea, sobre todo en el ambiente de Internet, como se puede apreciar en la gráfica anterior.

PVM brinda rutinas en lenguajes C y en Fortran para procesos como paso de mensajes asíncronamente y para control de procesos; además de ofrecer un paralelismo escalable, entre otras muchas ventajas que ofrece.

A pesar de que PVM no es un estándar, es sumamente popular para realizar y desarrollar aplicaciones científicas complejas que requieren un esquema de programación en paralelo, dada su compatibilidad en sistemas operativos es sumamente portable y fácil de instalar, además de que PVM consiste en un esquema pequeño de código de computadora.



Ventajas
  •  Portabilidad.- Es probablemente la librería de paso de mensajes más portable que existe.


Estaciones de trabajo.
Computadoras en paralelo.

Sun3
SPARCstation
MicroVax
DECstation
DEC Alpha
IBM RS/6000
NEXT
Silicon Graphics IRIS 
HP 9000
DG Aviion
386/486 Linux boxes
IBM RT
386/486 BSD386 boxes    

Intel Paragon
Thinking Machines CM5
Sequent Symmetry
Intel iPSC/860
Thinking Machines CM2
Alliant FX/8
Encore 8800
MIPS 4680
Cray YMP and C90
Fujitsu VP2000
Convex
IBM 3090
KSR-1
IBM-SP1


  • Paralelismo Escalable.- PVM permite definir cuantos procesadores puede utilizar una aplicación, en caso de que falten procesadores, PVM realiza el trabajo en menos procesadores, recurriendo a técnicas de procesamiento concurrente.
  • Tolerancia A Fallas A Partir De Añadir O Borrar Procesos Anfitriones (Host).
  • Fácil De Instalar Y De Usar.
  • Popular.- Es una de las librerias de paso de mensajes más faciles y óptimas.
  • Flexible.

    • Esquema fácil de modificar y de configurar/definir por la máquina virtual.
    • Control arbitrario de dependencia de estructuras. La aplicación decide:

      • Donde y cuando producir o terminar las tareas.
      • Cuales máquinas se agregan o se remueven desde la máquina virtual en paralelo.
      • Cuales tareas se pueden comunicar y/o sincronizar con otras.

  • Puede incorporar casi cualquier computadora que funcione bajo UNIX, (Obviamente con cuenta de acceso), para incorporarla fácilmente al esquema de la máquina virtual.


Desventajas
·        

  • Desempeño.- Como PVM es un esquema heterogéneo de computadoras, dependiendo de la capacidad de procesamiento de las computadoras vinculadas al esquema de la máquina virtual, su desarrollo puede verse mermado o incrementado, según sea el poder de cómputo de las computadoras anfitrionas.  
  • Cuenta con un esquema no estandarizado.- PVM no es un estándar (como lo es MPI).
  •  Es algo deficiente en cuanto al paso de mensajes se refiere.


Configuración

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 máquina 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.
·         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 más interesantes son: add/delete hostname: Añade/Quita el ordenador con nombre hostname a la máquina virtual.
·         conf: Para ver la configuración actual.
·         ps –a: Para ver los procesos en ejecución en la máquina virtual.
·         quit: Para salir de la consola pero dejar la máquina virtual activa.
·         halt: Para detener la máquina virtual y salir de la consola. 



                Las tres librerías de PVM son las siguientes:


libpvm3.a.-
Esta librería brinda una gran cantidad de rutinas escritas en lenguaje C. Esta rutina siempre es requerida.
libfpvm3.a.-
Librería adicional que se requiere en caso de que la aplicación escrita en PVM utiliza código de Fortran.
libgpvm.a.-
Librería requerida en caso de usar grupos dinámicos.

Las citadas libreras contienen subrutinas sencillas que son incluidas en el código de aplicación escrito en PVM. Proveen las herramientas suficientes como para realizar acciones tales como el iniciado y borrado de procesos, el empaquetamiento, desempaqueta miento y recepción de mensajes, sincronización vía barrera (synchronize via barriers) y configuración dinámica de la máquina virtual.


Ejemplo


#include “pvm3.h”
main()
{
   int tid, msgtag, cc;
   char buf[100];
   printf("i'm t%x\n", pvm_mytid());
   cc = pvm_spawn(”slave", (char**)0, 0, "", 1, &tid);
   if (cc == 1) {
      msgtag = 1;
      pvm_recv(tid, msgtag);
      pvm_upkstr(buf);
      printf("from t%x: %s\n", tid, buf);
   } else
      printf("can't start hello_other\n");
   pvm_exit();
}





No hay comentarios:

Publicar un comentario