Você está na página 1de 1

ROPEC 2012 INTERNACIONAL

APLICACIN DE PROCESAMIENTO EN PARALELO BASADO EN OPENMP EN EL MANEJO MATRICIAL USADO EN EL ANLISIS DE SISTEMAS ELCTRICOS
Antonio Ramos Paz1, Eustaquio Garca Ramrez1, Laura Alejandrina Acosta Urzua2
1Facultad

de Ingeniera Elctrica, 2Escuela Preparatoria Melchor Ocampo, UMSNH

RESUMEN:
El modelado y anlisis de los sistemas elctricos utiliza representaciones matriciales. Una vez representados matricialmente es necesario realizar operaciones sobre estas matrices con el objeto de simular el comportamiento del mismo, sujeto a diversos escenarios de operacin, distintas configuraciones de conexin o diferentes valores de sus parmetros. Las representaciones ms precisas de los sistemas implican el uso de modelos ms rigurosos de los elementos que los conforman y por consecuencia el uso de matrices de mayores dimensiones, lo cual lleva a dos grandes retos computacionales: el almacenamiento eficiente de las matrices y el tiempo de cmputo asociado con las operaciones matriciales. En la actualidad han aparecido en el mercado computadoras con mltiples procesadores, los cuales pueden tener a su vez varios ncleos. Estas computadoras no pueden aprovechar sus potencialidades si son programadas utilizando los paradigmas tradicionales de programacin, en particular una programacin serie. En el ao 1997 aparece la plataforma operativa de procesamiento en paralelo OpenMp. OpenMp permite realizar procesamiento en paralelo de grano fino, es decir, a niveles tales como estructuras de repeticin. El presente trabajo presenta la aplicacin de OpenMp en la realizacin de operaciones con matrices de muy grandes dimensiones asociadas con el anlisis de los sistemas elctricos. En este trabajo se muestra que el uso de computadoras con mltiples ncleos junto con la programacin en OpenMp permite reducir en forma considerable el tiempo de cmputo de las operaciones matriciales usadas en el anlisis de los sistemas elctricos.

Introduccin
La simulacin de circuitos elctricos ha sido una de las tareas primordiales en el diseo y planeacin de los sistemas elctricos de potencia. Su principal aplicacin es la determinacin del comportamiento en el tiempo de los circuitos sujetos a condiciones de variacin en su entorno y bajo condiciones de variacin de sus parmetros. Una simulacin eficiente de una red elctrica, mediante la incorporacin de modelos rigurosos de los diferentes elementos que forman parte de la misma, permite predecir sus condiciones de operacin sujeta a diversos escenarios, tales como cambios en su topologa por la incorporacin de algn elemento o la remocin de alguna seccin del sistema elctrico de potencia (SEP) debido a alguna condicin de falla en el mismo. Una de las formas ms utilizadas en la representacin de los sistemas es el uso de representaciones matriciales. Un modelo riguroso de un sistema est asociado a matrices de grandes dimensiones. Una vez que el sistema ha sido representado comienza entonces el proceso de simulacin del mismo, generalmente asociado al uso de algn mtodo numrico que involucra operaciones entre las matrices que representan el sistema, tales como sumas, multiplicaciones, inversas, etc. Tradicionalmente estas operaciones son programas en lenguajes de programacin, tales como C o Fortran.

Modelado Matemtico de los Sistemas Elctricos

Procesamiento en paralelo
El procesamiento en paralelo puede ser definido como una forma de procesamiento de informacin en la cual dos o ms procesadores juntos o con algn tipo de esquema de comunicacin entre ellos, pueden cooperar para obtener la solucin de un problema [Alvarado et al. 1992].

Figura 1. Sistema Elctrico de Potencia

Figura 2. Proceso de modelado matemtico de un Sistema Elctrico

Figura 3. Elementos del Procesamiento en Paralelo

Plataformas para el Procesamiento en Paralelo


Una plataforma de computacional para el procesamiento en paralelo es un medio a travs del cual se puede realizar la programacin de un algoritmo sobre una arquitectura paralela. En la actualidad existen una gran cantidad de plataformas de procesamiento en paralelo. Entre las principales plataformas para el procesamiento en paralelo pueden mencionarse los threads [Kleiman et al. 1992], la interfaz de paso de mensajes (MPI) [Pacheco 1997], la mquina paralela virtual (PVM) [Geist et al. 1994], etc.

