Está en la página 1de 23

DEDICATORIA

A nuestros padres por su apoyo


incondicional, as mismo a todos los que
de alguna u otra manera se esfuerzan
da tras da para lograr sus metas, a
ellos el presente trabajo.

Procesamiento

INTRODUCCION

PVM significa Parallel Virtual Machine, es relativamente


nuevo ya que sus inicios se remontan al verano de 1989 en
el Oak Ridge National Laboratory. Es un software que
permite ejecutar aplicaciones paralelas distribuidas en
redes de ordenadores heterogneos. PVM es, junto con MPI
Message Passing Interface, uno de los paquetes de
software ms utilizados para implementar aplicaciones
paralelas.
PVM (Parallel Virtual Machine) es una herramienta diseada
para solucionarnos una gran cantidad de problemas
asociados con la programacin paralela. Sobre todo, el
monetario. Para ello, nos va a crear una nueva abstraccin,
que es la mquina paralela virtual, empleando los recursos
computacionales libres de todas las mquinas de la red que
pongamos a disposicin de la biblioteca. Es decir,
disponemos de todas las ventajas econmicas asociadas a
la programacin distribuida, ya que empleamos los recursos
hardware de dicho paradigma; pero programando el
conjunto de mquinas como si se tratara de una sola
mquina paralela, que es mucho ms cmodo.
La PVM es el estndar de facto del mundo cientfico. De
hecho, en el rea de la Fsica Computacional, la PVM es una
biblioteca ampliamente usada.

Ing. Sistemas y Computacin

Pgina 2

Procesamiento

PVM

(PARALLEL VIRTUAL MACHINE)

1. CONCEPTO
El PVM es un paquete de software que permite a un
conjunto heterogneo de Unix o equipos con Windows
conectados entre s por una red que se utilizar como un
equipo nico en paralelo de gran tamao. Por lo tanto
grandes problemas informticos pueden ser resueltos de
manera ms rentable mediante la potencia agregada y la
memoria de muchos equipos.
PVM permite a los usuarios aprovechar sus equipos
informticos existentes para resolver problemas mucho
ms grandes a un coste adicional mnimo. Cientos de sitios
en todo el mundo estn utilizando PVM para resolver
importantes problemas cientficos, industriales y mdicas,
adems de utilizar PVM como una herramienta educativa
para ensear en paralelo de programacin. Con decenas de
miles de usuarios, PVM se ha convertido en el estndar de
facto para el mundo de la computacin distribuida a nivel
mundial.

Ing. Sistemas y Computacin

Pgina 3

Procesamiento

2.INFORMACIN GENERAL DEL PVM


El software PVM proporciona un marco unificado en el que
los programas paralelos se pueden desarrollar en forma
eficaz y sencilla utilizando el hardware existente. PVM
permite que una coleccin de sistemas informticos
heterogneos pueda ser considerada como una sola
mquina virtual paralela. PVM, maneja todo el enrutamiento
de mensajes, datos de conversin, y la programacin de
tareas a travs de una red de arquitecturas de computacin
incompatibles.
La
interfaz
de
programacin
es
deliberadamente sencilla, permitiendo as que las
estructuras sencillo programa que se ejecutar en un modo
intuitivo. El usuario escribe su aplicacin como un conjunto
de tareas de cooperacin. Tareas de recursos PVM acceso a
travs de una biblioteca de rutinas de interfaz estndar.
Estas rutinas permiten la iniciacin y terminacin de las
tareas a travs de la red, as como la comunicacin y
sincronizacin entre las tareas.
El mensaje PVM-primitivos que pasa se orienta hacia el
funcionamiento heterogneo, con la participacin inflexible
de tipos construcciones para almacenaje y transmisin. La
comunicacin y construcciones incluyen aquellos para
enviar y recibir estructuras de datos como primitivos, as
como de alto nivel, tales como la radiodifusin, la
sincronizacin de barrera, y la suma global. Las tareas de
PVM pueden poseer un control arbitrario y las estructuras
de dependencia. En otras palabras, en cualquier momento
de la ejecucin de una aplicacin concurrente, cualquier
tarea en existencia puede iniciar o detener tareas o agregar
o eliminar las computadoras de la mquina virtual.
Cualquier proceso pueden comunicarse y / o sincronizar con
cualquier otra. Las instrucciones especiales de control y la
estructura de dependencias podrn ser ejecutadas en el
marco del sistema de PVM mediante el uso adecuado de
PVM construye el idioma de acogida y el control de las
declaraciones de flujo. Cualquier proceso pueden
comunicarse y / o sincronizar con cualquier otra.
Ing. Sistemas y Computacin

