Sie sind auf Seite 1von 31

Informe Laboratorio 1

Computacin Paralela (INF-762) II Semestre 2011

Alumnos:

Profesor: Fecha:

Patricia Daz Q. Juan Guerra A. Cesar Muoz B. Diego Osorio Z. Roberto Rojas M. Pablo Valds S. Oscar Magna V. 29 de diciembre del 2011

Contenidos
ndice de Ilustraciones ........................................................................................................................................ 3 ndice de Tablas .................................................................................................................................................. 3 1. 2. 3. Resumen ejecutivo .................................................................................................................................... 4 Introduccin............................................................................................................................................... 5 Objetivos .................................................................................................................................................... 6 3.1. 3.2. 4. 5. Objetivo general................................................................................................................................ 6 Objetivos especficos ........................................................................................................................ 6

Planteamiento de la problemtica ............................................................................................................ 7 Metodologa .............................................................................................................................................. 8 5.1. 5.2. Procesamiento en paralelo ............................................................................................................... 8 OpenMPI ........................................................................................................................................... 8

6.

Requerimientos fsicos............................................................................................................................... 9 6.1. 6.2. 6.3. Especificaciones del nodo maestro ................................................................................................... 9 Especificaciones de los nodos esclavos........................................................................................... 10 Especificacin del Switch ............................................................................................................. 10

7.

Habilitacin computacional de la plataforma.......................................................................................... 11 7.1. 7.2. 7.3. Instalacin del sistema operativo ................................................................................................... 11 Implementacin MPI....................................................................................................................... 13 Software de inters ......................................................................................................................... 14

8.

Enlace de estaciones y topologa de red ................................................................................................. 17 8.1. Esquema topolgico........................................................................................................................ 17

9. 10.

Pruebas de implementacin .................................................................................................................... 19 Implementacin secuencial................................................................................................................. 20 Anlisis de implementacin secuencial ...................................................................................... 20 Implementacin paralela .................................................................................................................... 23 Anlisis de implementacin paralela .......................................................................................... 23 Comparacin de resultados................................................................................................................. 26 Conclusiones........................................................................................................................................ 28 Bibliografa .......................................................................................................................................... 29 Anexo .................................................................................................................................................. 30

10.1. 11. 11.1. 12. 13. 14. 15.

Anexo 1 Serie armnica alternada en C (Forma secuencial) ..................................................................... 30 Anexo 2 - Serie armnica alternada en C (Paralelo con MPI) ...................................................................... 31

ndice de Ilustraciones
Ilustracin 1: "Notebook Aspire 4535" ............................................................................................... 9 Ilustracin 2: Switch D-Link ............................................................................................................... 10 Ilustracin 3: Muestra de ping usando nombres de nodos en vez de IPs ......................................... 12 Ilustracin 4: Contenido del archivo machinefile del cluster ............................................................ 13 Ilustracin 5: Creacin de llaves SSH................................................................................................. 14 Ilustracin 6: Copia de las llaves de SSH a los nodos remotos .......................................................... 15 Ilustracin 7: Muestra de archivo /etc/fstab con la carpeta compartida ......................................... 16 Ilustracin 8: Esquema Topolgico ................................................................................................... 17 Ilustracin 9: Descripcin Grfica ..................................................................................................... 18 Ilustracin 10: Screenshot con ping a nodos papacito y bellakito ............................................. 19 Ilustracin 11: Grfica para sumatoria calculada hasta k=6 ............................................................. 20 Ilustracin 12: Screenshot del algoritmo secuencial para 10.000.000 iteraciones .......................... 21 Ilustracin 13: Grfico del valor obtenido en el algoritmo secuencial y Valor real de ln(2) v/s cantidad de iteraciones ..................................................................................................................... 22 Ilustracin 14: Grfico de Tiempo del mejor secuencial v/s Cantidad de iteraciones ...................... 22 Ilustracin 15: Screenshot del algoritmo paralelo ejecutado en 3 y 1 nodo .................................... 23 Ilustracin 16: Grfico de Tiempo del mejor secuencial v/s Cantidad de iteraciones ...................... 25 Ilustracin 17: Grfico de Tiempo del algoritmo paralelo ejecutado en 1 y 3 nodos v/s Cantidad de iteraciones ......................................................................................................................................... 25 Ilustracin 18: Grfico de los tiempos de los casos estudiados v/s cantidad de iteraciones ........... 26

ndice de Tablas
Tabla 1: Caractersticas Notebook Aspire 4535 .................................................................................. 9 Tabla 2: Caracteristicas Nodo Esclavo Bellakito ................................................................................ 10 Tabla 3: Caracteristicas Nodo Esclavo Bellakito ................................................................................ 10 Tabla 4: Caractersticas Switch D-Link ............................................................................................... 11 Tabla 5: Resumen para el mejor algoritmo secuencial ..................................................................... 21 Tabla 6: Resumen para el algoritmo paralelo ejecutado en el nodo padre ...................................... 24 Tabla 7 - Resumen para el algoritmo paralelo ejecutado en el clster de 3 nodos .......................... 24