El Modelo de OpenMP
OpenMP permite que el flujo principal de un programa, ejecutado por un hilo maestro, pueda dividirse en mltiples hilos esclavos los cuales se ejecutan de manera simultnea. Cada uno de estos hilos realiza una serie de instrucciones las cuales tienen como objetivo resolver un problema de grandes dimensiones. La Fig. 4. muestra el modelo fork-join utilizado en el procesamiento en paralelo basado en OpenMP.

Fork

Join

Fork

Join

Figura 4. Modelo fork-join

Propuesta de Aplicacin de Procesamiento en Paralelo en el Anlisis Matricial


Una de las operaciones matriciales ms ampliamente utilizada y que conlleva un gran tiempo de cmputo es la multiplicacin matricial. En el proceso de multiplicacin de dos matrices de orden mxn, se observa que la multiplicacin matricial es un conjunto de productos puntos entre la fila i de la matriz que representa el primer factor y la columna j de la matriz que representa el segundo factor, para dar como resultado el elemento i,j de la matriz resultante. Con el objeto de reducir el tiempo de cmputo asociado a esta matriz, se propone la aplicacin de procesamiento en paralelo basado en OpenMP en su realizacin..

Caso de estudio
Con el objeto de mostrar el efecto que tiene el uso del procesamiento en paralelo en la multiplicacin matricial, se construyeron dos matrices de 1000x1000 elementos generados en forma aleatoria. A continuacin se procedi a realizar la multiplicacin de ambas matrices modificando el nmero de hilos usados en el proceso. Con el objeto de tener una medida del efecto del uso del procesamiento en paralelo, se utiliza el concepto del speed-up [Foster 1994], el cual se define como la relacin del tiempo de ejecucin con un hilo sobre el tiempo de ejecucin con n hilos. La Tabla 1 muestra el efecto del uso de 1 a 8 hilos en la multiplicacin matricial. De esta tabla puede observarse que con 8 hilos se obtiene un speed-up de 6.67, esto significa que el programa paralelo es 6.67 veces ms rpido que su contraparte secuencial. Para la realizacin del caso de estudio se utiliz una computadora modelo Intel(R) Xeon(R) CPU E5405 con dos procesadores, cada uno de ellos con cuatro ncleos con una velocidad de 2.0 GHz.
Tabla 1. Eficiencia obtenida usando de 1 a 8 hilos

La Fig. 5 muestra la programacin en lenguaje C de la multiplicacin de dos matrices de dimensiones nxn


for (i=0; i<N; i++) { for (j=0; j<N; j++) { suma = 0; for (k=0; k<N; k++) suma = suma + A[i][k]*B[k][j]; } C[i][j] = suma; }

Figura 5. Programacin secuencial en lenguaje C Figura 7. Computadora multiprocesadores

Dado que existe independencia en los productos puntos que estn asociados con esta operacin matricial, se propone que cada uno de ellos pueda ser calculado mediante el uso de un hilo. Para ello se puede hacer uso de los mecanismos que proporciona OpenMP para realizar ciclos en paralelo. En la Fig. 6 se muestra la programacin propuesta de implementacin de la multiplicacin matricial usando lenguaje C y OpenMP.
#pragma omp parallel shared(A,B,C,N) #pragma omp for for (i=0; i<N; i++) { for (j=0; j<N; j++) { suma = 0; for (k=0; k<N; k++) suma = suma + A[i][k]*B[k][j]; } C[i][j] = suma; }

Numero de Hilos speed-up 1 1.00 2 2.04 3 2.94 4 3.81 5 4.84 6 5.54 7 6.31 8 6.67

Conclusiones
Este trabajo ha presentado una justificacin para el uso de plataformas de procesamiento en paralelo, particularmente en computadoras multincleo. Se han descrito las principales caractersticas de las diversas arquitecturas computacionales para el procesamiento en paralelo, as como las principales plataformas para el uso del procesamiento en paralelo. Se han mostrado las principales caractersticas de OpenMP. Se ha aplicado OpenMP en la solucin de operaciones matriciales, particularmente la multiplicacin de matrices de muy altas dimensiones. Se observ que el uso de procesamiento en paralelo permite alcanzar un speed-up mximo cercano a 6.67 para el caso de estudio presentado en este trabajo. Se ha mostrado que a travs del uso del procesamiento en paralelo se puede tener un mayor aprovechamiento de las computadoras multincleo.

Figura 6. Programacin paralela en lenguaje C usando OpenMP

Colima, Colima, Mxico, del 7al 9 de Noviembre del 2012