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

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

Planificación de Monoprocesadores
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a los Sistemas de Bases de Datos Distribuidos
Mejoras a las Máquinas Von Neumann
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
Análisis y Diseño de Algoritmos
Programación de Computadores
Sistemas Operativos Procesos.
INTEL CONFIDENTIAL Metodología de programación paralela Intel Software College.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Procesamiento paralelo
 Fue en el año 1945 cuando el matemático Jhon Von Neumann, fascinado por las posibilidades del ENIAC, demostró que una computadora podía tener una estructura.
SOFTWARE DE PROGRAMACIÓN
SISTEMAS OPERATIVOS →¿Qué es un sistema operativo?
Material de apoyo Unidad 4 Estructura de datos
Características de un sistema operativo
LAS WEBQUEST. ¿Qué es la webquest? El creador de las WebQuest, Bernie Dodge, profesor de tecnología educativa de la San Diego State University, las define.
Planificación de Procesos
LOS SISTEMAS OPERATIVOS
Capítulo 7 Gestión de memoria.
SISTEMAS OPERATIVOS.
Metodología para solución de problemas
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Introducción a los SOs.
Sistemas Operativos Avanzados
COMPUTO III Ing. Jimmy Ojeda Arnica.
Computadoras Analógicas Computadoras Digitales
1 Ana Mercedes Cáceres Instructor: Raúl Aguilar Año 2006 [Parte I ]
Gestión del Conocimiento para Maestros de Maestros
Metodología de la programación
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Prof. Flor Narciso Departamento de Computación
Por: Ernesto Y. Soto Rivas G
Rendimiento de la CPU y sus factores
Unidad 2 – Gestión de Procesos
Lenguajes de Programación
UNIDAD 7 “OTROS PARADIGMAS DE PROGRAMACIÓN“ LI & MSC OSCAR RAMIREZ CORTÉS Universidad de la Huasteca Veracruzana.
ARQUICTECTURA DE SERVIDORES
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
TEMA II FUNDAMENTOS DEL DISENO DE COMPUTADORES
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.
Presente un cuestionario con los aspectos mas importantes sobre los
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.
UNIDAD 1. ORGANIZACIÓN BÁSICA Y DISEÑO DEL COMPUTADOR
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Paralelización de Análisis de Reglas de Asociación Andrés Villavicencio T.
Curso: Programación I Grado: 4to. Bachillerato Prof. Gerardo Barrientos.
UNIDAD I INTRODUCCION A LOS S.O.
INTEGRANTES: JOSE ESTEVEZ _HUGO ANDRADE CURSO: 5TO “B”
Objetivos del tema. Hemos visto lo que es la estructura de un programa, los datos, que esos datos en realidad se convierten en variables de distinto.
Computadoras de Alto Rendimiento (HPC)
Desarrollador Profesional de Juegos Programación III Unidad II Trabajando con bloqueo de datos.
Por: Patricio Pérez de Caso 2°A La Robótica en México.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
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,
PROCESADORES Angela Rada Yamile Rozo Daniel Roncancio Diego Martínez.
FLUJOS DE EFECTIVO.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLANTACION DE ALGORITMOS.
Transcripción de la presentación:

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