Pgina 4

Procesamiento

Otros paquetes: Varios grupos de investigacin han


desarrollado paquetes de software que ayudan a los
programadores como PVM en el uso de la informtica
distribuida. Entre las iniciativas ms conocidas son:

El Sistema de P4
Express
MPI
El Sistema de Linda

EL SISTEMA DE P4
Es una biblioteca de macros y subrutinas desarrolladas en
el Laboratorio Nacional Argonne para la programacin de
una gran variedad de mquinas paralelas. p4 sistema
admite tanto el modelo de memoria compartida (con base
en los monitores) y el modelo de memoria distribuida (con
paso de mensajes). Para el modelo de memoria compartida
de la computacin paralela, P4 proporciona un conjunto de
monitores til, as como un conjunto de primitivas de las
que los monitores pueden ser construidos. Para el modelo
de memoria distribuida, P4 establece escrito enviar y recibir
operaciones y la creacin de procesos de acuerdo a un
archivo de texto que describe el grupo y la estructura de
proceso.
EXPRESS
El ncleo del sistema Express es un conjunto de
bibliotecas para la comunicacin, I / O, y los grficos
paralelos. Las primitivas de comunicacin son similares a
los encontrados en otro mensaje de paso de los sistemas
e incluyen una variedad de operaciones globales y los
datos primitivos de distribucin. Extended I / O (Input /
Output) rutinas permiten paralelo entrada y salida, y un
conjunto de rutinas similares se proporcionan para
Ing. Sistemas y Computacin

Pgina 5

Procesamiento

pantallas grficas de mltiples procesos concurrentes.


Express tambin incluye la herramienta de NDB, un
depurador paralelo que usa comandos basado en el
popular dbx interfaz.
MPI
La Message Passing Interface (MPI) no est destinada a ser
una infraestructura de software completo y autnomo que
se puede utilizar para la computacin distribuida. MPI no
incluye necesidades tales como la gestin de procesos (la
capacidad de iniciar las tareas), (virtual) de configuracin
del equipo y el apoyo para la entrada y de salida.. Como
resultado, se prev que MPI se realiza como una capa de
interfaz de comunicaciones que se construir en las
instalaciones de nativo de la plataforma de hardware
subyacente, con la excepcin de ciertas operaciones de
transmisin de datos que podran implementarse en un
nivel cercano al hardware. Este escenario permite la
prestacin de PVM est siendo portados a MPI para explotar
cualquier comunicacin de un rendimiento de los
suministros de proveedores.

EL SISTEMAS DE LINDA

El concepto principal en Linda es la de un `` tupla espacio'',


Una abstraccin que cooperan a travs de procesos de
comunicacin. Este tema central de Linda ha sido propuesto
como un paradigma alternativo a los dos mtodos
tradicionales de procesamiento en paralelo: el basado en
memoria compartida, y que sobre la base de paso de
mensajes. La tupla concepto de espacio es esencialmente
una abstraccin de la memoria distribuida compartida, con
una diferencia importante (tupla espacios asociativos) y
varias distinciones menores (destructivas y no destructivas
lee y coherencia semntica son posibles). Las aplicaciones
utilizan el modelo de Linda mediante la insercin de forma
explcita, dentro de los programas de cooperacin
Ing. Sistemas y Computacin

Pgina 6

Procesamiento

secuencial, construcciones que manipular


recuperar tuplas) el espacio de tupla.