1. Resumen ejecutivo
En el presente documento se abordara de forma tcnica la habilitacin computacional de la plataforma paralela. Se analiza la operacin de los equipos y sus caractersticas, para trabajo en forma paralela, estableciendo con ello un clster (grupos de ordenadores conectados en red) computacional para efectos de cmputo como lo son pruebas de desempeo a travs de clculos matemticos.

El entorno utilizado para realizar esta habilitacin computacional es sobre una distribucin de Linux, el cual ofrece todas las facilidades de acceso a dispositivos y comunicacin necesarios para la ejecucin de los algoritmos paralelos. Para la implementacin de los algoritmos paralelos desarrollados hemos utilizado la interfaz MPI (MessagePassing Interface, Interfaz de Paso de Mensajes), correspondiendo a una versin de software libre, OpenMPI. Dicha interfaz es un estndar que entrega la sintaxis y la semntica de las funciones contenidas en una librera de paso de mensajes planteada para ser usada en programas que utilicen la existencia de mltiples procesadores.

En un principio se establece un marco terico general sobre el procesamiento paralelo, sobre los distintos tipos de paralelismo existentes en la actualidad, junto a esta parte se analiza la interfaz de paso de mensajes openMPI, luego se caracteriza el hardware a disponer y sus especificaciones tcnicas de mayor relevancia para el procesamiento paralelo, para as proceder a la habilitacin computacional de la plataforma junto con el sistema openMPI en cada equipo. Revisando con ello la topologa de red para la comunicacin de los equipos, estableciendo las rutas de red correspondientes, para producir las pruebas de implementacin secuencial y paralelas.

2. Introduccin
El software en la mayora de las ocasiones se ha orientado tradicionalmente hacia la computacin en serie. Por lo que en el momento de resolver una problemtica dada, se construye un algoritmo y se implementa en un flujo de instrucciones en serie con la finalidad de resolverla. Todas estas instrucciones, independiente de la cantidad que sean, son ejecutadas en la CPU de un computador normal como cualquier otro. Una vez que la instruccin se termina, se ejecuta la siguiente y as sucesivamente hasta terminar con ellas, dando as por finalizada la problemtica dada.

Pero hoy en da, las problemticas han aumentado exponencialmente, al punto de que si se resuelven a travs de algoritmos secuenciales (en serie), hacen que se utilicen excesivos tiempos en la obtencin de un resultado siendo este no siempre ptimo o real (resultado correcto), llegando en el peor de los casos a tiempos casi infinitos (solo en extremos casos).Debido a estos casos es que se ha necesitado recurrir a un procesamiento de problemticas a travs algoritmos que las resuelvan de forma paralela, esto es uniendo varios procesadores y/o computadores para lograr una posible solucin. Con esto se logra un balanceo ptimo en la carga de datos, clculos, resultados y a su vez, con el aumento de la cantidad de procesadores, se logra una disminucin, idealmente logartmica o lineal en algunos casos, en el tiempo empleado para obtener una ptima o correcta solucin.

Soluciones a estas problemticas, han variado desde tiempos remotos, desde el uso de varios procesadores y /o computadores en lnea (al mismo tiempo), creando granjas de servidores, como tambin al desarrollo de nuevas mquinas ms modernas que poseen las CPUs con tecnologa Multi-Core, logrando que cada procesador que ahora posee n-ncleos en vez de los mono-ncleo antiguos, remplacen de la misma forma a los computadores y servidores, ahorrando as espacio, recursos y energa.

En esta ocasin, se ha designado un quehacer al grupo de trabajo, cuyo objetivo es implementar y utilizar una plataforma de computacin paralela, con el fin de resolver una ecuacin matemtica de sumatoria y obtener un ptimo resultado a travs de esta metodologa en paralelo.

3. Objetivos
3.1. Objetivo general

Montar mquinas para trabajo en forma paralela, estableciendo con ello un clster computacional para efectos de cmputo como lo son pruebas de desempeo a travs de clculos matemticos, y as poder comparar el trabajo efectuado por 1 CPU y la diferencia en tiempo y rendimiento al implementar 2 o ms CPUs.

3.2.

Objetivos especficos

Estructurar el hardware y establecer su operacin basndose en las necesidades para ejecutar openMPI. Describir el comportamiento topolgico de red, para el ambiente a desarrollar el trabajo en paralelo de los equipos. Establecer los comportamientos de proceso, para un algoritmo matemtico, secuencial y en paralelo analizando los resultados obtenidos.

