-
Tipo
Cursos
-
Modalidad
Presencial
-
Duración / Créditos
30 h.
-
Fechas
Matric. Permanente
-
Sedes
Valencia
Información general
DESCRIPCIÓN:
ASPECTOS A TENER EN CUENTA
¿A quién va dirigido?
El alumno debería ingresar al módulo con los siguientes conocimientos:
Sentirse cómodo programando en C++, así como con algún entorno de programación o compilador (Visual Studio, gcc, clang).
Conocimientos de programación orientada a objetos y de estructuras de datos.
TEMARIO
El temario consta de dos partes, la primera se centrará en la programación de aplicación en CPU, donde se estudiará el diseño e implementación de estructuras de datos y algoritmos concurrentes haciendo uso de la librería estándar de C++11, dando ejemplos de soluciones reales integradas y en producción. La segunda parte se centrará en el desarrollo de aplicaciones de computación paralela en GPU (tarjeta gráficas) mediante el uso de CUDA y OpenCL y como poder intercambiar datos con OpenGL.
Programa completo (30 horas)
- Introducción a la programación y computación paralela
Introducción, Conceptos básicos, Técnicas de programación concurrente, Repaso de las tecnologías de computación paralela (TBB, MPI, CUDA, OpenCL, C++11 API).
- Programación multihilo en C++11 / C++14
Introducción (repaso) a la programación segura en C++ (RAII idiom), introducción (repaso) de C++11/C++14 (shared_ptr, unique_ptr, lambda functions, move constructor and assignation operator) e introducción a la API de multithreading de C++11 (thread, mutex, async, lock_guard, atomic, etc…).
- Programación de estructuras de datos concurrentes en C++11
Programación de algunas estructuras de datos básicas para aprovechar la concurrencia en CPU con C++: threadsafe_stack, threadsafe_queue, threadsafe_lookup_table, threadsafe_list.
- Diseño de código concurrente
Estrategia y analítica, técnicas para dividir los datos entre los hilos, factores que afectan al rendimiento del código concurrente y diseño adecuado de las estructuras de datos e implementación de código multithreading seguro (exception safety).
- Programación de algoritmos concurrentes en C++11
Implementación concurrente de algunos algortimos comunes de C++ (for_each, find).
- Introducción a la programación en GPU
Arquitectura de los modelos de Ejecución de CUDA y OpenCL.
- Introducción y desarrollo de aplicaciones con CUDA
Lenguaje CUDA, Compilador NVCC + GCC, API de Driver vs API de Runtime, Fat Binaries.
- Introducción y desarrollo de applicaciones con OpenCL
Consulta de dispositivos OpenCL, OpenCL Language, Ejecución de un programa OpenCL.
- Interoperabilidad CUDA / OpenCL con OpenGL
API de interoperabilidad con OpenGL de CUDA y OpenCL.
TE RECOMENDAMOS VER TAMBIÉN
UBICACIONES DE NUESTRAS SEDES
-
Valencia
Calle Viciana 5 · 46003 Valencia