Última actualización: 08/07/2020


Curso Académico: 2020/2021

Computación de Altas Prestaciones
(18644)
Titulación: Master Universitario en Ingeniería Informática (228)
Escuela de Ingeniería y Ciencias Básicas


Coordinador/a: GARCIA BLAS, FRANCISCO JAVIER

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Materias que se recomienda haber superado
Sistemas Operativos Arquitectura de Computadores
Competencias que adquiere el estudiante y resultados del aprendizaje.
COMPETENCIAS BÁSICAS - Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades - Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo. COMPETENCIAS GENERALES - Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la Ingeniería Informática. - Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la Ingeniería Informática y campos multidisciplinares afines. - Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y multidisciplinares, con la capacidad de integrar conocimientos. - Capacidad para saber comunicar (de forma oral y escrita) las conclusiones - y los conocimientos y razones últimas que las sustentan - a públicos especializados y no especializados de un modo claro y sin ambigüedades. - Capacidad para el aprendizaje continuado, autodirigido y autónomo. COMPETENCIAS ESPECIFICAS - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida. - Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
Descripción de contenidos: Programa
1. Principios de la computación de altas prestaciones. 1.1 Definición de los sistemas de altas prestaciones 1.2 Definición de clúster de cómputo 2. Diseño y análisis de aplicaciones de altas prestaciones. 2.1 Modelado de aplicaciones paralelas 2.2 Metodología de paralelización de aplicaciones 3. Paradigmas de programación paralela: paso de mensaje, memoria compartida, paralelismo de datos. 3.1 Paso de mensajes (MPI) 3.2 Programación en sistemas de memoria compartida (OpenMP) 3.3 Paralelismo en sistemas heterogéneos GPGPU (CUDA) 4. Paralelismo de datos mediante técnicas Big Data 4.1 Paradigma de programación Map-Reduce 4.2 Sistemas de almacenamiento para sistemas intensivos en datos (HDFS y HBASE) 4.3 Apache Hadoop 4.4 Apache Spark 5. Análisis del rendimiento, evaluación y optimización de aplicaciones. 5.1 Métricas de rendimiento 5.2 Ley de Amdahl
Actividades formativas, metodología a utilizar y régimen de tutorías
ACTIVIDADES FORMATIVAS Clase teórica Clases prácticas Tutorías Trabajo en grupo Trabajo individual del estudiante Exámenes parciales y finales METODOLOGÍAS DOCENTES - Exposiciones en clase del profesor con soporte de medios informáticos y audiovisuales, en las que se desarrollan los conceptos principales de la materia y se proporciona la bibliografía para complementar el aprendizaje de los alumnos. - Resolución de casos prácticos, problemas, etc.¿ planteados por el profesor de manera individual o en grupo. - Elaboración de trabajos e informes de manera individual o en grupo.
Sistema de evaluación
  • Peso porcentual del Examen Final 50
  • Peso porcentual del resto de la evaluación 50
Bibliografía básica
  • D. Kirk, W. Hwo.. Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann. 2010
  • D.E. Culler, J.P. Singh, with A. Gupta.. Parallel Computer Architectures: a Hardware/Software Approach. Morgan Kaufmann Pub. 1999
  • Holden Karau, Andy Konwinski, Patrick Wendell & Matei Zaharia. Learning Spark. O Reilly. 2015
  • Martin Odersky, Lex Spoon, Bil Venners. Programming in Scala. Artima.

El programa de la asignatura y la planificación semanal podrían sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.


Dirección web para más información: https://www.arcos.inf.uc3m.es/fjblas