4. Planteamiento de la problemtica
El progreso del laboratorio intenta establecer los parmetros y la confeccin de un procesamiento computacional en paralelo. Para referenciar las caractersticas y capacidades de cmputo dentro de las plataformas existentes, en este caso en particular con la plataforma MPI, de la cual se implementar OpenMPI sobre una distribucin de Linux. Siendo necesario preparar la comunicacin de los equipos, caracterizando as estos nodos; situando el papel que desplegaran en el clster computacional, realizando las pruebas de conectividad correspondientes al caso. Para establecer la diferenciacin del comportamiento secuencial con el procesamiento en paralelo, se establecern las mtricas en la ejecucin de un algoritmo matemtico para ambos modelos, fundando las diferencias que se pueden obtener para los distintos procesamientos.

5. Metodologa
Para desarrollar y comprender la problemtica es necesario conocer algunas de las particularidades de paralelismo y funcionamiento de openMPI, es por ello que a continuacin se caracterizaran a continuacin.

5.1. Procesamiento en paralelo


El solucionar problemas computacionales con grandes proporciones de procesamiento de datos, ha sido una de las principales propulsoras para desarrollar soluciones a esta limitante, para este caso el procesamiento en paralelo consta en realizar ms de un proceso a la vez, esto implica el uso de varias CPUs procesando de forma simultnea un proceso de clculo. Dentro de la clasificacin de procesadores paralelos, es referido a multiprocesadores fuertemente acoplados (conjunto de procesadores que comparten una memoria principal comn que estn bajo el control de un mismo sistema operativo) que pueden cooperar en la ejecucin en paralelo de una tarea o un trabajo. Las caractersticas principales para el procesamiento en paralelo son que posee dos o ms procesadores de uso general similares y de capacidades comparables, todos los procesadores comparten el acceso a una memoria global (comn), los procesadores comparten el acceso a los dispositivos de entrada y salida y se establece que el procedimiento est controlado por un sistema operativo integrado que permita la interaccin entre los procesadores y sus programas en los niveles de trabajo, tarea, fichero y datos elementales.

5.2. OpenMPI
Se trata de una API (Application Programming Interface, Interfaz para Programas de Aplicacin) de cdigo abierto desarrollada para facilitar la programacin paralela y/o distribuida, la cual implementa el estndar MPI, permite la distribucin de procesos de forma dinmica, posee alto rendimiento junto con tolerancia a fallos. MPI es implementado normalmente como interfaz de comunicaciones, estndar que define la sintaxis y la semntica de las funciones contenida en una librera de paso de mensajes. No est concebido para ser una infraestructura de software aislada y autosuficiente para ser usada en procesamiento distribuido. Posee libreras y cabeceras especialmente diseadas para compilar y ejecutar, procesamientos en paralelo, caracterizando sus libreras y cabeceras con los lenguajes C, C++ y fortran entre otros. Contiene compiladores para estos lenguajes para desarrollar las aplicaciones y distribuir sus tareas en forma paralela incorporando estos procesos dentro de un ambiente de ejecucin en paralelo.

6. Requerimientos fsicos
Para un ptimo procesamiento aplicando el cmputo paralelo es necesario conocer algunas caractersticas de Hardware de los computadores a utilizar. Saber estas especificaciones es de gran utilidad para distinguir con qu tipo de procesador estamos trabajando, memoria RAM disponible, la topologa de red que se implementara, todo esto relacionado a la velocidad y dinmica del funcionamiento del clster creado. Otro factor a destacar, es la velocidad de transferencia dentro del clster. Si bien es cierto, el procesamiento en paralelo de un algoritmo, logra que los tiempos de resolucin sean menores, pero esa ganancia de tiempo tambin depende de la transmisin de informacin y a la velocidad en la que se transmite entre computadores que conforman el clster.Es fundamental que se asegure el intercambio de datos libres de errores, esto se hace aadiendo informacin adicional para deteccin y correccin de errores.

6.1.

Especificaciones del nodo maestro

Para el caso del nodo padre se dispondr de un Notebook Aspire 4535, como se puede apreciar a continuacin, con las siguientes caractersticas de hardware:

Ilustracin 1: "Notebook Aspire 4535"

Nombre del nodo: Tipo de nodo: CPU: Memoria RAM Interface de Red: Sistema Operativo:

razgriz01 Maestro AMD Turion X2/2200Mhz/64 bits 3 GB DDR2-667Mhz 10/100/1000 Gigabit Ethernet Linux Mint Debian Edition 32 bits 9

Tabla 1: Caractersticas Notebook Aspire 4535

6.2.

Especificaciones de los nodos esclavos

