Competencias / Resultados del título |
Código
|
Competencias / Resultados del título
|
A12 |
CE12 - Capacidad de conocer y aplicar los principios fundamentales, principales paradigmas y técnicas de la programación paralela y distribuida al desarrollo de algoritmos para el procesamiento y análisis masivo de datos. |
B2 |
CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean 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 |
B3 |
CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética |
B4 |
CB4 - Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado |
B7 |
CG2 - Elaborar adecuadamente y con cierta originalidad composiciones escritas o argumentos motivados, redactar planes, proyectos de trabajo, artículos científicos y formular hipótesis razonables. |
B8 |
CG3 - Ser capaz de mantener y extender planteamientos teóricos fundados para permitir la introducción y explotación de tecnologías nuevas y avanzadas en el campo. |
B9 |
CG4 - Capacidad para abordar con éxito todas las etapas de un proyecto de análisis de datos: exploración previa de los datos, preprocesado, análisis, visualización y comunicación de resultados. |
B10 |
CG5 - Ser capaz de trabajar en equipo, especialmente de carácter multidisciplinar, y ser hábiles en la gestión del tiempo, personas y toma de decisiones. |
C1 |
CT1 - Utilizar las herramientas básicas de las tecnologías de la información y las comunicaciones (TIC) necesarias para el ejercicio de su profesión y para el aprendizaje a lo largo de su vida. |
C4 |
CT4 - Valorar la importancia que tiene la investigación, la innovación y el desarrollo tecnológico en el avance socioeconómico y cultural de la sociedad. |
Resultados de aprendizaje |
Resultados de aprendizaje |
Competencias / Resultados del título |
Conocer los requisitos técnicos y las tecnologías actuales que permiten el paralelismo. |
A12
|
B8 B9
|
|
Conocer las diferentes tecnologías de paralelismo existentes, su aplicación, límites, ventajas y desventajas. |
A12
|
B4 B8 B9
|
|
Ser capaz de aplicar técnicas de paralelismo para transformar una solución existente y así permitir un procesamiento paralelo. |
A12
|
B2 B4 B7 B8 B9 B10
|
C1
|
Ser capaz de analizar el rendimiento de una solución de procesamiento, existente sin paralelismo o nueva con paralelismo |
A12
|
B2 B4 B7 B8 B9 B10
|
C1
|
Comprender la importancia del paralelismo a la hora de llevar a cabo procesos de análisis de datos críticos en el ámbito social, comercial o de investigación. |
A12
|
B3 B4 B8 B10
|
C4
|
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 en el Big Data |
* Almacenamiento de datos
* Gestión de recursos y la ejecución
* Procesamiento Batch
* Procesamiento Streaming |
Planificación |
Metodologías / pruebas |
Competencias / Resultados |
Horas lectivas (presenciales y virtuales) |
Horas trabajo autónomo |
Horas totales |
Sesión magistral |
A12 B3 B8 B9 C4 |
20 |
30 |
50 |
Prácticas de laboratorio |
A12 B2 B4 B7 B9 B10 C1 |
20 |
60 |
80 |
Prueba objetiva |
A12 B2 B4 B7 B9 C1 C4 |
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.
____________________________________________________________________________
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
|
Competencias / Resultados |
Descripción
|
Calificación
|
Prácticas de laboratorio |
A12 B2 B4 B7 B9 B10 C1 |
* 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 |
A12 B2 B4 B7 B9 C1 C4 |
* 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 50% de la nota máxima de la prueba objetiva (2.5 puntos de 5).
- un mínimo del 50% de la nota máxima en la parte práctica (2.5 puntos de 5).
- La nota de prácticas NO ES RECUPERABLE para la segunda oportunidad.
- Todos los aspectos relacionados con la dispensa académica, la dedicación al estudio, la permanencia y el fraude académico se regirán acorde con la normativa académica vigente de la UDC.
- 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 individualmente, así como de la prueba objetiva final, serán corregidos con un método ciego que garantiza la anonimidad del alumno.
|
Fuentes de información |
Básica
|
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
------------------------ (Tema 1 ). ------------------------ .
------------------------ (Tema 2). ------------------------ .
------------------------ (Tema 3). ------------------------ .
------------------------ (Tema 4). ------------------------ .
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
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
|
Jorge Luis Ortega-Arjona (2010). Patterns for parallel software design. Sussex, UK: Wiley series in software design patterns
Peter S. Pacheco (2021). An introduction to parallel programming. Burlington, MA : Morgan Kaufmann
Vijay Srinivas Agneeswaram (2014). Big Data analytics beyond Hadoop: real-time applications with Storm, Spark, and more Hadoop alternatives. Upper Saddle River, NJ : Pearson Education
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
William Stallings (2005). Sistemas operativos: aspectos internos y principios de diseño. Madrid : Pearson |
|
Recomendaciones |
Asignaturas que se recomienda haber cursado previamente |
Diseño y Análisis de Algoritmos/614G02011 | Fundamentos de Computadores/614G02005 | Fundamentos de Programación II/614G02009 | Fundamentos de Programación I/614G02004 |
|
Asignaturas que se recomienda cursar simultáneamente |
|
Asignaturas que continúan el temario |
Procesamiento Paralelo Avanzado/614G02034 |
|
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.
|
|