XSL Content

High-performance Processors26249

Centre
Faculty of Informatics
Degree
Bachelor's Degree in Informatics Engineering
Academic course
2024/25
Academic year
X
No. of credits
6
Languages
Spanish
Basque
Code
26249

TeachingToggle Navigation

Distribution of hours by type of teaching
Study typeHours of face-to-face teachingHours of non classroom-based work by the student
Lecture-based4040
Applied laboratory-based groups2050

Teaching guideToggle Navigation

Description and Contextualization of the SubjectToggle Navigation

PLEASE NOTE THAT THIS SUBJECT IS TAUGHT ONLY IN SPANISH/BASQUE



En anteriores asignaturas del área de Arquitectura de Computadores, hemos estudiado algunas de las principales técnicas de diseño de un procesador que permiten obtener una alta velocidad de cálculo. En esta asignatura, daremos un paso más en esa línea, y analizaremos las técnicas de segmentación avanzadas que se utilizan en los procesadores más potentes actuales. Tras ello, continuaremos en el área de los sistemas paralelos, analizando las arquitecturas de tipo MIMD y SIMD.



En el primer tema, estudiaremos la arquitectura segmentada de los procesadores avanzados multiciclo: el algoritmo de Tomasulo, los procesadores superescalares, la predicción de saltos, etc. Tras ello, estudiaremos los sistemas paralelos MIMD de memoria compartida: la coherencia de los datos, la sincronización de procesos, y las técnicas habituales de paralelización de bucles. Y en el tercer tema nos centraremos en las arquitecturas SIMD: procesamiento vectorial y procesamiento gráfico (GPU). Para el trabajo práctico usaremos OpenMP, operaciones vectoriales mediante "intrinsics" (AVX512), y CUDA. El curso se completa con la realización de una aplicación paralela para ser ejecutada en una GPU.



Tras ello, en la siguiente asignatura, Sistemas de Cómputo Paralelo, analizaremos los sistemas paralelos masivos de memoria distribuida: la red de comunicación, la coherencia de datos, y MPI, la herramienta principal para programar aplicaciones paralelas para clústeres de alto rendimiento.

Skills/Learning outcomes of the subjectToggle Navigation

Resultados del estudio de la asignatura:



1. Entender las técnicas de segmentación avanzada (modelo desorden/desorden), la arquitectura de los procesadores superescalares y la predicción dinámica de los saltos.

2. Entender las arquitecturas de tipo multithreading y multicore.

3. Comprender los problemas relativos a la coherencia de datos y a la sincronización de procesos en las máquinas de tipo MIMD de memoria compartida.

4. Entender la arquitectura de un procesador vectorial (SIMD) y utilizar las técnicas de procesamiento vectorial para generar aplicaciones vectoriales, utilizando los intrinsics AVX512.

5. Entender la arquitectura SIMD de una GPU y generar aplicaciones para la misma utilizando CUDA.

Theoretical and practical contentToggle Navigation

1. Segmentación avanzada multiciclo

1.1. Introducción.

1.2. Modelo de ejecución desorden/desorden.

1.3. Unidad de control tipo Tomasulo: estaciones de reserva.

1.4. La unidad funcional de memoria.

1.5. El búfer de reordenación; tratamiento preciso de las excepciones.

1.6. Procesadores superescalares.

1.7. Predicción dinámica de los saltos; especulación.



2. Arquitecturas MIMD: memoria compartida

2.1. Introducción. Sistemas multithreading y multicore (SMP).

2.2. Coherencia de los datos: controladores snoopy.

2.3. Sincronización de los procesos: instrucciones y procedimientos atómicos.

2.4. Paralelización de bucles: análisis de dependencias.

2.5. Laboratorio: OpenMP.



3. Arquitecturas SIMD: procesamiento vectorial y procesamiento gráfico (GPU - CUDA)

3.1. Introducción.

3.2. Arquitecturas para el procesamiento vectorial. Técnicas para generar código vectorial.

Laboratorio: código vectorial, funciones intrinsics para las instrucciones AVX512.

3.3. Procesadores gráficos. Arquitectura de una GPU.

3.4. Herramientas para la programación de GPUs: CUDA.

3.5. Modelo de programación de CUDA.

3.6. Directrices para la mejora del rendimiento.

3.7. Proyecto: paralelización de una aplicación para una GPU. Análisis del rendimiento.





MethodologyToggle Navigation