Para el caso de los nodos esclavo, se dispondrn de dos equipos de caractersticas similares, siendo estos equipos de escritorio, como se caracterizan a continuacin.

Nombre del nodo: Tipo de nodo: CPU: Memoria RAM Interface de Red: Sistema Operativo:

Bellakito Esclavo Intel Pentium 4/3,0 GHz/64 bits 1 GB DDR2-667Mhz 10/100Ethernet Linux Mint Debian Edition 32 bits

Tabla 2: Caracteristicas Nodo Esclavo Bellakito

Nombre del nodo: Tipo de nodo: CPU: Memoria RAM Interface de Red: Sistema Operativo:

Papacito Esclavo Intel Pentium 4/3,0 GHz/64 bits 1 GB DDR2-667Mhz 10/100 Ethernet Linux Mint Debian Edition 32 bits

Tabla 3: Caracteristicas Nodo Esclavo Bellakito

6.3.Especificacin del Switch


Para realizar la interaccin y comunicacin de los equipos se utilizara un Switch dispositivo D-Link DES-1016D, como se aprecia en la imagen a continuacin, junto con sus caractersticas.

Ilustracin 2: Switch D-Link

10

Tipo: Dimensiones: Puertas: Estandares: Tasa de Transferencia:

Buffer:

Desktop 280 mm x 180mm x 44,7 mm 16 tipo RJ-45 10/100 MBps IEEE 802.3Base-T Ethernet, IEEE 802u 100Base-TX Fast Ethernet y ANSI/IEEE 802.3 Ethernet: 10 Mbps (half-duplex) y 20 Mbps (fullduplex). Fast Ethernet: 100 Mbps (half-duplex) y 200 Mbps (full-duplex). 4 GB RAM
Tabla 4: Caractersticas Switch D-Link

7. Habilitacin computacional de la plataforma


La plataforma paralela seleccionada es OpenMPI, la cual es una implementacin del protocolo de comunicacin MPI el cual es usado para programar computadores paralelos. Esta plataforma correr sobre un clster del tipo Beowulf conformado por los equipos descritos anteriormente. Para desplegar la plataforma tipo clster es necesario instalar el sistema operativo y las aplicaciones necesarias, y los pasos necesarios para ello estn descritos a continuacin.

7.1.

Instalacin del sistema operativo

Se procede a instalar la distribucin de Linux llamada Debian en su versin estable ms reciente (6.0.3) de 32bits. Durante la instalacin se siguen las instrucciones y respetando los valores por defecto, a excepcin de la configuracin de la red la cual, en vez de usar la configuracin automtica, se configura manualmente de acuerdo a los datos proporcionados por el encargado del laboratorio. Estos datos incluyen las direcciones IP disponibles, la mscara de subred, la puerta de enlace y las direcciones DNS. Luego de configurar la red se procede con el resto de la instalacin. Cabe destacar que cada nodo debe tener un nombre de mquina distinto, pero en todos los nodos debe existir un usuario con el mismo nombre. Para este caso nosotros elegimos asdf como nombre de usuario y los nodos sern llamados papacito, bellakito y razgriz01. Una vez instalado el sistema se proceden a instalar los programas que se utilizarn para llevar a cabo las actividades de la asignatura. Entre estos programas se encuentran los siguientes: ssh, nfs. 11

Para instalarlo ssh se debe ejecutar en una terminal, como el super-usuario, el siguiente comando: # aptitude install ssh

Posteriormente se procede a editar el archivo /etc/hosts de cada mquina, en l se editar la direccin IP de cada uno de los nodos, y se agregarn tanto las direcciones como los nombres de cada uno de los nodos, de esta manera facilitaremos la interconectividad entre los nodos al solo colocar el nombre de cada uno en vez de la IP como se puede ver en la siguiente imagen.

Ilustracin 3: Muestra de ping usando nombres de nodos en vez de IPs

Luego se proceder a instalar nfs para poder tener una carpeta compartida entre los nodos. En el nodo que compartir la carpeta se debe instalar: # aptitude install nfs-kernel-server Mientras que en los dems nodos se debe instalar los siguiente: # aptitude install nfs-common

12

7.2.

Implementacin MPI

Para realizar las actividades de la asignatura elegimos la plataforma paralela OpenMPI, para lo cual procederemos a instalar los paquetes necesarios para su uso en en cada uno de los nodos. Para ello escribiremos un una terminal, como el super-usuario, el siguiente comando:
# aptitude install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev

Este comando instalar la plataforma OpenMPI tanto como las dependencias de esta. La plataforma consiste en los compiladores paralelos de distintos lenguajes (como C, C++ y Fortran) y las libreras, cabeceras y ejecutables necesarios para escribir y ejecutar programas que sean capaces de utilizar MPI para correr en paralelo. Tambin es necesario crear un archivo de texto plano, llamado machinefile o hostsfile, con los nombres de los nodos, para que as se pueda repartir la carga cuando se ejecute algn programa en paralelo.

