APLICACIÓN DE PROCESAMIENTO EN PARALELO BASADO EN OPENMP EN EL MANEJO MATRICIAL USADO EN EL ANÁLISIS DE SISTEMAS ELÉCTRICOS Antonio Ramos Paz 1, Eustaquio.

Slides:



Advertisements
Presentaciones similares
Inteligencia artificial y sus aplicaciones
Advertisements

Algoritmos y Programas
1.3. PROGRAMACION PARALELA
Lenguaje Unificado de Modelado
Funcionamiento de las redes en el campo de la frecuencia
Optimización del Factor de Potencia.
LA COMPUTADORA.
Introducción a los Algoritmos
DESARROLLO DE PROGRAMAS
Programación Paralela Dr. Mario Rossainz López FCC- BUAP
Microprocesadores.
KRIGING.
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Programación 1 Introducción
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Ingeniería de sw.
Diseño de software para la simulación y solución de redes como estrategia para dominar las materias de circuitos eléctricos” M.C. Carlos Rodríguez Pérez.
Mejoras a las Máquinas Von Neumann
M.S.C. Ivette Hernández Dávila
SISTEMAS OPERATIVOS.
Protecciones Eléctricas
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
SISTEMAS DE DISEÑO ASISTIDO POR COMPUTADORA
UPC MATRICES MA49 (EPE) Universidad Peruana de Ciencias Aplicadas
Composición Interna de un Procesador
Introducción al uso de Calculadoras en Circuitos
Programación en Matlab
Universidad de los Andes-CODENSA
Curso de Computación Científica en Clusters
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Inversa de una matriz.
PROGRAMACIÓN PROCEDIMENTAL
Modelos de transición o Modelos matriciales
Características de un sistema operativo
SEGURIDAD EN SISTEMAS DE POTENCIA
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
SISTEMAS OPERATIVOS.
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería Maestría en Ingeniería Eléctrica.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Una introducción a la computación evolutiva
006 DETERMINANTES DETERMINANTES.
Computadoras Analógicas Computadoras Digitales
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Br. José Bladimir Contreras
Rendimiento de la CPU y sus factores
Fundamentos de Sistemas Expertos
Elaboración de algoritmos usando lógica de programación
ARQUICTECTURA DE SERVIDORES
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
ORGANIZACIÓN DE SISTEMAS DIGITALES DRA. LETICIA FLORES PULIDO Dra. Leticia Flores Pulido / DCSCE / Primavera
Mónica Quintana Pineda
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
DISEÑAR Y ELABORAR ALGORITMOS NOMBRE: LAURA PAEZ GARCIA GRADO Y GRUPO: 1 “3” MATERIA: INFORMÁTICA Y COMPUTACIÓN MAESTRO: ÁNGEL BUENDÍA TURNO: VESPERTINO.
ORGANIZACIÓN DE COMPUTADORAS DRA. LETICIA FLORES PULIDO.
UNIDAD 1. ORGANIZACIÓN BÁSICA Y DISEÑO DEL COMPUTADOR
Edwin Oliveros.  El diseño de sistemas consiste en la transformación del modelo de diseño, que toma en cuenta los requerimientos no funcionales y las.
Algoritmos Programación
UNIDAD 01. EL MICROPROCESADOR
Proceso de desarrollo de Software
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Operaciones con funciones
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
 PRESENTADO POR : ANDRES MAYORGA DANIELA PAEZ VEGA.
ALGUNAS IDEAS PARA EL TRABAJO CON LAS TABLAS. 0x3= 0 1x3= 3 2x3= 6 3x3= 9 4x3=12 5x3=15 6x3=18 7x3=21 8x3=24 9x3=27 10x3=30 A partir de los datos que.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Programación I Prof. Carolina Cols. Algoritmo es una lista bien definida, ordenada y finita de operaciones que permite hallar la solución a un problema.
ALGEBRA CON VECTORES Y MATRICES Uso de MatLab.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 3 – Diseño de Programas.
Algoritmo Genético para la solución del problema SAT René Clemente Juárez Angel Felipe Lara Valladares Junio 2012.
Transcripción de la presentación:

