Escolar Documentos
Profissional Documentos
Cultura Documentos
Jorge G. HOYOS
Facultad de ingeniería de sistemas Universidad Santo Tomás
Tunja, Boyacá Colombia
Alex PUERTAS
Facultad de ingeniería de sistemas Universidad Santo Tomás
Tunja, Boyacá Colombia
142
Memorias de la Séptima Conferencia Iberoamericana de Complejidad, Informática y Cibernética (CICIC 2017)
Esta conexión se realizó a través del puerto USB de entrada del Figura 3: Detalle de la conexión al servidor VNC
multiplicador. Es de notar que al usar estos dispositivos como
fuente de poder, debieron retirarse sus reguladores de amperaje,
dado que estos limitan la salida de cada uno de sus puertos a
0.5A, lo cual resulta siendo insuficiente para los requerimientos
mínimos de funcionamiento del dispositivo incluyendo sus
periféricos vía USB(1.5A)[1]. Para la implementación final se
armaron las carcasas de los multiplicadores de tal suerte que
puedan usarse de forma independiente, dejando uno de ellos
como encendido general de la fuente.
143
Memorias de la Séptima Conferencia Iberoamericana de Complejidad, Informática y Cibernética (CICIC 2017)
desarrollados y es un módulo de Python, directamente asociado IP de los equipos de procesamiento del clúster, y que fue usado
a MPICH [5]. como parámetro para la ejecución del programa en paralelo.
Es de notar que para la instalación de MPI4PY se obtuvo el Figura 7: Detalle del archivo nodos en pi01
archivo mediante wget
https://bitbucket.org/mpi4py/mpi4py/downloads/mpi4py-
1.3.1.tar.gz Este archivo se descomprimió, y a través del
comando Python setup.py build se construyó la aplicación, para
ser utilizada dentro del clúster.
144
Memorias de la Séptima Conferencia Iberoamericana de Complejidad, Informática y Cibernética (CICIC 2017)
3. IMPLEMENTACIÓN DEL PROGRAMA En segundo lugar, la función lambda interna, tomaba dos
FUNCIONAL parámetros de funcionamiento, notados por (x,y) en el código.
Con ello la función usaba los valores que estaban en las dos
Diseño de la aplicación: Para probar los parámetros de primeras posiciones del rango, en este caso uno (1) y dos (2) para
programación funcional se usó Python como lenguaje de ejecutar alguna operación con ellos. Ahora bien, reduce, le
aplicación, dado que cuenta con funciones lambda permite a Python aplicar una función dada a cada par de
implementadas dentro del mismo. En cuanto al algoritmo elementos de una lista, de tal suerte que se puedan simplificar en
matemático, se seleccionó el del factorial de un número. Así que, un solo dato [9], así pues el producto de estos números, notado
de forma general se desarrolló un programa, denominado fac.py por x*y en el programa, se transformaba en la siguiente x de la
que realizara este cálculo, como se muestra a continuación: operación del factorial, la cual se multiplicaba por el valor tres
(3) que se encontraba en la tercera posición de la lista. Este
Figura 10: programa para cálculo del factorial del número 33 proceso se repetía, de forma recursiva hasta llegar al final de la
usando Python lista, obteniendo así el factorial de un número dado.
145
Memorias de la Séptima Conferencia Iberoamericana de Complejidad, Informática y Cibernética (CICIC 2017)
En esta prueba se tuvieron en cuenta dos aspectos fundamentales: Figura 16: Ejecución de proceso en el clúster para cinco
En primer lugar se ejecutó el programa utilizando MPI en un solo procesos
nodo del clúster, implementando de 1 a 8 procesos en la máquina
seleccionada en 10 ejecuciones diferentes para cada uno. Al final
de cada intento se registró el tiempo de duración y se realizó el
promedio de las 10 iteraciones, con el fin de obtener la media de
los datos obtenidos, los cuales fueron tomados como información
de control en este ejercicio. En segundo lugar se desarrolló esta
misma medición usando ahora los cuatro nodos componentes del
clúster, y se realizaron las comparaciones contra los datos de base
teniendo como variables de medición: El tiempo de ejecución del
programa, la cantidad de procesos paralelos y el número de Fuente: los autores
dispositivos físicos utilizados para esta tarea.
La figura16, muestra el comando de ejecución del programa para
Ejecución para un solo nodo: la ejecución del programa se cinco procesos y sus correspondientes imágenes en cada uno de
desarrolló mediante el comando mpiexec en la terminal de Linux los nodos del clúster. Al finalizar la ejecución, los resultados del
sobre la Raspberry. Es de notar que debido al diseño del clúster, procesamiento de cada una de las máquinas fueron condensados
todas estas pruebas aplicaron desde la pi01 como puede en una sola respuesta en pi01.
observarse a continuación:
Figura 17: Respuesta de la aplicación para 7 procesos en
Figura 14: Detalle de la ejecución del programa paralelizado en paralelo
pi01
146
Memorias de la Séptima Conferencia Iberoamericana de Complejidad, Informática y Cibernética (CICIC 2017)
Figura 19: Cantidad de procesos en los nodos del clúster Sin embargo también cabe anotar que los datos obtenidos están
sujetos también a las colas de procesos de cada uno de los nodos
y a las condiciones de temperatura y manejo general de los
mismos.
6. REFERENCIAS
5. CONCLUSIONES
147