Ilustracin 4: Contenido del archivo machinefile del cluster

13

7.3.

Software de inters

Primero configuraremos ssh para permitir la conexin de los nodos, para eso utilizamos los comandos ssh-keygen y ssh-copy-id como se muestra en las imgenes a continuacin. La finalidad de estos comandos es permitirnos poder entrar en las mquinas a travs de ssh sin necesidad de ingresar la contrasea cada ves que nos conectemos, esto es fundamental para el uso de openmpi mas adelante.

Ilustracin 5: Creacin de llaves SSH

14

Ilustracin 6: Copia de las llaves de SSH a los nodos remotos

A continuacin procederemos a configurar NFS para poder contar con una carpeta compartida entre todos los nodos del cluster. Para esto primero se debe crear la carpeta en uno de los nodos, en este caso elegimos el nodo llamado 'papacito' y crearemos la carpeta ~/clustereo, luego se edita el fichero /etc/exports en el cual se agrega la carpeta que va a ser compartida, sus propiedades, y los equipos a los cuales se va a compartir. En nuestro caso particular se agrega la siguiente lnea al archivo:

/home/asdf/clustereo

bellakito(ro,sync) razgriz01(ro,sync)

Despus de esto se correr el comando 'exportfs -ra' como super-usuario. A continuacin crearemos una carpeta en los dems nodos que actuar como punto de montaje de la carpeta compartida que por razones de simplicidad tendr el mismo nombre que la carpeta de papacito. Para esto editaremos el archivo /etc/fstab en cada uno de los dems nodos y agregaremos la informacin correspondiente a la carpeta compartida como muestra la siguiente imagen.

15

Ilustracin 7: Muestra de archivo /etc/fstab con la carpeta compartida

Montamos la carpeta con el comando 'mount -a' y con eso ya tendremos una carpeta compartida en red entre los nodos del clster. Dentro de esta carpeta se dispondrn los archivos que sea necesario compartir entre los equipos como por ejemplo el archivo machinefile mencionado anteriormente, el cdigo fuente del programa paralelo y el ejecutable de dicho programa.

16

8. Enlace de estaciones y topologa de red


Para el funcionamiento correcto del clster, es decir, la interaccin y la distribucin de carga entre los equipos, es de gran importancia establecer una arquitectura de red la cual permita que exista comunicacin. Es por ello que los equipos que se encuentran en el laboratorio de computacin paralela (llmese cables de red, switch, computadores, tarjetas de red, etc.) conforman una arquitectura que se adeca a lo que dispone dicho laboratorio. Esta arquitectura conforma principalmente una red de tipo estrella, cuyo switch est conectado a un sistema mayor conformado por una serie de switchs y hubs, por lo que tanto fsica como lgicamente representan el siguiente esquema topolgico.

8.1.

Esquema topolgico

La topologa corresponde a una red estrella a nivel fsico en la cual los tres computadores se encuentran conectados a un switch a travs de conexiones por cable RJ45 5e utilizando protocolo TCP/IP, el cual distribuye los datos no slo a los tres equipos sino que a cinco ms. Esto implica que dadas las caractersticas del cable de red, del switch y de las tarjetas de red, se espera una velocidad de transferencia mxima de 100Mbps. Sin embargo, las transferencias de paquetes pueden verse disminuidas debido a que el switch no slo estar enviando datos a los computadores del clster, sino que a otros equipos que estn conectados al conmutador. La siguiente figura muestra la red estrella del clster:

Ilustracin 8: Esquema Topolgico

17

Vale mencionar que el router se encuentra conectado a un conjunto de redes del laboratorio de informtica, el cual se conecta luego a la red de la universidad (este conjunto es denotado por Gran Sistema de Informacin UTEM) y sta es la que tiene conexin a internet. Estos datos son mencionados debido a la necesidad que hubo para los tres equipos de descargar los paquetes necesarios para la instalacin e implementacin de OpenMPI y las actualizaciones necesarias para Debian. La topologa de red lgica tambin pertenece a una red estrella, sin embargo la transmisin de datos proviene desde un principio desde el computador razgriz01, donde el programa distribuye en forma paralela la carga entre bellakito, razgriz01 y papacito. Finalmente utilizando como medio de transporte de datos el switch, bellakito y papacito le entregan como dato los resultados a razgriz01 sin interactuar entre ellos. La descripcin grfica de la red es la siguiente figura:

Ilustracin 9: Descripcin Grfica

