Competencias del título |
Código
|
Competencias del título
|
A4 |
Conocer la estructura, organización, funcionamiento e interconexión de los sistemas informáticos (computador, sistemas operativos y redes de computadores). |
A5 |
Comprender y aplicar los principios y técnicas básicas de la programación paralela y distribuida para el desarrollo y ejecución eficiente de las técnicas de inteligencia artificial. |
A6 |
Capacidade para realizar a análise, deseño, implementación de aplicacións que requiran traballar con grandes volumes de datos e na nube de forma eficiente. |
B2 |
Que el alumnado sepa aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posea las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio. |
B5 |
Que el alumnado haya desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía. |
B7 |
Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. |
B10 |
Capacidad para concebir nuevos sistemas computacionales y/o evaluar el rendimiento de sistemas existentes, que integren modelos y técnicas de inteligencia artificial. |
C3 |
Capacidad para crear nuevos modelos y soluciones de forma autónoma y creativa, adaptándose a nuevas situaciones. Iniciativa y espíritu emprendedor. |
Resultados de aprendizaje |
Resultados de aprendizaje |
Competencias del título |
Comprender la interrelación entre el software del sistema operativo y el hardware sobre el que se ejecuta. |
A4 A6
|
B10
|
|
Conocer los diferentes modelos de sistemas paralelos y su programación |
A5
|
B7 B10
|
|
Tener la capacidad para desarrollar códigos que aprovechen de forma óptima los recursos hardware disponibles en el computador. |
A4 A5 A6
|
B2 B7
|
|
Ser capaz de desarrollar códigos que se ejecuten en sistemas paralelos de memoria concurrente, compartida y distribuida, así como en aceleradores hardware |
A4 A6
|
B2 B7
|
C3
|
Comprender la importancia del desarrollo, análisis y optimización de los códigos paralelos en el contexto de la Inteligencia Artificial. |
|
B5 B10
|
C3
|
Contenidos |
Tema |
Subtema |
Tema 1 - Introducción y conceptos previos |
* Programa secuencial y Proceso
* Anatomía y ciclo de vida de un proceso
* Hilos
* Programa paralelo
* Utilidades del paralelismo |
Tema 2 - Paralelismo en Hardware, jerarquía de paralelismo |
* Niveles de paralelismo
* Paralelismo interno del procesador (escondido)
* Funcionalidades del procesador (paralelismo bajo nivel)
* Recursos accesibles del procesador (paralelismo alto nivel)
* Conjunto de máquinas (Cluster y Supercomputador)
* Redes distribuidas de Computación
* Dispositivos específicos
* Estado del arte de los procesadores |
Tema 3 - Paralelismo en Software, diseño e implementación |
* Clasificación del paralelismo (Taxonomía de Flynn)
* Lenguajes y frameworks de paralelismo
* Conceptos clave
* Paradigmas del procesamiento paralelo
* Análisis de programas paralelos
* Diseño de programas paralelos |
Tema 4 - Paralelismo para la Intelixencia Artificial |
* Paralelismo en aplicaciones de IA
* Procesamiento masivo y distribuido de datos
* Procesamiento de datos en GPU
|
Planificación |
Metodologías / pruebas |
Competéncias |
Horas presenciales |
Horas no presenciales / trabajo autónomo |
Horas totales |
Sesión magistral |
A4 A5 B5 B10 C3 |
30 |
20 |
50 |
Prácticas de laboratorio |
A5 A6 B2 B5 B7 B10 |
30 |
50 |
80 |
Prueba objetiva |
A4 B2 B5 B7 B10 C3 |
3 |
11 |
14 |
|
Atención personalizada |
|
6 |
0 |
6 |
|
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos |
Metodologías |
Metodologías |
Descripción |
Sesión magistral |
* Las clases de sesión magistral introducirán la base teórica sobre la cual se basarán las prácticas que el alumnado realizará posteriormente, intentando en todo momento señalar esta conexión.
* De igual forma, las sesiones magistrales explicarán y detallarán otros conceptos importantes relacionados con el paralelismo en general, ya sean previos o fundamentales a fin de entender el funcionamiento de las tecnologías usadas en las sesiones de prácticas, o bien más avanzados y que explican su uso y papel crítico en procesos relevantes para la sociedad.
________________________________________________________________________________ |
Prácticas de laboratorio |
* Cada práctica será brevemente explicada por el profesor en una sesión de prácticas, donde además el alumnado iniciará su realización.
* Las prácticas de laboratorio serán autocontenidas y estarán enfocadas a escenarios muy concretos o a la resolución de problemas muy comunes, todo mediante el uso de técnicas, paradigmas y tecnologías previamente explicadas en las sesiones magistrales.
* Cada práctica, que puede ocupar una o varias sesiones, se centrará en un problema para el cual el alumno dispondrá de una explicación previa, un código ya proporcionado a utilizar y una serie de preguntas sobre las cuales tendrá que desarrollar la práctica en su trabajo en clase y autónomo. Las preguntas pueden pedir realizar una extensión o modificación del código, hacer un estudio empírico del rendimiento de este con distintas configuraciones de paralelismo, describir su funcionamiento o comportamiento, u otras preguntas enfocadas en general a que el alumno comprenda el problema y la solución de paralelismo aplicada.
________________________________________________________________________________ |
Prueba objetiva |
* Al final del cuatrimestre se realizará un examen de evaluación de toda la asignatura, donde se incluirán principalmente preguntas de desarrollo de los conceptos y materia en general explicada en las sesiones magistrales.
* De igual forma también se pueden incluir en menor medida preguntas breves específicamente enfocadas a evaluar la adquisición de los conocimientos clave de las prácticas de laboratorio. |
Atención personalizada |
Metodologías
|
Sesión magistral |
Prácticas de laboratorio |
|
Descripción |
* La atención personalizada se destinará para el apoyo de forma general al alumnado a lo largo de la asignatura y se extenderá sobre todo el temario que se exponga en esta.
* Por un lado dicha atención estará disponible para la comprensión/ampliación de conceptos explicados en las sesiones magistrales de teoría, a fin de que ninguna alumna o alumno tenga dificultades en la adquisición del conocimiento más teórico y que será sujeto de evaluación en la prueba final. Esto es especialmente importante en las fases tempranas de aquel temario que sea incremental, o en los momentos de 'cambio' de temario.
* Y por otro lado la atención personalizada también estará disponible al alumnado que requiera una atención más específica para la resolución de incidentes o dudas originadas en las prácticas de laboratorio, ya sean problemas técnicos para realizar dichas prácticas, como dificultades para comprender algún concepto clave de ellas. Esta atención estará disponible a lo largo de todo el curso, aunque se recomienda dirigir cualquier duda de una práctica a lo largo de la duración de esta o pocos días después de su finalización.
____________________________________________________________________________
El alumnado con dispensa académica pueden pedir, mediante atención personalizada, una explicación de una práctica en las mismas condiciones que en las sesiones de prácticas. |
|
Evaluación |
Metodologías
|
Competéncias |
Descripción
|
Calificación
|
Prácticas de laboratorio |
A5 A6 B2 B5 B7 B10 |
* Todas las prácticas serán sujetas a evaluación por parte del profesor. La evaluación puede ser individual mediante un cuestionario, o grupal mediante una entrega. Los grupos serán previamente formados y se mantendrán durante todo el curso.
* La evaluación de las prácticas se realizarán en fechas previamente anunciadas, hasta las cuales se espera que el alumnado finalice la práctica en su tiempo de trabajo autónomo asociado.
________________________________________________________________________ |
50 |
Prueba objetiva |
A4 B2 B5 B7 B10 C3 |
* Examen escrito realizado al final del cuatrimestre de forma individual.
* Se evaluarán principalmente conceptos teóricos explicados en las sesiones magistrales.
* En menor medida también se incluirán preguntas sobre conceptos clave de las sesiones prácticas. |
50 |
|
Observaciones evaluación |
- Para aprobar la asignatura será necesario obtener:
- un mínimo del 40% de la nota máxima de la prueba objetiva (2 puntos de 5).
- un mínimo del 40% de la nota máxima en la parte práctica (2 puntos de 5).
- La nota de prácticas NO ES RECUPERABLE para la segunda oportunidad.
- Los alumnos con matrícula a tiempo parcial podrán asistir (previo aviso) a un grupo de prácticas distinto al que tengan asignado.
- Los alumnos con matrícula a tiempo parcial o que dispongan de dispensa académica podrán realizar su entrega en un plazo más tardío, o en el caso de que se evalúe una práctica mediante cuestionario, podrán preacordar con el profesor una fecha distinta si es necesario.
- A fin de cumplir con la legislación actual en materia de igualdad, se aplicarán 2 medidas:
- Los grupos de trabajo formados buscarán ser paritarios.
- La evaluación de los cuestionarios de prácticas entregados inidvidualmente, así como de la prueba objetiva final, serán corregidos con un método ciego que garantiza la anonimicidad del alumno.
|
Fuentes de información |
Básica
|
------------------------ (Tema 1). ------------------------.
------------------------ (Tema 2). ------------------------ .
------------------------ (Tema 3). ------------------------ .
------------------------ (Tema 4). ------------------------ .
Julio Ortega Lopera (2005). Arquitectura de computadores . Madrid : Thomson
David A. Patterson (2014). Computer organization and design: the hardware/software interface . Waltham, MA : Morgan Kaufmann
Sarah L. Harris (2021). Digital design and computer architecture . Amsterdam : Elsevier, Morgan Kaufmann
Francisco Almeida (2008). Introducción a la programación paralela. Madrid : Paraninfo Cengage Learning
Tomasz Drabas (2017). Learning PySpark . Packt Publishing
Jan Palach (2014). Parallel programming with Python . Packt Publishing
Alberto García García (2020). Programación de GPUs usando Compute Unified Device Architecture (CUDA). Paracuellos del Jarama : Ra-M
Giancarlo Zaccone (2015). Python parallel programming cookbook . Packt Publishing
Jesús Carretero Pérez (2021). Sistemas operativos: una visión aplicada. Madrid : McGraw-Hill |
|
Complementária
|
Peter S. Pacheco (2021). An introduction to parallel programming . Burlington, MA : Morgan Kaufmann
John L. Hennesy (2019). Computer architecture: a quantitative approach. Cambridge, Massachusetts : Morgan Kaufmann
Bertil Schmidt (2017). Parallel programming: concepts and practice . Cambridge, MA : Morgan Kaufmann
Jorge Luis Ortega-Arjona (2010). Patterns for parallel software design. Sussex, UK: Wiley series in software design patterns
John Cheng (2014). Professional CUDA C programming. Hoboken : John Wiley & Sons
William Stallings (2005). Sistemas operativos: aspectos internos y principios de diseño . Madrid : Pearson |
|
Recomendaciones |
Asignaturas que se recomienda haber cursado previamente |
Programación I/614G03006 | Programación II/614G03007 | Introducción a los Computadores /614G03012 |
|
Asignaturas que se recomienda cursar simultáneamente |
|
Asignaturas que continúan el temario |
|
Otros comentarios |
- Se recomienda tener unas competencias básicas/intermedias en la programación con el lenguaje Python dado que todas las prácticas se realizarán con este lenguaje.
- Se recomienda tener unos conocimientos básicos en el uso de un sistema Linux, gestión de procesos y conocimiento de ficheros y entrada/salida.
|
|