Curso-P Paralela. 2013– Alexis Rojas Cordero Doctorado en Ingeniería Gestión Tecnológica UNA INTRODUCCION A LA PROGRAMACIÓN PARALELA Por: Alexis Rojas Cordero UNIVERSIDAD DISTRITAL “FRANCISCO JOSE DE CALDAS” Bogotá, Sept-2 de 2013
Curso-P Paralela. 2013– Alexis Rojas Cordero 1. INTRODUCCION 2. TEMÁTICA ¿Por qué necesitamos el rendimiento cada vez mayor.? ¿Por qué estamos construyendo sistemas paralelos. ¿Por qué tenemos que escribir programas paralelos. ¿Cómo escribir programas paralelos? Lo que vamos a hacer. Concurrente, paralelo, distribuido! 3. CONCLUSIONES 3. CONCLUSIONES 4. BIBLIOGRAFIA DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero Con la llegada de los computadores multicore y las tecnologías de Cloud Computing, la computación en paralelo ha tomado relevancia. No es un área específica en el mundo de la computación, pero si es una de las mejores alternativas para lograr eficiencia, mejor uso de los recursos, ahorro de energía, bajar la temperatura, aumentar la velocidad de frecuencia de reloj, etc. DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero Anteriormente, para aumentar el rendimiento de una aplicación bastaba con moverla a una máquina con un procesador más rápido. Sin embargo hoy en día esto ya no vale, pues el rendimiento se obtiene a través de sacarle partido a más núcleos y no aumentando la velocidad. DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ PORQUE NECESITAMOS MAYOR RENDIMIENTO? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA A partir de , los microprocesadores se aceleraron como un cohete, lo que aumentó el rendimiento en un promedio del 50% anual. Después del 2002, se redujo en aproximadamente el rendimiento de los procesadores en un 20% por año. Este cambio tan dramático se asoció con el diseño de los microprocesadores.
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ PORQUE NECESITAMOS MAYOR RENDIMIENTO? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA En lugar de diseñar y construir microprocesadores más rápidos, se decidió poner varios procesadores en un solo circuito integrado.
Curso-P Paralela. 2013– Alexis Rojas Cordero AHORA LE TOCA A LOS PROGRAMADORES DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA La adición de más procesadores no ayuda mucho si los programadores no son conscientes de ellos O no saben cómo usarlos. Los programas en serie como aprendimos a desarrollarlos, no se benefician de este enfoque (en la mayoría de los casos).
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ PORQUE NECESITAMOS INCREMENTAR EL RENDIMIENTO? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA La potencia computacional va en aumento, pero también lo son nuestros problemas y necesidades de computación. Los problemas que nunca soñamos resolver con la programación en serie, han sido resueltos por las tecnologías paralelas, como la decodificación del genoma humano. Los problemas más complejos todavía están esperando a ser resueltos.
Curso-P Paralela. 2013– Alexis Rojas Cordero MODELAMIENTO DEL CLIMA DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero DESDOBLAMIENTO DE PROTEINAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA A
Curso-P Paralela. 2013– Alexis Rojas Cordero SECUENCIACION GENETICA Y DESARROLLO DE DROGAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero INVESTIGACIÓN ENERGÉTICA Y CONTAMINACIÓN INVESTIGACIÓN ENERGÉTICA Y CONTAMINACIÓN DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero ANALISIS DE DATOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿POR QUÉ ESTAMOS CONSTRUYENDO SISTEMAS PARALELOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Hasta ahora, los aumentos de rendimiento han sido atribuidos a la densidad creciente de la tecnología de los transistores. Pero existen y co-existen problemas inherentes.
Curso-P Paralela. 2013– Alexis Rojas Cordero CONCEPTOS FISICOS QUE AVALAN EL PARALELISMO DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Transistores pequeños = procesadores más rápidos. Los procesadores más veloces = mayor consumo de energía (generación hasta 2002). El aumento de consumo de energía = aumento de calor. El aumento de calor = procesadores no fiables.
Curso-P Paralela. 2013– Alexis Rojas Cordero DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Migración del hardware de un solo núcleo por hardware multi-núcleo. “core” = central processing unit (CPU) Introducing parallelism!!!
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿PORQUE NECESITAMOS ESCRIBIR PROGRAMAS PARALELOS? ¿PORQUE NECESITAMOS ESCRIBIR PROGRAMAS PARALELOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA La ejecución de varias instancias de un programa serial a menudo no es muy útil. Piense en ejecutar varias instancias de su juego favorito. Qué es lo que realmente queremos?. Que se ejecute más rápido.
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ QUE NECESITAMOS HACER ENTONCES? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Volver a escribir los programas seriales para que queden en paralelo. Escribir programas de traducción que conviertan automáticamente los programas seriales en programas paralelos. 1.Esto es muy difícil de hacer. 2.El éxito ha sido limitado.
Curso-P Paralela. 2013– Alexis Rojas Cordero MAS PROBLEMAS MAS PROBLEMAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Algunos programas seriales pueden ser reconocidos por algún conversor que los pase a programación paralela. Sin embargo, es probable que el resultado sea un programa muy ineficiente. A veces la mejor solución paralela es dar un paso atrás y diseñar un algoritmo completamente nuevo.
Curso-P Paralela. 2013– Alexis Rojas Cordero DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Calcule los valores de n números y súmelos. Solución serial.
Curso-P Paralela. 2013– Alexis Rojas Cordero EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Tenemos p núcleos, donde el numero p es mucho menor que n. (50 cores para n=5000 millones) Aproximadamente (n / p) valores Cada núcleo utiliza sus propias variables privadas y ejecuta este bloque de código independientemente de los otros núcleos.
Curso-P Paralela. 2013– Alexis Rojas Cordero EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Después cada núcleo finaliza la ejecución del código. Su variable privada my_sum contiene la suma de los valores calculados por sus llamadas a Compute_next_value. Ex, p = 8 núcleos, n = 24, entonces las llamadas a Compute_next_value, regresa los siguientes valores: 1,4,3, 9,2,8, 5,1,1, 5,2,7, 2,5,0, 4,1,8, 6,5,1, 2,3,9 En cuanto tiempo ?. En 6 veces menos que si fuera de un solo core.
Curso-P Paralela. 2013– Alexis Rojas Cordero EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Una vez que todos los núcleos realizan sus cálculos, su variable my_sum privada retorna su suma y se forma una suma global de los resultados mediante el envío a un lugar designado núcleo "maestro" que acumula las sumitas en un resultado final.
Curso-P Paralela. 2013– Alexis Rojas Cordero Por cada núcleo que no sea yo EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Core my_sum Global sum = 95 Core my_sum
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ COMO MEJORAMOS LOS ALGORITMOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA - No obligando al núcleo principal para que haga todo el trabajo. - Comparta el trabajo entre los otros núcleos. - Empareje los núcleos de manera que núcleo 0 recoja el resultado del core 1. - El Core 2 añada su resultado con el resultado núcleo 3 y así sucesivamnte.
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ COMO MEJORAMOS LOS ALGORITMOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA - Repita el proceso sólo con los núcleos uniformemente clasificados. - El resultado del Core 0, se suma el resultado acumulado en la base del Core 2. - El Core 4 añade el resultado del núcleo 6, etc. - Repita el proceso con los resultados de los núcleos divisibles por 4 y así sucesivamente, hasta que el núcleo 0 obtenga el resultado final.
Curso-P Paralela. 2013– Alexis Rojas Cordero OBTENCIÓN DE LA SUMA GLOBAL CON MULTIPLES CORES DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA
Curso-P Paralela. 2013– Alexis Rojas Cordero DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA - En el primer ejemplo (Programa en C), el núcleo maestro recibe 7 resultados y realiza 7 adiciones para la suma global. - En el segundo ejemplo, el núcleo maestro realiza 3 recibos y 3 adiciones. - La mejora es más que un factor de 2!
Curso-P Paralela. 2013– Alexis Rojas Cordero DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA - La diferencia es más dramática con un mayor número de núcleos. - Si tenemos 1000 núcleos: - En el primer ejemplo se el núcleo maestro recibe 999 resultados y hace 999 adiciones. - En el segundo ejemplo sólo se requieren 10 recibos y 10 adiciones. - Eso es una mejora de casi un factor de 100!
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿CÓMO ESCRIBIR PROGRAMAS PARALELOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Hay varias maneras, pero por ahora trataremos solo dos formas, que deben trabajar alrededor de los Cores del hardware sobre el que se va a realizar el trabajo. La maneras son. 1.peticionando tareas. 2. peticionando datos.
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿CÓMO ESCRIBIR PROGRAMAS PARALELOS? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA 1.Por paralelismo de tareas. Divide la tarea en sub-tareas y así resolver el problema con apoyo de los núcleos. 2. Por paralelismo de datos. Particionando los datos para resolver el problema con el apoyo de los núcleos. Cada núcleo lleva a cabo operaciones similares con su parte de datos.
Curso-P Paralela. 2013– Alexis Rojas Cordero ASISTENTES CLASIFICADORES DEL PROFESOR P DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Supongamos que el profesor p tiene que dictar una cátedra “literatura inglesa”. Supongamos que también tiene 100 estudiantes y llega la hora de evaluar. 15 questions 300 exams
Curso-P Paralela. 2013– Alexis Rojas Cordero ASISTENTES DEL PROFESOR P (cores) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA El profesor P cuenta además con tres asistentes
Curso-P Paralela. 2013– Alexis Rojas Cordero SOLUCIÓN POR PARALELIZACIÓN DE DATOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA TA#1 TA#2 TA#3 100 exámenes Quien será el Máster?
Curso-P Paralela. 2013– Alexis Rojas Cordero SOLUCIÓN POR PARALELIZACIÓN DE TAREAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA TA#1 TA#2 TA#3 Preguntas del Preguntas del Preguntas del
Curso-P Paralela. 2013– Alexis Rojas Cordero SOLUCIÓN POR PARALELIZACIÓN DE DATOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Por paralelización de datos usamos mismo programa en varios servidores con diferentes bloques de datos
Curso-P Paralela. 2013– Alexis Rojas Cordero SOLUCIÓN POR PARALELIZACIÓN DE TAREAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Partimos la tarea principal en sub-tareas con el mismo programa que se ejecuta en varios cores. (ejemplo generación de números primos) Tareas 1) Recibe 2) suma
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ PORQUE NECESITAMOS MAYOR RENDIMIENTO? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Los núcleos en general tienen que coordinar su trabajo. Comunicación - uno o más núcleos de enviar a sus sumas parciales actuales a otro núcleo. Balanceo de carga - comparten el trabajo en partes iguales entre los núcleos de modo que uno no esté muy recargado. Sincronización - Cada núcleo funciona a su propio ritmo. Asegúrese de que un núcleo no tome grandes ventas con respecto al resto de núcleos.
Curso-P Paralela. 2013– Alexis Rojas Cordero ¿ QUE DEBEMOS HACER ENTONCES? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA - Aprender a escribir programas que sean explícitamente paralelos. - Utilizar el lenguaje C, Fortran o Java. - Usar las diferentes extensiones de los lenguajes: 1.Mensaje-Passing Interface (MPI) 2.Hilos POSIX (Pthreads) 3.OpenMP
Curso-P Paralela. 2013– Alexis Rojas Cordero TIPOS DE SISTEMAS PARALELOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA De memoria compartida. Los núcleos pueden compartir el acceso a la memoria del ordenador. Coordinar los núcleos haciendo que examinen y actualicen las ubicaciones de memoria compartida. De memoria distribuida. Cada núcleo tiene su propia memoria. Los núcleos deben comunicar explícitamente mediante el envío de mensajes a través de una red.
Curso-P Paralela. 2013– Alexis Rojas Cordero TIPOS DE SISTEMAS PARALELOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Shared-memoryDistributed-memory
Curso-P Paralela. 2013– Alexis Rojas Cordero DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Computación concurrente – Funciona con un programa en el que múltiples tareas puede estar en progreso en cualquier instante. Computación Paralela– Funciona con un programa en el que múltiples tareas cooperan estrechamente para resolver un problema. Computación distribuida – Es un programa que tenga que cooperar con otros programas para resolver un problema.
Curso-P Paralela. 2013– Alexis Rojas Cordero Las leyes de la física nos han llevado a las puertas de la tecnología multi-núcleo. Programas seriales normalmente no se benefician de los servidores múltiples núcleos. La generación automática de programas paralelos a partir de un programa en serie no es el enfoque más eficaz para conseguir un alto rendimiento en computadoras multicore. PERSPECTIVAS DEL DESARROLLO, LA TRANSFORMACION Y LA ADAPTACION DE TECNOLOGÍA EN LA UNIVRESIDAD COLOMBIANA
Curso-P Paralela. 2013– Alexis Rojas Cordero CONCLUSIONES (CONT) Aprender a escribir programas paralelos implica aprender a coordinar los núcleos. Los programas paralelos suelen ser muy complejos y por lo tanto, se requieren técnicas de sondeo y desarrollo de programas para servidores multi-core. PERSPECTIVAS DEL DESARROLLO, LA TRANSFORMACION Y LA ADAPTACION DE TECNOLOGÍA EN LA UNIVRESIDAD COLOMBIANA
Curso-P Paralela. 2013– Alexis Rojas Cordero 4 BIBLIOGRAFIA [1] Timtthy J Rolfe. “A Specimen or parallel Programing”, Parallal Sort Implementation. ACM - Diciemre VOLUMEN 1. Nº. 4. [2 ] Peter Pacheco. An Introduction to Parallel Programing. Universidad de California. ISBN: PERSPECTIVAS DEL DESARROLLO, LA TRANSFORMACION Y LA ADAPTACION DE TECNOLOGÍA EN LA UNIVRESIDAD COLOMBIANA