Las especificaciones de la red estrella para 4 nodos son las siguientes: Grado nodal (d o nmero de enlace de un nodo con el resto, para este caso el mximo) y nmero de enlaces = 3 Dimetro (recorrido menor) = 2 (todos los computadores para llegar de un punto a otro basta con que sus datos pasen por el switch para llegar al otro extremo). Anchura (biseccin o nmero mnimo de enlaces) = 2 (esto implica que el nmero mnimo de enlaces van a corresponder por ejemplo al enlace entre bellakito y el switch y luego del enlace entre switch a razgriz01).

18

9. Pruebas de implementacin
Para verificar que la implementacin de la red estuviese correcta, se realizaron pruebas de envo de paquetes desde el nodo maestro a los nodos hijos y viceversa. A continuacin se observa una captura de los ping realizados desde el nodo maestro a los 2 nodos hijos:

Ilustracin 10: Screenshot con ping a nodos papacito y bellakito

Luego, para verificar que la plataforma paralela estuviese funcionando de forma correcta, se desarroll un algoritmo que soluciona una serie armnica alternada, la cual converge a , tal como se muestra a continuacin:

19

Y grficamente, como se observa a continuacin:

Ilustracin 11: Grfica para sumatoria calculada hasta k=6

Este problema matemtico de complejidad O(n) se ejecut de manera secuencial en un nodo y luego de manera paralela utilizando MPI en 1 y 3 nodos, obteniendo una importante disminucin en el tiempo de ejecucin. Los resultados sern detallados en el punto 10, 11 y 12 de este informe.

10.

Implementacin secuencial

Se implement el mejor algoritmo secuencial que consigue demostrar la convergencia de la serie con la finalidad de obtener un grupo de datos vlidos para realizar comparaciones y calcular ms tarde las mejoras de tiempo obtenidas con la solucin paralela que utiliza MPI con respecto a la secuencial. El cdigo fuente utilizado en la implementacin secuencial puede encontrarse en el Anexo 1 de este informe.

10.1. Anlisis de implementacin secuencial


Se ejecutaron 7 versiones del algoritmo secuencial, siendo la nica diferencia entre cada una de las ejecuciones, el nmero de iteraciones que se realizaban. Se comenz con 1.000, luego con 10.000, y as aumentando la cantidad de iteraciones en potencias de 10 hasta llegar a 1.000.000.000. En la siguiente imagen se observa una de las ejecuciones para 10.000.000 iteraciones:

20

Ilustracin 12: Screenshot del algoritmo secuencial para 10.000.000 iteraciones

Cabe destacar que al realizar una segunda ejecucin de cada una de las versiones de los algoritmos, el valor y error obtenidos se mantuvieron constantes; no as el tiempo. Para conseguir un tiempo promedio, se ejecut 3 veces cada una de las versiones de los algoritmos, logrando as el tiempo que aparece en la Tabla 5, la cual resume el nmero de iteraciones realizadas en cada ejecucin, el resultado obtenido para la sumatoria, el error asociado con respecto a que es el valor real al que converge la serie y por ltimo, el tiempo promedio de cada una de las versiones de los algoritmos en segundos:

Nmero de iteraciones 1.000 10.000 100.000 1.000.000 10.000.000 100.000.000 1.000.000.000

Valor obtenido del Tiempo promedio del mejor Error asociado algoritmo secuencial (en segundos) 0,692647430559823 4,99750000122E-04 0 0,693097183059959 4,9997499986E-05 0 0,693142180584982 4,999974964E-06 0,019999999552965 0,693146680560253 4,99999693E-07 0,200000002980232 0,693147130560105 4,9999840E-08 2,00999999046325 0,693147175560425 4,999521E-09 21,6000003814697 0,693147180060713 4,99232E-10 237,889999389648 Tabla 5: Resumen para el mejor algoritmo secuencial

En el siguiente grfico, se observa cmo se acerca al valor real de , representado por la lnea verde, a medida que aumentan las iteraciones. Adems, se puede notar que a partir de 1.000.000 de repeticiones, el error es despreciable si solo se consideran las 4 primeras cifras decimales.

21

Ilustracin 13: Grfico del valor obtenido en el algoritmo secuencial y Valor real de ln(2) v/s cantidad de iteraciones

En el siguiente grfico se observa que para 10.000.000 iteraciones o menos, el tiempo para el usuario es casi despreciable. Adems se observa que el tiempo posee un crecimiento directamente proporcional a la cantidad de iteraciones, esto se explica sabiendo que la complejidad del algoritmo es lineal.

Ilustracin 14: Grfico de Tiempo del mejor secuencial v/s Cantidad de iteraciones

22

11.

Implementacin paralela

