XSL Content

Parallel and Distributed Systems28270

Centre
Faculty of Informatics
Degree
Grado en Inteligencia Artficial
Academic course
2024/25
Academic year
2
No. of credits
6
Languages
Spanish
Basque
Code
28270

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-based4060
Applied laboratory-based groups2030

Teaching guideToggle Navigation

Description and Contextualization of the SubjectToggle Navigation

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



La asignatura “Sistemas Paralelos y Distribuidos”, en adelante SPD, es una de las materias básicas del segundo curso del Grado en Inteligencia Artificial. Partiendo del conocimiento visto en la asignatura “Introducción a la Arquitectura de Computadores”, el objetivo de esta asignatura es profundizar en aquéllas arquitecturas paralelas más utilizadas en las aplicaciones de la inteligencia artificial.



Básicamente, la asignatura se centrará en dos tipos de sistemas: los sistemas paralelos de memoria compartida (multiprocesadores) y los sistemas basados en GPUs. En ambos casos se estudiará la arquitectura de dichos sistemas y su programación paralela, utilizando los estándares OpenMP, en el caso de los sistemas multiprocesador, y CUDA en el caso de los sistemas basados en GPUs. El enfoque de la asignatura es fundamentalmente práctico, estudiando cómo se pueden afrontar problemas del ámbito de la inteligencia artificial, por ejemplo, relacionados con el big-data, el análisis de datos (data science) o las redes profundas (deep learning), de forma eficiente utilizando los sistemas de cómputo mencionados.



Dentro del Grado en Inteligencia Artificial, la asignatura dará soporte a todas aquellas asignaturas posteriores que se centran en diferentes líneas de la Inteligencia Artificial aportando técnicas de cómputo paralelo para hacer frente de forma eficiente a la resolución de los problemas planteados.

Desde el punto de vista profesional, la asignatura aporta las competencias básicas necesarias en el área del cómputo paralelo en la Inteligencia Artificial. Una persona experta en inteligencia artificial debe ser capaz de conocer cómo resolver de forma eficiente, programando en paralelo, aquellas aplicaciones con grandes necesidades de cómputo o tiempos de respuesta críticos.

Skills/Learning outcomes of the subjectToggle Navigation

Una vez superada la asignatura, el alumnado deberá ser capaz de:

1. Comprender la arquitectura de los sistemas paralelos basados en memoria compartida y los basados en GPUs.

2. Diseñar programas paralelos sencillos, principalmente en el área de la inteligencia artificial (IA), afrontando aspectos clave como la sincronización y el reparto de carga.

3. Programar de forma paralela a nivel de thread utilizando OpenMP.

4. Utilizar las placas gráficas (GPUs) para la ejecución paralela programando en CUDA.

5. Analizar el rendimiento obtenido en la programación paralela.

6. Conocer los principales modelos de programación paralela basados en machine learning y deep learning para aplicaciones específicas de la IA.

Theoretical and practical contentToggle Navigation

0. PROGRAMACIÓN EN C



1. SISTEMAS DE ALTO RENDIMIENTO

1.1. Introducción

1.2. Clasificación de los sistemas de cómputo. Principales arquitecturas

1.3. Velocidad de cálculo. Rendimiento

1.4. Ejercicios



2. SISTEMAS PARALELOS DE MEMORIA COMPARTIDA

2.1. Características principales. Sincronización y reparto de carga

2.2. Programación en multiprocesadores: OpenMP

2.3. Ejercicios y desarrollo de una aplicación paralela



3. ARQUITECTURA Y PROGRAMACION DE GPUs

3.1. Sistemas SIMD. Arquitectura de las GPUs.

3.2. Programación en GPUs: CUDA

3.3. Ejercicios y desarrollo de una aplicación paralela



4. OTROS MODELOS DE PROGRAMACIÓN PARALELA

4.1. TensorFlow

4.2. Google TPU

4.3. Otros ejemplos de programación paralela en inteligencia artificial

MethodologyToggle Navigation

En esta asignatura se combinan diversas metodologías de enseñanza. Por una parte, se impartirán clases de exposición de los contenidos conceptuales de la materia, con participación del alumnado en debates sobre los mismos. La resolución de cuestiones y problemas en el aula se realizará de forma participativa, proponiendo problemas y ejercicios que desarrollarán individualmente o en grupo.

Por otra parte, el contenido relacionado con los aspectos de programación de sistemas paralelos se trabajará mediante prácticas de laboratorio y un proyecto final que el alumnado deberá desarrollar de forma autónoma y colaborativa.



Finalmente, en el último tema, el alumnado deberá desarrollar de forma autónoma un trabajo grupal en el área de la programación paralela en inteligencia artificial (IA). Este trabajo consistirá en la búsqueda de información, el análisis y comprensión de la misma, y la redacción de un informe que deberán presentar en público, sobre algunos de los modelos de programación emergentes en la IA.

