Professional Documents
Culture Documents
Objetivos
Las necesidades de cmputo de numerosas aplicaciones obligan a desarrollar software eficiente y seguro para plataformas multiprocesador. Adems, el auge de los procesadores multincleo y de las redes de ordenadores ha aumentado la difusin del procesamiento paralelo que cada vez est ms al alcance del pblico en general. No obstante, para utilizar los sistemas paralelos y/o distribuidos de forma eficiente es necesaria la programacin paralela. La asignatura abarca fundamentalmente las nociones bsicas en la programacin paralela y distribuida, centrndose en el desarrollo de software para arquitecturas como los "clusters" de ordenadores, los sistemas multincleo y los procesadores grficos. Los objetivos particulares son: 1. Dotar al alumno de un conocimiento general sobre programacin paralela y arquitecturas paralelas. 2. Conocer distintos modelos de programacin y tcnicas para el diseo evaluacin e implementacin de algoritmos paralelos. 3. Dotar al alumno de cierta experiencia en la resolucin paralela y distribuida de problemas con objeto de mejorar las prestaciones. 4. Conocer los entornos de programacin ms difundidos para el desarrollo de sistemas paralelos.
Tema 3: NOTACIONES DE PROGRAMACIN PARALELA 3.1: La Interfaz de Paso de Mensajes: MPI. 3.2: Programacin paralela con hebras basada en directivas: OpenMP. 3.3. Introduccin a la programacin de hardware grfico paralelo:CUDA
TRABAJOS PRESENTADOS
MPI-2 Aspectos de rendimiento en OpenMP Clusters de ordenadores como plataforma de procesamiento paralelo
Pasos necesarios para usar mpich en las aulas de prcticas y en ordenadores corriendo Linux Tutorial de MPI interactivo. o Versin comprimida del tutorial
PRCTICA 3 (VOLUNTARIA): IMPLEMENTACIN PARALELA DE ALGORITMOS DE MULTIPLICACIN DE MATRICES. Algoritmo de Cannon y de Fox con descomposicin 2D PRCTICA 4: IMPLEMENTACIN PARALELA DE UN ALGORITMO DE RAMIFICACIN-ACOTACIN. Resolucin distribuida del problema del Viajante de Comercio
Normas de Evaluacion
Las partes tericas y prcticas de la asignatura se evalan por separado y tienen el mismo peso en la nota final de la asignatura (50 %). Para aprobar la asignatura es necesario tener una nota media superior o igual a 5 (sobre 10). Para hacer media entre teora y prcticas es necesario obtener al menos un 3 (sobre 10) en cada parte. La calificacin de la parte aprobada se guarda hasta la convocatoria de diciembre del curso siguiente. La teora se evaluar mediante un examen final, aunque existe la posibilidad de superarla mediante exmenes parciales eliminatorios (que se realizarn para cada tema) o realizando un trabajo. Se dar la posibilidad de realizar un trabajo terico-prctico, sobre algn tpico relacionado con la asignatura que el profesor estime interesante, para subir la nota final o superar temas del programa de teora. Los trabajos se asignan antes de diciembre. Tambin se valorar la participacin activa del alumno en clase a travs de la realizacin de ejercicios y presentacin de trabajos sobre los contenidos de la asignatura. Para superar la parte de prcticas, el alumno deber entregar la documentacin requerida en cada guin de prcticas de las prcticas obligatorias (tanto en convocatoria ordinaria como extraordinaria) y de las prcticas optativas que desee. Para que dicha documentacin pueda ser evaluada, ser necesaria la asistencia a algunas de las sesiones de prcticas dentro de los lmites de entrega de cada prctica (en convocatoria extraordinaria, el profesor y el alumno acordarn un encuentro para realizar la defensa de las prcticas no superadas). La nota de cada prctica individual depender principalmente de la defensa que el alumno haga de su trabajo. Las prcticas se podrn realizar por grupos de dos personas. La superacin de las prcticas 1 es obligatoria pero no contribuye a la nota de prcticas. Las prcticas 2 y 4 contribuirn con un 45%, y 55% respectivamente en la nota final de prcticas. Las prcticas 3 y 5 son voluntarias y permitirn al alumno subir su nota de prcticas (sobre 10) hasta 3 y 1.5 puntos respectivamente.
Optativas
Grid Computing Entornos, lenguajes y herramientas para programar procesadores multincleo. Frameworks para programacin paralela con procesadores grficos (GPUs). Intel Threading Building Blocks. Los clusters de ordenadores como plataforma de procesamiento paralelo. Cuestiones de rendimiento en OpenMP. Herramientas de Anlisis del rendimiento de programas paralelos (depuradores, trazadores, etc.). Programacin paralela en sistemas heterogneos. Open Computing Language. Algn tpico relacionado con la asignatura que proponga el alumno. Algoritmos paralelos para alguna rea de inters (Procesamiento de imgenes, optimizacin, Simulacin, Ordenacin, minera de datos, datawarehouse, etc.).Grid Computing
Horarios
Horario de teora: Martes de 12:00 a 14:00 en Aula 1.2. Horarios de prcticas: Aula 3.7.
Calificaciones
Bibliografa
Introduccion a la Programacion Paralela. F. Almeida, D. Gimenez, Jose Miguel Mantas, A.M. Vidal. Paraninfo Cengage Learning, 2008. Introduction to Parallel Computing. Kumar, V., Grama, A., Gupta, A., Karypis G. Benjamin/Cummings Publishing Company, 2003.
Parallel Programming. Techniques and applications using networked workstations and parallel computers. Vol II. Wilkinson, B., Allen, M. Prentice-Hall. 2005. Multi-Core Programming Increasing Performance through Software Multithreading Shameem Akhter and Jason Roberts. Intel Press 2003 Parallel Programming in C with MPI and OpenMP. Michael J. Quinn. McGraw-Hill, 2003. Designing and Building Parallel Programs. Foster, Ian. AddisonWesley Publishing Company. 1995. Pgina Oficial de MPI: Pgina Oficial de OpenMP NVIDIA CUDA Programming Guide