El siguiente paso, fue transformar el algoritmo secuencial creado en lenguaje C a su versin paralela utilizando las funciones ofrecidas por MPI. Posteriormente, se ejecut el algoritmo paralelo en el nodo padre; y por ltimo, fue ejecutado en el nodo padre y los 2 hijos con lo que se buscaba conseguir la anhelada disminucin de tiempo de ejecucin. El cdigo fuente utilizado en la implementacin paralela puede encontrarse en el Anexo 2 de este informe.

11.1. Anlisis de implementacin paralela


Se ejecutaron 14 versiones del algoritmo paralelo; 7 en el nodo padre y 7 en todos los nodos que formaban el clster. La diferencia entre cada una de las 7 versiones, es el nmero de iteraciones que se realizaban. Se comenz con 1.000, luego con 10.000, y as aumentando la cantidad de iteraciones en potencias de 10 hasta llegar a 1.000.000.000. En la siguiente imagen se observan 2 ejecuciones con 1.000.000 iteraciones. En primer lugar para los 3 nodos que formaban el clster y en segundo lugar slo en el nodo padre:

Ilustracin 15: Screenshot del algoritmo paralelo ejecutado en 3 y 1 nodo

23

Al igual como sucedi con el algoritmo secuencial, para conseguir un tiempo promedio, se ejecut 3 veces cada una de las versiones de los algoritmos, logrando as los tiempos que aparecen en las Tablas 6 y 7, las cuales resumen tanto para la ejecucin realizada slo en el nodo padre como para la ejecucin realizada en los 3 nodos respectivamente, lo siguiente: el nmero de iteraciones realizadas en cada ejecucin, el resultado obtenido para la sumatoria, el error asociado con respecto a , el tiempo promedio de cada una de las versiones de los algoritmos en segundos:
Tiempo del algoritmo paralelo en 1 nodo (en segundos) 1.000 0,692647430559823 4,99750000122E-04 0 10.000 0,693097183059959 4,9997499986E-05 0 100.000 0,693142180584982 4,999974964E-06 0,009999999776483 1.000.000 0,693146680560253 4,99999693E-07 0,180000007152557 10.000.000 0,693147130560106 4,9999839E-08 2,22000002861022 100.000.000 0,693147175560425 4,999521E-09 22,4400005340576 1.000.000.000 0,693147180060713 4,99232E-10 267,369995117187 Tabla 6: Resumen para el algoritmo paralelo ejecutado en el nodo padre Nmero de iteraciones Valor obtenido del algoritmo Error asociado

Tiempo del algoritmo paralelo en 3 nodos (1 Error Asociado maestro + 2 esclavos) (en segundos) 1.000 0,692647430559822 4,99750000123E-04 0 10.000 0,693097183059950 4,9997499995E-05 0 100.000 0,693142180584966 4,999974980E-06 0,009999999776483 1.000.000 0,693146680560217 4,99999729E-07 0,090000003576279 10.000.000 0,693147130559891 5,0000054E-08 1,13999998569488 100.000.000 0,693147175560052 4,999894E-09 12,1999998092651 1.000.000.000 0,693147180059732 5,00214E-10 129,929992675781 Tabla 7 - Resumen para el algoritmo paralelo ejecutado en el clster de 3 nodos Nmero de iteraciones Valor obtenido del algoritmo

A partir de las tablas presentadas anteriormente, se construy el siguiente grfico, en el cual se observa claramente que no hay diferencias significativas entre los valores obtenidos para 1 y 3 nodos, pues ambas se dibujan superpuestas una sobre la otra. An as, existen diferencias entre stos valores, las cuales pueden ser encontradas a partir del doceavo decimal de los respectivos valores mostrados en las tablas precedentes.

24

Ilustracin 16: Grfico de Tiempo del mejor secuencial v/s Cantidad de iteraciones

A continuacin, en el siguiente grfico es posible observar el comportamiento de los tiempos v/s la cantidad de iteraciones, lo cual demuestra la disminucin de los tiempos al ejecutar el algoritmo paralelo en el clster v/s el algoritmo paralelo en el nodo maestro.

Ilustracin 17: Grfico de Tiempo del algoritmo paralelo ejecutado en 1 y 3 nodos v/s Cantidad de iteraciones

25

12.

Comparacin de resultados

Como se observ en el punto 10 y 11, no existen diferencias significativas en cuanto al valor obtenido para el clculo del resultado de la serie. Los 3 casos estudiados se aproximan cada vez ms al valor de a medida que se aumenta la cantidad de iteraciones; tal y como debe ser. De la misma manera, un acercamiento al valor de , implica una disminucin directamente proporcional del error. En el siguiente grfico, se observan las diferencias de tiempo existentes entre los 3 casos estudiados:

Ilustracin 18: Grfico de los tiempos de los casos estudiados v/s cantidad de iteraciones