(insertar

Desde el punto de vista de aplicacin Linda es un conjunto


de extensiones de lenguaje de programacin para facilitar
la programacin paralela. Proporciona una abstraccin de la
memoria compartida para la comunicacin entre procesos,
sin necesidad de hardware subyacente fsicamente
comparten la memoria.

3.EL SISTEMA DE PVM


PVM (Parallel Virtual Machine) es un subproducto de un
curso de computacin heterogneos proyecto de
investigacin de red que incluya a los autores y sus
instituciones. Los objetivos generales de este proyecto es
investigar en temas, y desarrollar soluciones para,
informtica concurrentes heterogneos. PVM es un conjunto
integrado de herramientas de software y bibliotecas que
emula a un propsito general, flexible, heterogneo marco
de
computacin
simultnea
en
ordenadores
interconectados de variada arquitectura.
El objetivo general del sistema de PVM es para permitir que
una coleccin de equipos que se utilizarn en forma
cooperativa para el clculo de concurrentes o paralelas. En
resumen, los principios en que se basa PVM son las
siguientes:
El usuario de host configurado piscina: Las tareas de
clculo La aplicacin de ejecutar en un conjunto de
mquinas que son seleccionados por el usuario para
una carrera determinada del programa de PVM. Ambas
mquinas de un solo CPU y multiprocesadores de
hardware
(incluyendo
memoria
compartida
y
distribuida de ordenadores de memoria) puede ser
Ing. Sistemas y Computacin

Pgina 7

Procesamiento

parte del grupo de acogida. La piscina de acogida


puede ser modificada mediante la adicin y
eliminacin de las mquinas durante la operacin (una
caracterstica importante para la tolerancia a fallos).
Translcido acceso al hardware: Los programas de
aplicacin o bien puede ver el entorno de hardware
como una coleccin sin atributos de los elementos de
procesamiento virtual, o puede optar por aprovechar
las posibilidades de mquinas especficas en la piscina
de acogida mediante la colocacin de determinadas
tareas de cmputo en los equipos ms adecuados.
Basado en el proceso de clculo: La unidad de
paralelismo en PVM es una tarea de (a menudo pero
no siempre un proceso de Unix), un hilo secuencial
independiente de control que alterna entre la
comunicacin y la computacin. No hay ningn
proceso a la cartografa del procesador es implcita o
ejecutada por PVM, en particular, podr ejecutar varias
tareas en un nico procesador.
Mensaje explcito de paso de modelo: las colecciones
de las tareas de clculo, cada uno realizando una
parte de los datos de carga de trabajo de una
aplicacin utilizando, funcional, o la descomposicin
hbrido, cooperar de forma explcita enviar y recibir
mensajes entre s. Este mensaje est limitado slo por
la cantidad de la memoria disponible.
La heterogeneidad de apoyo: El sistema de PVM apoya
la heterogeneidad en trminos de mquinas, redes y
aplicaciones. Con respecto a la transmisin de
mensajes, PVM permite mensajes que contengan ms
de un tipo de datos que se intercambian entre las
mquinas con diferentes representaciones de datos.

Ing. Sistemas y Computacin

Pgina 8

Procesamiento

Soporte para multiprocesadores: PVM utiliza el


mensaje nativo de pasar las instalaciones en
multiprocesadores para aprovechar el hardware
subyacente. Vendedores suelen suministrar sus
propios PVM optimizado para los sistemas, que an
puede comunicarse con la versin de PVM pblico.
CARACTERISTICAS DE PVM
Heterogeneidad
Escalabilidad
Mltiple representacin de datos
Tolerancia ante fallos.

Heterogeneidad
Cada computador tiene sus propias caractersticas en
cuanto:
Arquitectura
Mtodos de programacin optimizados
Cdigos diferentes
Formato de los datos
Exigencia
de
conversiones
en
las
transferencias
Capacidad de computacin
Potencia del procesador
Carga de trabajo
Carga de red
Hay que pensar en una distribucin
asimtrica de carga de trabajo
Escalabilidad
Porque podemos aumentar y
procesadores en caliente).

disminuir el nmero de

Mltiple representacin de datos


Ing. Sistemas y Computacin

Pgina 9

Procesamiento

Dotar de un mecanismo muy cmodo y potente para


realizar programas empleando modelos SIMD Varios
datos a la ves (SIMD)
Tolerancia ante fallos
En un caso como el nuestro, en el que la aplicacin va a
estar corriendo durante meses, es crtico que la
aplicacin sea tolerante a fallos. Siempre hay alguna
razn por la que alguna mquina puede fallar, y la
aplicacin debe continuar haciendo los clculos con aquel
hardware que contine disponible.

