You are on page 1of 5

Programación Distribuida y Paralela

4º Ingeniería Superior en Informática Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada

Objetivos
Las necesidades de cómputo de numerosas aplicaciones obligan a desarrollar software eficiente y seguro para plataformas multiprocesador. Además, el auge de los procesadores multinúcleo y de las redes de ordenadores ha aumentado la difusión del procesamiento paralelo que cada vez está más al alcance del público en general. No obstante, para utilizar los sistemas paralelos y/o distribuidos de forma eficiente es necesaria la programación paralela. La asignatura abarca fundamentalmente las nociones básicas en la programación paralela y distribuida, centrándose en el desarrollo de software para arquitecturas como los "clusters" de ordenadores, los sistemas multinúcleo y los procesadores gráficos. Los objetivos particulares son: 1. Dotar al alumno de un conocimiento general sobre programación paralela y arquitecturas paralelas. 2. Conocer distintos modelos de programación y técnicas para el diseño evaluación e implementación de algoritmos paralelos. 3. Dotar al alumno de cierta experiencia en la resolución paralela y distribuida de problemas con objeto de mejorar las prestaciones. 4. Conocer los entornos de programación más difundidos para el desarrollo de sistemas paralelos.

Programa de teoría (con enlaces a documentación)
Tema 1: INTRODUCCIÓN A LA PROG. DISTRIBUIDA Y PARALELA (actualizada) 1.1: Motivación y aspectos de la Programación Paralela 1.2: Modelos de Arquitecturas Paralelas 1.3: Modelos de Programación Paralela. 1.4: Evaluación del rendimiento de Programas Paralelos Tema 2: METODOLOGÍA DE PROGRAMACIÓN PARALELA 2.1: Descomposición 2.2: Asignación 2.3: Estudio de casos prácticos

Resolución distribuida del problema del Viajante de Comercio  Código de partida para la práctica PRÁCTICA5 (VOLUNTARIA):INTRODUCCIÓN A LA PROGRAMACIÓN EN OpenMP .2: Programación paralela con hebras basada en directivas: OpenMP. Algoritmo de Floyd Descomposición 1D y 2D  Código de partida para la práctica PRÁCTICA 3 (VOLUNTARIA): IMPLEMENTACIÓN PARALELA DE ALGORITMOS DE MULTIPLICACIÓN DE MATRICES. Algoritmo de Cannon y de Fox con descomposición 2D PRÁCTICA 4: IMPLEMENTACIÓN PARALELA DE UN ALGORITMO DE RAMIFICACIÓN-ACOTACIÓN.3. 3.Tema 3: NOTACIONES DE PROGRAMACIÓN PARALELA 3.1: La Interfaz de Paso de Mensajes: MPI. 3. o Versión comprimida del tutorial PRÁCTICA 2: IMPLEMENTACIÓN PARALELA DE ALGORITMOS DE ANÁLISIS DE GRAFOS. Introducción a la programación de hardware gráfico paralelo:CUDA   RELACIÓN DE EJERCIOS DE LA ASIGNATURA Algunos ejercicios resueltos del Tema 1 TRABAJOS PRESENTADOS    MPI-2 Aspectos de rendimiento en OpenMP Clusters de ordenadores como plataforma de procesamiento paralelo Programa de prácticas (con enlaces a documentación) PRÁCTICA 1: INTRODUCCIÓN A LA INTERFAZ DE PASO DE MENSAJES MPI   Pasos necesarios para usar mpich en las aulas de prácticas y en ordenadores corriendo Linux Tutorial de MPI interactivo.