Es necesario resaltar que el tiempo que tom la ejecucin del algoritmo paralelo en 1 nodo fue mayor que el mejor secuencial en el mismo nodo. Esto puede explicarse debido a que el cdigo paralelo posee instrucciones destinadas a la divisin del trabajo y recuperacin de la informacin desde los otros nodos y en este caso, todas las llamadas son realizadas a l mismo lo cual genera un aumento de tiempo. 26

Por otra parte, es destacable la reduccin de tiempo existente al ejecutar el algoritmo en los 3 nodos con respecto a la ejecucin en slo 1 nodo. Una relacin que nos entrega cunto ms rpido trabaj el clster es el SpeedUp, el cual se calcular a continuacin:

Se considerarn los tiempos de las versiones que realizaban es donde existe una diferencia ms notoria, por tanto:

iteraciones, pues aqu

Luego, el SpeedUp es:

Luego, el algoritmo ejecutado en los 3 nodos funciona un 83,1% ms rpido que el mejor algoritmo secuencial. Otra relacin relevante para calcular es la eficiencia del algoritmo, la cual es la medida del grado de la aceleracin alcanzada con respecto al mximo terico posible. sta, se calcular a continuacin:

Por tanto, la eficiencia del caso 3 con respecto al caso 1 es de un 0,61.

27

13.

Conclusiones

La constante necesidad de adquirir ms velocidad en el cmputo de algoritmos, ha originado la bsqueda de nuevas mejoras tanto a nivel de software como en el ms principal, a nivel de hardware. Es por esto, que las grandes compaas fabricantes de procesadores, en sus ltimas generaciones se han dedicado a la integracin de ms ncleos dentro de la misma CPU, todo esto en pos de mejorar la cantidad de recursos invertidos y usados, remplazando as la cantidad de procesadores y/o computadores trabajando en paralelo, por procesadores con multi-core donde cada core (ncleo) reemplaza de mejor manera a cada procesador y/o computador.

En esta ocasin, nuestra labor fue resolver una ecuacin matemtica en ambiente paralelo, para as estudiar su comportamiento cuando es resuelto de forma secuencial y sus diferencias al resolverlo en forma paralela.

Como se pudo apreciar, el clculo secuencial implica una inversin de tiempo. Cuando el clculo se realiza de forma paralela con 2 nodos, el tiempo tiende a disminuir levemente, pero el cambio es ms notorio cuando se implementan 2 nodos esclavos, ya que el tiempo disminuye casi a la mitad de lo empleado en forma secuencial, lo que nos indica que a medida que los nodos esclavos aumenten el tiempo de procesamiento de la ecuacin matemtica ser menor.

Cabe de destacar, que no siempre la solucin ms ptima ser implementar una mayor cantidad de nodos. Esto se debe a que el exceso de nodos esclavos, lograra en algn punto (como cantidad de nodos) que el tiempo empleado, no disminuir en comparacin a una cantidad menor, si no que ser igual o superior, debido al tiempo empleado en la distribucin de la carga, como del envo y recepcin de los datos desde el nodo maestro hacia los n-nodos esclavos.

28

14.

Bibliografa

Descarga Open MPI e informacin consultado 26 de Diciembre de 2011 (http://www.open-mpi.org) Puerta, V. R. (2003). Procesamiento paralelo en Redes Linux Utilizando MPI. (http://es.scribd.com/doc/2926380/Procesamiento-Paralelo-en-redes-linux-utilizandoMPI) Grficos y Clculos Matemticos consultado 27 de Diciembre de 2011 (http://www.wolframalpha.com/) Tutorial MPI consultado 24 de Diciembre de 2011 (http://walfredo.dsc.ufcg.edu.br/cursos/2002/parcomp20022/MPI.htm) Documentacin oficial MPI consultado 24 de Diciembre de 2011 (http://www.openmpi.org/doc/v1.4/) y (http://www.open-mpi.org/doc/v1.3/) Gua de instalacin Linux NFS consultado 24 de Diciembre de 2011 (http://nfs.sourceforge.net/nfs-howto/) Explicacin seria armnica alternada. Pgina 180 consultado 27 de Diciembre de 2011 (http://www.unizar.es/analisis_matematico/analisis1/apuntes/08-series.pdf) Documentacin oficial SSH consultado 24 de Diciembre de 2011 (http://www.openssh.com/manual.html) Corriendo aplicaciones MPI con OPEN MPI consultado 24 de Diciembre de 2011 (http://www.cs.swarthmore.edu/~newhall/unixhelp/runningOpenMPI.html)

29

15.

Anexo

Anexo 1 Serie armnica alternada en C (Forma secuencial)

Disponible en http://pastebin.com/WykpHuXK

30

Anexo 2 - Serie armnica alternada en C (Paralelo con MPI)

Disponible en http://pastebin.com/N8z9ykcg

31

Das könnte Ihnen auch gefallen