4.

ARQUITECTURA PVM

El sistema se compone de:


Demonios: pvmd
En cada computador debe ejecutarse un demonio
pvmd.
Libreras
Esta biblioteca contiene rutinas de usuario exigible
para el paso de mensajes, los procesos de desove, la
coordinacin de tareas, y la modificacin de la
mquina virtual.
EL DEMONIO
Llamado pvmd3ny, a veces abreviado
pvmd , que reside en todos los equipos
que componen la mquina virtual. (Un
ejemplo de un programa de demonio
Ing. Sistemas y Computacin

Pgina 10

Procesamiento

es el programa de correo que se ejecuta en segundo plano


y se ocupa de todo el correo electrnico entrante y saliente
en una computadora.) Pvmd3 est diseado para cualquier
usuario con vlida para acceder a este demonio se puede
instalar en una mquina. Cuando un usuario desea ejecutar
una aplicacin PVM, primero crea una mquina virtual
mediante el inicio de PVM. La aplicacin PVM puede ser
iniciado desde un sistema Unix en cualquiera de los
anfitriones. Mltiples usuarios puede configurar mquinas
virtuales superpuestas, y cada usuario puede ejecutar
simultneamente varias aplicaciones PVM.
pvmd debe estar corriendo en todas las computadoras que
constituyan la mquina virtual.
Un usuario que desea ejecutar una aplicacin PVM ejecuta
primero el demonio en una nica mquina, y ste se
encarga de activar el resto de demonios de las mquinas
que forman la PVM.
DEMONIOS: PVMD
Existe un demonio maestro.
Desde el que se inicia el sistema virtual. Consola
Este es nicamente generador de tareas y distribuidor
de datos.
Y demonios esclavos.
Iniciados por el maestro al invocar la incorporacin de
cada nueva mquina al sistema.
Estos forman una estructura o patrn de
comunicaciones en el que est basado el algoritmo
paralelo.
LIBRERIA

Ing. Sistemas y Computacin

Pgina 11

Procesamiento

Es una biblioteca de rutinas de PVM interfaz. Contiene


un repertorio funcional completa de los primitivos que son
necesarios para la cooperacin entre las tareas de una
aplicacin. Esta biblioteca contiene rutinas de usuario
exigible para el paso de mensajes, los procesos de desove,
la coordinacin de tareas, y la modificacin de la mquina
virtual.
Contiene las rutinas para operar con los procesos,
transmitir mensajes entre procesadores y alterar las
propiedades de la maquina virtual. Toda aplicacin se ha de
enlazar a la biblioteca para poderse ejecutar despus.
Tendremos tres ficheros de bibliotecas, la libpvm3.a
(biblioteca basica en C), la libgpvm3.a (biblioteca de
tratamiento de grupos) y la libfpvm3.a (biblioteca para
fortran)

Utilizada para:
Control de procesos
Crear, enviar y recibir mensajes
Informacin del sistema
Configuraciones
dinmicas
(aadir
procesadores)
Sealizacin
Mensajes de error
Empaquetar datos en mensajes
Gestionar grupos de procesos

eliminar

TAREAS
Las tareas pueden ser iniciada desde la consola o por
otras tareas.
Toda accin PVM implica una invocacin al demonio
local
Los demonios locales gestionan el control de las tareas
existentes y su localizacin .
Cada tarea tiene un identificador nico en el sistema
PVM
Ing. Sistemas y Computacin

Pgina 12

Procesamiento

Las tareas pueden


Crear/destruir otras tareas
Enviar/recibir mensajes
Ampliar/reducir el tamao del sistema virtual (n
de computadores)
Los mensajes son transmitidos entre tareas
No a travs de canales
Cada tarea tiene un identificador nico (TID)
Los mensajes son enviados y recibidos de tids
Se suministran funciones para conocer las tid de
las tareas.
Es posible crear grupos de trabajo
Asignacin de un ndice nico a cada tarea
Funciones especiales de grupo
Agregacin
Distribucin de datos limitada

5. MODELO DE TRABAJO PVM


