La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Curso-P Paralela. 2013– Alexis Rojas Cordero Doctorado en Ingeniería Gestión Tecnológica UNA INTRODUCCION.

Presentaciones similares


Presentación del tema: "Curso-P Paralela. 2013– Alexis Rojas Cordero Doctorado en Ingeniería Gestión Tecnológica UNA INTRODUCCION."— Transcripción de la presentación:

1 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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

2 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coCONTENIDOCONTENIDO 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

3 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coINTRODUCCIÓNINTRODUCCIÓN 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

4 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coINTRODUCCIÓNINTRODUCCIÓN 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

5 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ PORQUE NECESITAMOS MAYOR RENDIMIENTO? DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA A partir de 1986 - 2002, 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.

6 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

7 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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).

8 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

9 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co MODELAMIENTO DEL CLIMA DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

10 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co DESDOBLAMIENTO DE PROTEINAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA A

11 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co SECUENCIACION GENETICA Y DESARROLLO DE DROGAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

12 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co INVESTIGACIÓN ENERGÉTICA Y CONTAMINACIÓN INVESTIGACIÓN ENERGÉTICA Y CONTAMINACIÓN DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

13 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ANALISIS DE DATOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

14 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿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.

15 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

16 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coSOLUCIÓNSOLUCIÓN 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!!!

17 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿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.

18 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

19 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

20 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coEJEMPLOEJEMPLO DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Calcule los valores de n números y súmelos. Solución serial.

21 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

22 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

23 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

24 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co Por cada núcleo que no sea yo EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

25 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co EJEMPLO (continuación) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Core01234567 my_sum8197157131214 Global sum 8 + 19 + 7 + 15 + 7 + 13 + 12 + 14 = 95 Core01234567 my_sum95197157131214

26 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

27 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

28 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co OBTENCIÓN DE LA SUMA GLOBAL CON MULTIPLES CORES DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA

29 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coANALISISANALISIS 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!

30 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coANALISISANALISIS 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!

31 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿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.

32 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿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.

33 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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

34 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ASISTENTES DEL PROFESOR P (cores) DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA El profesor P cuenta además con tres asistentes

35 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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?

36 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co SOLUCIÓN POR PARALELIZACIÓN DE TAREAS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA TA#1 TA#2 TA#3 Preguntas del 1 - 5 Preguntas del 6 - 10 Preguntas del 11 - 15

37 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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

38 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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

39 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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.

40 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co ¿ 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

41 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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.

42 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co TIPOS DE SISTEMAS PARALELOS DOCTORADO EN INGENIERÍA PROGRAMACIÓN PARALELA Shared-memoryDistributed-memory

43 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coTERMINOLOGIATERMINOLOGIA 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.

44 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.coCONCLUSIONESCONCLUSIONES 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

45 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 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

46 Curso-P Paralela. 2013– Alexis Rojas Cordero alrojasc@udistrital.edu.coalrojasc@udistrital.edu.co 4 BIBLIOGRAFIA [1] Timtthy J Rolfe. “A Specimen or parallel Programing”, Parallal Sort Implementation. ACM - Diciemre 2010. VOLUMEN 1. Nº. 4. [2 ] Peter Pacheco. An Introduction to Parallel Programing. Universidad de California. ISBN: 978-0-12-374260-5 PERSPECTIVAS DEL DESARROLLO, LA TRANSFORMACION Y LA ADAPTACION DE TECNOLOGÍA EN LA UNIVRESIDAD COLOMBIANA


Descargar ppt "Curso-P Paralela. 2013– Alexis Rojas Cordero Doctorado en Ingeniería Gestión Tecnológica UNA INTRODUCCION."

Presentaciones similares


Anuncios Google