journal.gif (7158 bytes)

 

Implementando Redes para Computación Paralela
en PVM bajo Entorno RedHat Linux


Anterior artículoContenidoSiguiente artículo

Tomislav Drpic - Adán Jiménez

Unidad de Computación Paralela
Departamento de Ingeniería de Sistemas
Universidad del Valle

Resumen - Con el presente trabajo se pretende introducir al lector a la implementación de redes que permitan obtener soluciones basadas en procesamiento paralelo a problemas que requieren múltiples iteraciones o que son sensibles en cuanto a tiempos de ejecución y que, por sus requerimientos, no podrían ser ejecutados adecuadamente con los recursos de un solo computador. Para dicha implementación se usó el conjunto de librerías para programación en lenguaje C llamadas PVM (Parallel Virtual Machine) bajo sistema operativo Linux RedHat versión 7.2. Para ello, tras realizar la instalación de las herramientas necesarias, se procedió a la configuración del entorno operativo y la red misma, para que luego, usando la implementación de un algoritmo de prueba, pudiese validarse a la red paralela y comparar estos resultados con los alcanzados con soluciones seriales.

INTRODUCCIÓN

La aplicación de soluciones computarizadas ha permitido que las diversas ciencias hayan progresado de manera acelerada al poder realizar procesos y cálculos de manera mucho más rápida y eliminando los posibles errores debido a fallas humanas.

Sin embargo, el uso de una computadora tropieza con problemas cuando sus recursos resultan insuficientes para la dimensión del problema a tratar; esto ocurre en casos en los que la múltiples iteraciones hacen que la ejecución del procesos se ralentice demasiado por carecer el computador utilizado de recursos suficientes; éste problema se hace más delicado cuando el proceso tratado es sensible al tiempo de ejecución, como es el caso de programas de simulación o cálculos matemáticos.

El procesamiento en paralelo constituye la solución a éste tipo de problemas, puesto que permite la ejecución de un mismo problema en múltiples computadores; esto se logra al dividir el programa global en pequeños programas que pueden ser ejecutados al mismo tiempo por diferentes computadores pero de manera coordinada de manera tal que al juntar los resultados individuales de cada pequeño programa se obtenga la solución global al problema; todo ello en un tiempo de ejecución mucho menor.

Existen múltiples herramientas que permiten soluciones en paralelo, en el caso específico de éste proyecto se usó PVM (Parallel Virtual Machine) que es un conjunto de librerías para el lenguaje de programación C y Fortran que permiten el intercambio de información y la creación y control de subprocesos.

Este proyecto, por tanto, pretende introducir al lector al manejo de múltiples computadores bajo éste entorno.

OBJETIVOS

Objetivo General

Como objetivo principal de éste proyecto se tiene:

Lograr la implementación de una red para computación paralela utilizando las librerías PVM para entorno operativo Linux RedHat en su versión 7.2.

Objetivos Específicos
PROCEDIMIENTO

Al ser PVM un sistema de paralelización basado en el paso de mensajes, se debe configurar la red y modificar las directivas de seguridad del sistema operativo correspondientes para la ejecución remota de programas.

Se debe tener especial cuidado con las directivas de seguridad aplicadas si los equipos que componen la red están conectados a internet.

Dentro de la configuración del sistema operativo, se deben realizar los siguientes cambios:

Se debe incluir los nombres de todos los equipos y direcciones IP que componen la red. La sintaxis es la siguiente:
(dirección IP) (nombre del equipo) (alias 1) (alias 2)

Es necesario incluir los servicios rsh, rlogin y rexec como confiados por el computador. Al final del archivo, incluir rsh, rlogin y rexec.

- El valor de la entrada disabled debe cambiar 'no' (por defecto está en 'yes')
- Si desea limitar el acceso al servicio según dirección IP, puede utilizar las directivas 'only_from' y 'no_access'.

Estas modificaciones deben ser realizadas para cada uno de los archivos y posteriormente se debe reiniciar el servicio xinetd (ejecutar 'service xinetd restart').

Para la ejecuación de PVM, la variable de entorno PVM_ROOT debe estar definida. Para tal efecto incluir las siguientes líneas en el mencionado archivo:
PVM_ROOT=/usr/share/pvm3
export PVM_ROOT

En este archivo, se establece una relación de confianza entre el equipo remoto el y usuario actual. La sintaxis del archivo es:
(nombre del maestro) (nombre de usuario local)


PVM y su interacción con el usuario es hecho para su manejo desde consola dentro de Linux, pero, sin embargo, existe una versión de éste sistema que permite tener una interfase gráfica dentro del entorno Xwindows de Linux llamada XPVM que debe ser instalada como una herramienta adicional.

XPVM permite adicionar o quitar computadores de nuestra red, además de que posee utilidades gráficas para el monitoreo del rendimiento y trabajo en cada uno de los computadores, además de observar el intercambio de mensajes existentes.

Presentamos en la Figura 1 una de las pantallas representando una red de computadoras ejecutando un proceso en paralelo y siendo monitoreadas desde XPVM.

Una vez hechas todas las modificaciones para permitir a las computadoras compartir la información pasamos a la configuración de la red adicionando cada uno de los equipos que la formarán.
Para ello se ejecuta desde la consola: 'pvm'.

Una vez hecho eso se debe añadir a las demás máquinas de la red con la linea de comandos: 'add (nombre del equipo)';si en su lugar deseamos quitar a uno de los equipos miembros de la red lo hacemos con la siguiente linea de comandos desde PVM:'delete (nombre del equipo)'. Otro comando que puede resultar de ayuda es: 'conf', que permite ver los equipos miembros al momento de la red para procesamiento paralelo.

Dentro de la prueba realizada para validar el funcionamiento de la red usamos el algoritmo de cálculo de PI por aproximaciones sucesivas; por supuesto éste algoritmo está orientado en su concepción al entorno paralelo. Es necesario que cada computador miembro de la red posea el código del proceso a ejecutar y que posea la configuración antes mencionada para hacer posible el intercambio de mensajes y datos entre computadores.

El algoritmo se basa en:

Un proceso padre, que se encarga de: crear procesos hijos, distribuir los parámetros iniciales entre ellos, coordinar la interacción entre procesos, recolectar y desplegar los resultados.


Figura 1: Pantalla de interfase de XPVM

Múltiples procesos hijos que realizan el cálculo en si y pasan los resultados al proceso padre.

CONCLUSIONES

Tras seguir los pasos descritos en la sección anterior se puede arribar a las siguientes conclusiones:
Es posible la solución de un problema en forma paralela, es decir, por varios computadores al mismo tiempo.

La solución de un problema en paralelo permite alcanzar tiempos de ejecución mucho menores, en una escala, no lineal, relacionada al número de computadores miembros de la red.

La decisión del uso de una red de computadores para la implementación de la paralelización como una opción ante un problema dependerá de varios aspectos:

En primer lugar dependerá del problema que estamos tratando, y de si es verdaderamente necesario o útil la aplicación de un algoritmo paralelo.

Hacia Arriba