1. Escribir uno o ms programas secuenciales que
incluyan las convenientes llamadas a librera pvm
2. Compilar cada programa para cada uno de los
computadores del sistema virtual
3. Depositar los ejecutables en una localizacin especial
de cada uno de los computadores del sistema virtual.
4. Invocar pvm. Aadir las mquinas que van a
pertenecer al sistema virtual.
5. Invocar la ejecucin del programa principal.
El la figura se muestra el modelo de computacin PVM

Ing. Sistemas y Computacin

Pgina 13

Procesamiento

En la siguiente figura vemos Una visin de arquitectura del


sistema de PVM, poniendo de relieve la heterogeneidad de
las plataformas de computacin con el apoyo de PVM

Ing. Sistemas y Computacin

Pgina 14

Procesamiento

El sistema de PVM actualmente soporta C, C + +, Fortran y


lenguas. Este conjunto de interfaces de lenguaje han sido
incluidos en base a la observacin de que la mayora
predominante de las aplicaciones de destino est escrita en
C y Fortran, con una tendencia emergente en la
experimentacin de lenguajes basados en objetos y
metodologas.

6. QU OFRECE EL PVM?
Un entorno de desarrollo
Libreras
Comunicacin
Sincronizacin
Iniciacin y finalizacin de tareas
Configuracin dinmica de la
virtual

mquina

Una mquina virtual que oculta al usuario la


heterogeneidad subyacente
Enrutamiento
Conversin de formato de datos
Basado en tipos de datos simples
Planificacin de tareas
Ing. Sistemas y Computacin

Pgina 15

Procesamiento

Caractersticas:
Pleno control de qu computadores se integran al
sistema

Herramientas de asignacin desasignacin de


computadores a la mquina virtual

Ocultamiento de la heterogeneidad de computadores.


PVM asume la conversin de tipos y formatos
entre arquitecturas diferentes.
La unidad de asignacin es el proceso.

Los procesos son distribuidos entre las mquinas


como un ente virtual de procesamiento.

Modelo de computacin: paso de mensajes

Con independencia de donde se ejecuten los


procesos, su nico medio de comunicacin es el
mensajes.

CREACIN DE PROCESOS Y
EJECUCIN
ORGANIZACIN MASTER - SLAVE.
Comenzar un nuevo proceso PVM:
nrop= pvm_spawn(*tasks, **argv, flag, *where,
ntasks, *tids)
Terminar un proceso PVM:
pvm_exit()
INFORMACIN
Conocer el ID de una tarea (proceso) PVM:
Ing. Sistemas y Computacin

Pgina 16

Procesamiento

tid = pvm_mytid()
tidp = pvm_parent()

Retorna ident. de tarea


Retorna ident. de proceso
que hizo spawn o 0.

RUTINAS DE PASAJE DE MENSAJES BSICAS


Los programas se comunican por pasaje de mensajes.
Para el envo y recepcin de mensajes cada proceso
dispone de buffers para realizar la operaciones.
ENVIAR UN MENSAJE
3 pasos:
bufid=pvm_initsend(PvmDataDefault)
Requerir un Buffer
info = pvm_pkint(int np, int nitem, 1)
Llenar el buffer
info = pvm_pkstr(char *c)
los datos
info = pvm_pkfloat(float *f, int nitem, 1)
del mensaje

con

info= pvm_send(tid, msgtag)


Enviar en mensaje

RECIBIR UN MENSAJE (1)


2 pasos:
bufid = pvm_recv(tid, msgtag) Espera y recibe un
mensaje
Ing. Sistemas y Computacin

Pgina 17

Procesamiento

Espera hasta que un mensaje con rtulo msgtag haya


arribado
desde tid.
Cuando el mensaje arriba se crea un nuevo buffer de
recepcin
donde se ubica el mensaje
/* Si msgtag es 1, recibe cualquier mensaje */
/* Si tid es 1, recibe desde cualquier fuente */

RECIBIR UN MENSAJE
info = pvm_upkint(int np, int nitem, 1)
Recuperar el mensaje
info = pvm_upkstr(char *c)
buffer
info = pvm_upkfloat(float *f, int nitem, 1)

desde el

Buffer de datos activo de recepcin puede contener


mltiples tipos de datos (entero, flotante, double, char,
byte, etc.)

RECIBIR UN MENSAJE(2)