En todo momento se potenciará el trabajo autónomo, mediante el uso de recursos informáticos y bibliográficos que ayuden al alumnado a comprender los distintos aspectos de la materia y relacionar la asignatura con otras áreas afines. Así mismo, se fomentará la formulación de cuestiones y la discusión abierta, de forma que el alumnado adquiera destrezas relacionadas con la comunicación oral, la capacidad de síntesis y el trabajo en equipo.



Para facilitar y asegurar el aprendizaje del alumnado, se hará un seguimiento tanto de las prácticas de aula como de las de ordenador. Se proporcionará feed-back en base a criterios de evaluación previamente establecidos, de manera que los y las estudiantes tengan la oportunidad de tomar conciencia de su aprendizaje.

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

En convocatoria ordinaria la asignatura tiene dos métodos de evaluación:



a. Evaluación continua.



Es el modo de evaluación predeterminado, solamente válido para la convocatoria ordinaria. Exige la participación activa y continua por parte del alumnado: asistir a las clases y los laboratorios, entregar los ejercicios y trabajos (tanto grupales como individuales), realizar las pruebas de evaluación y demás actividades planteadas. En caso de no participar en cualquiera de estas actividades, se pasará a la evaluación global. Si, aún cumpliendo las condiciones, el estudiante desea pasar a la evaluación final, deberá enviar un mensaje al profesorado de la asignatura indicándolo.



La asignatura se evaluará en base a estos elementos:

- Pruebas escritas individuales: 5 puntos (50%)

- Trabajos y ejercicios: 2 puntos (20%)

- Práctica grupal: 3 puntos (30%)



Para aprobar la asignatura, además de que la nota final sea superior a 5, habrá que obtener un mínimo de 4 puntos (sobre 10) en cada uno de los apartados de evaluación.



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 electronico, antes del último examen de la evaluación continua.



b. Evaluación final.



En caso de no optar por la evaluación continua, la evaluación será final. En este caso, la evaluación se realizará de la siguiente forma:

- Prueba escrita individual: 7 puntos (70%)

- Práctica individual: 3 puntos (30%)



Para aprobar la asignatura, además de que la nota final sea superior a 5, habrá que obtener un mínimo de 4 puntos (sobre 10) en cada uno de los apartados de evaluación.



Extraordinary Call: Orientations and DisclaimerToggle Navigation

En convocatoria extraordinaria la modalidad será evaluación global



La asignatura se evaluará en base a estos elementos:

- Prueba escrita individual: 7 puntos (70%)

- Práctica individual: 3 puntos (30%)



Para aprobar la asignatura, además de que la nota final sea superior a 5, habrá que obtener un mínimo de 4 puntos (sobre 10) en cada uno de los apartados de evaluación.

Compulsory materialsToggle Navigation

Material de eGela (apuntes, documentación para los laboratorios...)

BibliographyToggle Navigation

Basic bibliography

1. Hennessy J.L., Patterson D.A.: Computer Architecture: A Quantitative Approach. (6. ed.). Morgan Kaufmann, 2019.



2. Peter S. Pacheco .: An Introduction to Parallel Programming. Morgan Kaufmann, 2011.



3. Almeida F., Giménez D., Mantas J.M., Vidal A.M.: Introducción a la programación paralela. Paraninfo, 2008.



4. Barlas G.: Multicore and GPU programming. M. Kaufmann, 2015.



5. Alberto García García, Sergio Orts Escolano, José Celilia Canales, José García Rodriguez.: Programación de GPUs Usando Compute Unified Device Architecture (CUDA). Editorial Ra-Ma. 2020



In-depth bibliography

1. Chapman B., Jost G., van der Pas R.: Using OpenMP: portable shared memory parallel programming. The MIT Press, 2008.

2. Bertil Schmidt, Jorge González-Domínguez, Christian Hundt, Moritz Schlarb Parallel programming: concepts and practice. Ed. Morgan Kauffman. 2018.

3. David B. Kirk and Wen-mei W. Hwu.: Programming Massively Parallel Processors: A Hands-on Approach. 3rd Edition. 2017.

Web addresses

1. OpenMP: http://openmp.org

2. GPU y CUDA: http://www.nvidia.es/page/home.html
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html

3. TENSORFLOW: https://www.tensorflow.org/

4. GOOGLE TPU: https://cloud.google.com/tpu
https://cloud.google.com/tpu/docs/tpus

GroupsToggle Navigation

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

Calendar
WeeksMondayTuesdayWednesdayThursdayFriday
1-15

15:30-17:00 (1)

14:00-15:30 (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

10:30-12:00 (1)

09:00-10:30 (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