1 Intro
1 Intro
1 Intro
Ayudantes:
• Daniel López - daniel.lopez1701@alumnos.ubiobio.cl
• Sebastián González - sebastian.gonzalez1801@alumnos.ubiobio.cl
• Joel Fuentes:
• PhD en Ciencias de la Computación (U. de California, Irvine 2014-2019) y Postdoc en Intel (2019-
2020)
• Área de Investigación: algoritmos de alto rendimiento, compiladores y aceleradores (GPUs, TPUs,
CPUs multi-core, etc)
• Daniel López
• Estudiante 5to año ICI
• Estudiante 1er año Magister en Ciencias de la Computación
• Sebastián González
• Estudiante 4to año ICI
Sobre el curso
• Contenidos en el contexto de
• Procesadores y aceleradores modernos
• Lenguajes de programación (Data Parallel C++, CUDA, OpenMP)
• Optimización y rendimiento
• Curso electivo teórico-práctico de quinto año, donde se estudian conceptos, estrategias de diseño,
herramientas y APIs necesarias para la creación de algoritmos en diferentes tipos de arquitecturas
heterogéneas: CPU, GPU y FPGA.
• Contribuye con las siguientes competencias al perfil de egreso:
• CE.1
• CE.2
• CE.3
• CE.4
Resultados de aprendizaje
Resultados de aprendizaje:
• RA1. Analiza las ventajas y desventajas de desarrollar algoritmos para arquitecturas heterogéneas
como CPU, GPU y FPGA.
• RA2. Determina la técnica de paralelismo más efectiva para un determinado problema, basado en su
naturaleza algorítmica, complejidad de paralelización y arquitectura computacional.
• RA3. Construye algoritmos para arquitecturas heterogéneas basado en una determinada
metodología, midiendo su eficiencia computacional.
Planificación
• Modelos de Programación
• Algoritmos
• Optimización y Rendimiento
Planificación
• Arquitecturas Heterogéneas
• 2 semanas
• Test de evaluación al final de la unidad
• Modelos de Programación
• 6 semanas
• 1 laboratorio
• Test de evaluación al final de la unidad
• Algoritmos
• 4 semanas
• 1 laboratorio
• Test de evaluación al final de la unidad
• Optimización y Rendimiento
• 3 semanas
• Test de evaluación al final de la unidad
Evaluación
• Horario
• Lunes 10:20 AM - 12:30 PM.
• Martes 4:20 - 5:50 PM.
• Plataformas online
• M. Teams
• Página web del curso
• http://www.face.ubiobio.cl/~jfuentes/classes/ch
• http://www.face.ubiobio.cl/~jfuentes/classes/hc
Bibliografía del curso
• Almeida, F., Giménez, D., Mantas, J. M., & Vidal, A. M. (2008). Introducción a la programación paralela.
Thompson Paraninfo.
• Silveira, A., Avila, R. B., Barreto, M. E., & Navaux, P. O. A. (2000). DPC++: Object-Oriented Programming Applied
to Cluster Computing. In PDPTA.
• Reinders, J., Ashbaugh, B., Brodman, J., Kinsner, M., Pennycook, J., & Tian, X. (2021). Data Parallel C++:
Mastering DPC++ for Programming of Heterogeneous Systems using C++ and SYCL (p. 548). Springer Nature.
• Fox, G. C., Williams, R. D., & Messina, G. C. (2014). Parallel computing works!. Elsevier.
• Padua, D. (Ed.). (2011). Encyclopedia of parallel computing. Springer Science & Business Media.
• Herlihy, M., Shavit, N., Luchangco, V., & Spear, M. (2020). The art of multiprocessor programming. Newnes.