bufid = pvm_nrecv(tid, msgtag)


una mensaje

Ing. Sistemas y Computacin

Recibe

Pgina 18

Procesamiento

Si el mensaje requerido no ha arribado desde tid entonces


retorna
bufid =0
Cuando el mensaje arriba se crea un nuevo buffer de
recepcin donde se
ubica el mensaje
/* Si msgtag es 1, recibe cualquier mensaje */
/* Si tid es 1, recibe desde cualquier fuente */

EJEMPLOS
hello.c (1)
#include <stdio.h>
#include "pvm3.h"
main()
{
int i, cc, t, tid;
char buf[100];
Ing. Sistemas y Computacin

Pgina 19

Procesamiento

printf(Soy el proceso local t%x\n", pvm_mytid());


cc = pvm_spawn("hello_other", (char**)0, 0,
"",1, &tid);
if (cc==1) {
cc = pvm_recv(-1, -1);
pvm_upkstr(buf);
printf( %s\n",buf);
} else
printf(No se puede comenzar hello_other\n);
pvm_exit();
exit(0);
}
hello_other.c (1)
#include "pvm3.h"
main()
{
int ptid;
char buf[100];
ptid = pvm_parent();
strcpy(buf, "Hola mundo!
desde ");
gethostname(buf +
strlen(buf), 64);
pvm_initsend(PvmDataDefault);
pvm_pkstr(buf);
pvm_send(ptid, 1);
pvm_exit();
exit(0);
}
hello.c (2)
#include <stdio.h>
#include "pvm3.h"
main()
{
int i, cc, t, tid;
char buf[100];
Ing. Sistemas y Computacin

Pgina 20

Procesamiento

printf(Soy el proceso local t%x\n",


pvm_mytid());
cc = pvm_spawn("hello_other", (char**)0, 0,
"",1, &tid);
if (cc==1) {
cc = pvm_recv(-1, -1);
pvm_bufinfo(cc, (int*)0, (int*)0, &t);
pvm_upkstr(buf);
printf(t%x: %s\n", t,buf);
} else
printf(No se puede comenzar
hello_other\n);
pvm_exit();
exit(0);
}
hello.c (3) completar!
#include <stdio.h>
#include "pvm3.h"
main()
{
int i, cc, t, tid[10];
char buf[100];
int ntask = 4;
printf("Yo soy el proceso t%x\n", pvm_mytid());
cc = pvm_spawn("hello_other", (char**)0, 0,
"",ntask, tid);
/////
pvm_bufinfo(cc, (int*)0, (int*)0, &t);
pvm_upkstr(buf);
printf(desde t%x: %s\n", t,buf);
////
pvm_exit(); exit(0); }
GRUPOS DINMICOS DE PROCESOS
Las tareas pueden formar grupos y subgrupos entre todos
los procesos (procesadores virtuales)
Una tarea crea o se rene a un grupo:
Ing. Sistemas y Computacin

Pgina 21

Procesamiento

name = pvm_joingroup(char *group)

name contiene la instancia dentro del grupo de tareas

P0
NAME=0

P1
NAME=1

P2
NAME=2

P3
NAME=3

P4
NAME=0

NUMPR OCESSORS=4

P0
NAME=0

P1
NAME=1

NUMPROCESSOR S=2

P2
NAME=0

P5
NAME=1

P6
NAME=2

P7
NAME=3

NUMPR OCESSORS=4

P3
NAME=1

NUMPR OCESSORS=2

P4
NAME=0

P5
NAME=1

NUMPROCESSORS=2

P6
NAME=0

P7
NAME=1

NUMPROCESSORS=2

COMUNICACIN COLECTIVA
Un mensaje puede ser distribuido a todos los miembros del
grupo excepto a si mismo
info = pvm_bcast(char *group, int msgtag)
SINCRONIZACIN

Ing. Sistemas y Computacin

Pgina 22

Procesamiento

Suponga que un grupo de procesos est computando


valores y en algn punto debe esperar hasta que todos
los procesos hayan alcanzado un punto de referencia
en sus computaciones.

El mecanismo bsico que implementa esta situacin


se denomina barrier

info = pvm_barrier(char *group, int count)

Ing. Sistemas y Computacin

Pgina 23

También podría gustarte