Durante el desarrollo de clases y laboratorios se llevarán a cabo, de forma sistemática, actividades de trabajo en grupo, discusión y presentación de resultados de ejercicios, con el fin de impulsar la participación directa en el desarrollo del curso y de fomentar la motivación del alumnado. Se tendrá en cuenta el uso de metodologías activas.

Assessment systemsToggle Navigation

  • Continuous Assessment System
  • Final Assessment System
  • Tools and qualification percentages:
    • Los sistemas de evaluación y sus porcentajes se especifican en los siguientes apartados (%): 100

Ordinary Call: Orientations and DisclaimerToggle Navigation

Hay dos maneras de superar la asignatura.



Evaluación continua (estudio continuo).



Es el modo por defecto de evaluación, y solo para la primera convocatoria. Implica la participación activa y continuada en las actividades del curso: asistencia a clase y laboratorios, entrega de ejercicios y trabajos, pruebas de evaluación, etc. Si no se cumple con esas condiciones, se pasará al procedimiento de evaluación global.

La asignatura se evaluará de este modo:

* 1º examen: temas 1 y 2 3 puntos

* 2º examen: temas 2 y 3 1,5 puntos

* Trabajos prácticos: temas 2 y 3 2,5 puntos

* Proyecto: tema 3 3 puntos



Para superar la asignatura, además de obtener una nota superior a 5, es necesario obtener al menos 4 puntos (sobre 10) en todas y cada una de las pruebas evaluables, es decir, ejercicios, exámenes, trabajos prácticos y proyecto.



El alumnado que, cumpliendo las condiciones para continuar en el sistema de evaluación continua, decidiese optar por la evaluación global, deberá informar al profesorado responsable de la asignatura mediante correo electrónico, durante la semana 9 del curso.





Evaluación global.



Si no es posible continuar en evaluación continua, por bajo rendimiento o por decisión propia, la evaluación de la asignatura será de tipo global, de la siguiente forma:



Examen escrito (todos los temas) 7 puntos

Trabajo práctico (CUDA) 3 puntos



También en este caso, para superar la asignatura, además de obtener una nota superior a 5, es necesario obtener al menos 4 puntos tanto en la prueba escrita como en el trabajo práctico.

Extraordinary Call: Orientations and DisclaimerToggle Navigation

La segunda convocatoria se realizará de acuerdo al procedimiento de evaluación global anteriormente descrito.

Compulsory materialsToggle Navigation

El material de uso en la asignatura, transparencias y/o lecturas está en eGela.

BibliographyToggle Navigation

Basic bibliography

Hennessy J.L., Patterson D.A. Computer architecture: a quantitative approach. (6. ed.). Morgan Kaufmann, 2017. [ Konputagailuen arkitektura. Hurbilketa kuantitatibo bat. (4 ed.). UPV/EHU, 2009. ]



Mattson Timothy G.. et al. The OpenMP Common Core: Making OpnMP Simple Again. The MIT Press, 2019



Chapman B. et al. Using OpenMP. The MIT Press, 2008



http://openmp.org/



http://software.intel.com/sites/landingpage/IntrinsicsGuide/



Kirk D.B. et al. Programming massively parallel processors. 3. ed. Elsevier, 2017.



https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html





In-depth bibliography

van der Pas, R. et al. Using OpenMP: The next step. The MIT Press, 2017.

Ortega J. et al. Arquitectura de Computadores. Thomson, 2005.

Sorin D.J. et al. A primer on memory consistency and cache coherence. Morgan & Claypool Pub., 2011.

Midkiff S.P. Automatic parallelization. An overview of fundamental compiler techniques. Morgan & Claypool Pub., 2012.

http://top500.org/



Journals

Revistas del área y sitios web de los fabricantes: IEEE Computer, IEEE Micro, BYTE, www.top500.org, https://developer.nvidia.com/cuda-zone, etc.

GroupsToggle Navigation

16 Teórico (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

14:00-15:30 (1)

15:30-17:00 (2)

Teaching staff

16 Applied laboratory-based groups-1 (Spanish - Tarde)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

17:00-18:30 (1)

Teaching staff

31 Teórico (Basque - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

09:00-10:30 (1)

10:30-12:00 (2)

Teaching staff

31 Applied laboratory-based groups-1 (Basque - Mañana)Show/hide subpages

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

12:00-13:30 (1)

Teaching staff