APLICACIÓN DE PROCESAMIENTO EN PARALELO BASADO EN OPENMP EN EL MANEJO MATRICIAL USADO EN EL ANÁLISIS DE SISTEMAS ELÉCTRICOS Antonio Ramos Paz 1, Eustaquio García Ramírez 1, Laura Alejandrina Acosta Urzua 2 1 Facultad de Ingeniería Eléctrica, 2 Escuela Preparatoria Melchor Ocampo, UMSNH RESUMEN: El modelado y análisis de los sistemas eléctricos 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 operación, distintas configuraciones de conexión o diferentes valores de sus parámetros. Las representaciones más precisas de los sistemas implican el uso de modelos más 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 cómputo asociado con las operaciones matriciales. En la actualidad han aparecido en el mercado computadoras con múltiples procesadores, los cuales pueden tener a su vez varios núcleos. Estas computadoras no pueden aprovechar sus potencialidades si son programadas utilizando los paradigmas tradicionales de programación, en particular una programación serie. En el año 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 repetición. El presente trabajo presenta la aplicación de OpenMp en la realización de operaciones con matrices de muy grandes dimensiones asociadas con el análisis de los sistemas eléctricos. En este trabajo se muestra que el uso de computadoras con múltiples núcleos junto con la programación en OpenMp permite reducir en forma considerable el tiempo de cómputo de las operaciones matriciales usadas en el análisis de los sistemas eléctricos. Introducción La simulación de circuitos eléctricos ha sido una de las tareas primordiales en el diseño y planeación de los sistemas eléctricos de potencia. Su principal aplicación es la determinación del comportamiento en el tiempo de los circuitos sujetos a condiciones de variación en su entorno y bajo condiciones de variación de sus parámetros. Una simulación eficiente de una red eléctrica, mediante la incorporación de modelos rigurosos de los diferentes elementos que forman parte de la misma, permite predecir sus condiciones de operación sujeta a diversos escenarios, tales como cambios en su topología por la incorporación de algún elemento o la remoción de alguna sección del sistema eléctrico de potencia (SEP) debido a alguna condición de falla en el mismo. Una de las formas más utilizadas en la representación 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 simulación del mismo, generalmente asociado al uso de algún método numérico que involucra operaciones entre las matrices que representan el sistema, tales como sumas, multiplicaciones, inversas, etc. Tradicionalmente estas operaciones son programas en lenguajes de programación, tales como C o Fortran. Modelado Matemático de los Sistemas Eléctricos El procesamiento en paralelo puede ser definido como una forma de procesamiento de información en la cual dos o más procesadores juntos o con algún tipo de esquema de comunicación entre ellos, pueden cooperar para obtener la solución de un problema [Alvarado et al. 1992]. Propuesta de Aplicación de Procesamiento en Paralelo en el Análisis Matricial Una de las operaciones matriciales más ampliamente utilizada y que conlleva un gran tiempo de cómputo es la multiplicación matricial. En el proceso de multiplicación de dos matrices de orden mxn, se observa que la multiplicación 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 cómputo asociado a esta matriz, se propone la aplicación de procesamiento en paralelo basado en OpenMP en su realización.. Dado que existe independencia en los productos puntos que están asociados con esta operación 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 programación propuesta de implementación de la multiplicación matricial usando lenguaje C y OpenMP. Caso de estudio Procesamiento en paralelo Con el objeto de mostrar el efecto que tiene el uso del procesamiento en paralelo en la multiplicación matricial, se construyeron dos matrices de 1000x1000 elementos generados en forma aleatoria. A continuación se procedió a realizar la multiplicación de ambas matrices modificando el número 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 relación del tiempo de ejecución con un hilo sobre el tiempo de ejecución con n hilos. La Tabla 1 muestra el efecto del uso de 1 a 8 hilos en la multiplicación 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 más rápido que su contraparte secuencial. Para la realización del caso de estudio se utilizó una computadora modelo Intel(R) Xeon(R) CPU E5405 con dos procesadores, cada uno de ellos con cuatro núcleos con una velocidad de 2.0 GHz. Numero de Hilosspeed-up La Fig. 5 muestra la programación en lenguaje C de la multiplicación de dos matrices de dimensiones nxn Plataformas para el Procesamiento en Paralelo Una plataforma de computacional para el procesamiento en paralelo es un medio a través del cual se puede realizar la programación 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 máquina paralela virtual (PVM) [Geist et al. 1994], etc. OpenMP permite que el flujo principal de un programa, ejecutado por un hilo maestro, pueda dividirse en múltiples hilos esclavos los cuales se ejecutan de manera simultánea. 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. El Modelo de OpenMP Este trabajo ha presentado una justificación para el uso de plataformas de procesamiento en paralelo, particularmente en computadoras multinúcleo. Se han descrito las principales características 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 características de OpenMP. Se ha aplicado OpenMP en la solución de operaciones matriciales, particularmente la multiplicación de matrices de muy altas dimensiones. Se observó que el uso de procesamiento en paralelo permite alcanzar un speed-up máximo cercano a 6.67 para el caso de estudio presentado en este trabajo. Se ha mostrado que a través del uso del procesamiento en paralelo se puede tener un mayor aprovechamiento de las computadoras multinúcleo. Conclusiones Figura 1. Sistema Eléctrico de Potencia Figura 2. Proceso de modelado matemático de un Sistema Eléctrico Figura 3. Elementos del Procesamiento en Paralelo Figura 4. Modelo fork-join Figura 5. Programación secuencial en lenguaje C Figura 6. Programación paralela en lenguaje C usando OpenMP Figura 7. Computadora multiprocesadores Tabla 1. Eficiencia obtenida usando de 1 a 8 hilos ROPEC 2012 INTERNACIONAL Colima, Colima, México, del 7al 9 de Noviembre del 2012