Tabla de Contenidos
Programación paralela y distribuida
El objetivo de la asignatura es llegar a conocer y adquirir experiencia en las principales tecnologías de desarrollo de aplicaciones paralelas y distribuidas, abarcando un rango de plataformas hardware que se extiende desde los sistemas multi-core y multi-GPUs hasta los grandes multicomputadores paralelos, incluyendo soluciones basadas en cloud computing, y afrontando problemas tanto del ámbito del HPC como de Big Data.
Alias | Plan | Curso | Tipo | Duración | Créditos |
---|---|---|---|---|---|
PPD | MUII | 3º Semes. | Opt. | Semestral | 4,5 ECTS |
Tutorías
Nombre | Despacho | L | M | X | J | V |
---|---|---|---|---|---|---|
Fernando Pérez Costoya (fperez@fi.upm.es) | 4201 | · | 9:00-10:00 | 15:00-17:00 | 14:00-16:00 | 13:00-14:00 |
María de los Santos Pérez Hernández (mperez@fi.upm.es) | 4204 | · | 10:30-12:30 | 16:00-18:00 | 16:00-18:00 | · |
Antonio García Dopico (dopico@fi.upm.es) | 4202 | · | · | · | · | · |
Noticias
- Se ha producido un error mientras se leían los datos de este feed: http://laurel.datsi.fi.upm.es/web/foro-DESCONECTADO/rss.php?f=26
Organización del curso
Normas
Aula
- El aula designada es la 6302.
Horario
- Martes de 19:00 a 21:00
- Jueves de 18:00 a 19:00
Contenidos
- Introducción. Necesidades de la computación científica Clase presentación de la asignatura Introducción HPC
- Necesidades de cómputo. Arquitecturas de altas prestaciones. Top 500. Green 500.
- Sistemas de memoria compartida.
- Sistemas de memoria distribuida, clusters y cloud.
- Coprocesadores (GPUs y MIC).
- Análisis de aplicaciones. Detección de errores y cuellos de botella (valgrind).
- Programación distribuida MPI
- Programación de sistemas de memoria distribuida: MPI. Ejemplos.
- E/S de Alto Rendimiento (Transparencias)
- Computación Intensiva de datos. Motivación.
- Sistemas de ficheros paralelos y escalables. Lustre, GPFS, PVFS, HDFS, Ceph, GlusterFS.
- Bibliotecas de E/S paralela. MPI-IO, HDF5, NetCDF.
- Programación paralela OpenMP
- Programación de sistemas de memoria compartida: OpenMP. Ejemplos.
- Entornos de programación paralela basados en modelos/paradigmas
- Reflexiones sobre la programación paralela (Transparencias).
- MapReduce:
- Propuesta Google MapReduce de Google (Artículo, Transparencias)
- Introducción a la programación MapReduce en Hadoop Guía para la programación MapReduce en Hadoop.
- Diseño de algoritmos con MapReduce "Data-Intensive Text Processing with MapReduce" de Jimmy Lin and Chris Dyers.
- Otros modelos de programación paralela basados en paradigmas (Transparencias)
- Basados en BSP y Modelos para el procesamiento de grafos (Google Pregel)
- Aceleradores
- Many Integrated Cores o Intel Xeon Phi. Descripción. Vectorización.
- Graphic Processing Unit. Introducción. Descripción de la arquitectura. Programación con Cuda.
Proyectos prácticos
Como se especifica en la normativa de la asignatura, hay tres proyectos prácticos:
- Primer proyecto práctico: Computación de alto rendimiento (plazo 5 de diciembre de 2014)
- Responsable: Antonio García Dopico
- Segundo proyecto práctico: MapReduce (plazo 15 de enero de 2016)
- Responsable: Fernando Pérez Costoya
- Tercer proyecto práctico: E/S Paralela (plazo 16 de enero de 2015)
- Responsable: María de los Santos Pérez Hernández