Ruta de navegación

Contenido de XSL

Sistemas Paralelos y Distribuidos28270

Centro
Facultad de Informática
Titulación
Grado en Inteligencia Artificial
Curso académico
2023/24
Curso
2
Nº Créditos
6
Idiomas
Castellano
Euskera
Código
28270

DocenciaAlternar navegación

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4060
P. Laboratorio2030

Guía docenteAlternar navegación

Descripción y Contextualización de la AsignaturaAlternar navegación

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.

Competencias/ Resultados de aprendizaje de la asignaturaAlternar navegación

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.

Contenidos teórico-prácticosAlternar navegación

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

MetodologíaAlternar navegación

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.

Sistemas de evaluaciónAlternar navegación

  • Sistema de Evaluación Continua
  • Sistema de Evaluación Final
  • Herramientas y porcentajes de calificación:
    • Los porcentajes y tipos de evaluación se especifican en los apartados posteriores (%): 100

Convocatoria Ordinaria: Orientaciones y RenunciaAlternar navegación

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.



Convocatoria Extraordinaria: Orientaciones y RenunciaAlternar navegación

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.

Materiales de uso obligatorioAlternar navegación

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

BibliografíaAlternar navegación

Bibliografía básica

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



Bibliografía de profundización

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.

Direcciones web

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

GruposAlternar navegación

01 Teórico (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

09:00-10:30 (1)

10:30-12:00 (2)

Profesorado

01 P. Laboratorio-1 (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

12:00-13:30 (1)

Profesorado

46 Teórico (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

14:00-15:30 (1)

15:30-17:00 (2)

Profesorado

46 P. Laboratorio-1 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

17:00-18:30 (1)

Profesorado