Última actualización: 19/05/2022


Curso Académico: 2022/2023

Programación de Altas Prestaciones
(16748)
Titulación: Máster Universitario en Tecnologías del Sector Financiero: FinTech (313)
Escuela de Ingeniería y Ciencias Básicas


Coordinador/a: FERNANDEZ MUÑOZ, JAVIER

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Objetivos
El objetivos de esta asignatura es introducir a los estudiantes el concepto de rendimiento comprendiendo los límites del mismo. A partir de este concepto los estudiantes aprenderán diversas técnicas para escribir programas de altas prestaciones utilizando el lenguaje C++ para ilustrarlas.
Competencias y resultados del aprendizaje
Descripción de contenidos: Programa
1. Fundamentos de la computación de altas prestaciones. 2. Lenguajes de programación y rendimiento. 3. Gestión de memoria 4. Programación genérica. 5. Bibliotecas e interoperabilidad 6. Optimización de código. 7. Análisis de rendimiento de aplicaciones 8. Programación concurrente 9. Programación paralela
Actividades formativas, metodología a utilizar y régimen de tutorías
Actividades: * Clase teóricas: Presentaciones teóricas acompañadas de material electrónico, como presentaciones digitales. * Clases teórico prácticas: Combinación de clases teóricas acompañadas de la resolución de ejercicios prácticos. * Prácticas de laboratorio: Prácticas a desarrollar en laboratorios específicos para las distintas asignaturas. * Tutorías: Tutorías de carácter presencial. * Actividades de e-learning: Foros de las asignaturas, foros de discusión y otras actividades formativas de e-learning. * Trabajo individual del estudiante: Actividades individuales del alumno que complementan al resto de actividades (tanto presenciales como no presenciales), así como la preparación de exámenes. Metodologias 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 * -Exposición y discusión en clase, bajo la moderación del profesor de temas relacionados con el contenido de la materia, así como de casos prácticos * -Elaboración de trabajos e informes de manera individual o en grupo * -Actividades específicas de e-learning, relacionadas con el carácter semi-presencial del título, incluyendo la visualización de contenidos grabados, actividades de auto-corrección, participación en foros, y cualquier otro mecanismo de enseñanza on-line En la componente práctica de esta materia se desarrollarán trabajos de mejora del rendimiento de aplicaciones que podrán incluir, entre otros, el análisis de rendimiento de aplicaciones, la identificación de problemas de rendimiento, la optimización de código, y la aplicación de técnicas de paralelización. Para estos contenidos más prácticos, se puede combinar la asistencia presencial a los laboratorios con el trabajo individual o en grupo fuera del aula a través de Aula Remota, junto con el seguimiento y tutorado de los alumnos a través de los foros y otros mecanismos de discusión. Se trabajará también con otras estrategias de e-learning, como la auto-evaluación de los trabajos realizados, todo soportado a través de Aula Global.
Sistema de evaluación
  • Peso porcentual del Examen Final 60
  • Peso porcentual del resto de la evaluación 40
Calendario de Evaluación Continua
Bibliografía básica
  • Anthony Williams. C++ Concurrency in Action. Practical Multithreading. 2nd Edition. Manning. 2019
  • Bjarne Stroustrup. Programming - Principles and Practice. 2nd Edition. Addison-Wesley. 2014
  • Michael Voss, Rafael Asenjo, James Reinders. Pro TBB: C++ Parallel Programming with Threading Building Blocks. APress. 2019
Recursos electrónicosRecursos Electrónicos *
Bibliografía complementaria
  • Bjarne Stroustrup. The C++ Programming Language. 4th Edition. Addison-Wesley. 2013
  • Bjarne Stroustrup. A Tour of C++. 2nd Edition.. Addison-Wesley. 2018
  • Gerassimos Barlas. Multicore and GPU Programming: An Integrated Approach. Morgan-Kaufmann. 2014
  • Kurt Guntheroth. Optimized C++. O'Reilly. 2016
  • Peter Gottschling. Discovering Modern C++: An intensive course for scientists, engineers and programmers. Addison-Wesley. 2015
Recursos electrónicosRecursos Electrónicos *
(*) El acceso a algunos recursos electrónicos puede estar restringido a los miembros de la comunidad universitaria mediante su validación en campus global. Si esta fuera de la Universidad, establezca una VPN


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