Se dará la posibilidad de realizar un trabajo teórico-práctico. Para superar la parte de prácticas. La superación de las prácticas 1 es obligatoria pero no contribuye a la nota de prácticas. Fechas límite de entrega de cada práctica: Obligatorias    Práctica 1: 28 Octubre 2009 Práctica 2: 2 Diciembre 2009 Práctica 4: 27 Enero 2010 . y 55% respectivamente en la nota final de prácticas. sobre algún tópico relacionado con la asignatura que el profesor estime interesante. La teoría se evaluará mediante un examen final. La calificación de la parte aprobada se guarda hasta la convocatoria de diciembre del curso siguiente.  Códigos de partida para la práctica Compilador de Intel. También se valorará la participación activa del alumno en clase a través de la realización de ejercicios y presentación de trabajos sobre los contenidos de la asignatura. Las prácticas 3 y 5 son voluntarias y permitirán al alumno subir su nota de prácticas (sobre 10) hasta 3 y 1. Licencia no comercial Normas de Evaluacion Las partes teóricas y prácticas de la asignatura se evalúan por separado y tienen el mismo peso en la nota final de la asignatura (50 %). Los trabajos se asignan antes de diciembre.5 puntos respectivamente. será necesaria la asistencia a algunas de las sesiones de prácticas dentro de los límites de entrega de cada práctica (en convocatoria extraordinaria. aunque existe la posibilidad de superarla mediante exámenes parciales eliminatorios (que se realizarán para cada tema) o realizando un trabajo. Para hacer media entre teoría y prácticas es necesario obtener al menos un 3 (sobre 10) en cada parte. Para aprobar la asignatura es necesario tener una nota media superior o igual a 5 (sobre 10). el alumno deberá entregar la documentación requerida en cada guión de prácticas de las prácticas obligatorias (tanto en convocatoria ordinaria como extraordinaria) y de las prácticas optativas que desee. La nota de cada práctica individual dependerá principalmente de la defensa que el alumno haga de su trabajo. para subir la nota final o superar temas del programa de teoría. Las prácticas 2 y 4 contribuirán con un 45%. el profesor y el alumno acordarán un encuentro para realizar la defensa de las prácticas no superadas). Las prácticas se podrán realizar por grupos de dos personas. Para que dicha documentación pueda ser evaluada.

minería de datos. Grupo 2: Miércoles de 18:00 a 20:00. Karypis G. A.). F. Gupta.). Paraninfo Cengage Learning. 2003. Ordenación. Herramientas de Análisis del rendimiento de programas paralelos (depuradores.Optativas   Práctica 3: 16 Diciembre 2009 Práctica 5: 27 Enero 2010 Temas de interés para Trabajos           Grid Computing Entornos. Calificaciones  Notas Finales de la Asignatura Bibliografía   Introduccion a la Programacion Paralela. datawarehouse. Horarios de prácticas: Aula 3. Introduction to Parallel Computing.. Jose Miguel Mantas. Cuestiones de rendimiento en OpenMP. . Intel Threading Building Blocks. Gimenez. trazadores. Benjamin/Cummings Publishing Company. Los clusters de ordenadores como plataforma de procesamiento paralelo. Almeida. Kumar. Programación paralela en sistemas heterogéneos.Grid Computing Horarios Horario de teoría: Martes de 12:00 a 14:00 en Aula 1. Open Computing Language. Vidal. Algún tópico relacionado con la asignatura que proponga el alumno.7. etc. lenguajes y herramientas para programar procesadores multinúcleo. optimización. 2008..   Grupo 1: Miércoles de 16:00 a 18:00..2. D.M. A. Algoritmos paralelos para alguna área de interés (Procesamiento de imágenes. A. Simulación. etc. V. Frameworks para programación paralela con procesadores gráficos (GPUs). Grama.

B. 1995. AddisonWesley Publishing Company. Página Oficial de MPI: Página Oficial de OpenMP NVIDIA CUDA Programming Guide . 2003. Designing and Building Parallel Programs. Multi-Core Programming Increasing Performance through Software Multithreading Shameem Akhter and Jason Roberts.       Parallel Programming. Vol II. Michael J. Intel Press 2003 Parallel Programming in C with MPI and OpenMP. Techniques and applications using networked workstations and parallel computers. Foster.. 2005. M. Quinn. Wilkinson. Prentice-Hall. Allen. McGraw-Hill. Ian.