Guía docente de la asignatura
(6614) PROCESAMIENTO PARALELO AVANZADO

Curso académico 2026/2027

  1. Identificación

    1. De la asignatura

      Curso Académico
      2026/2027
      Titulación
      GRADO EN CIENCIA E INGENIERÍA DE DATOS
      Nombre de la asignatura
      PROCESAMIENTO PARALELO AVANZADO
      Código
      6614
      Curso
      CUARTO
      Carácter
      OPTATIVA
      Número de grupos
      1
      Créditos ECTS
      4.5
      Estimación del volumen de trabajo
      112.5
      Organización temporal
      2º Cuatrimestre
      Idiomas en que se imparte
      Inglés
      Español
      Curso Académico 2026/2027
      Titulación

      GRADO EN CIENCIA E INGENIERÍA DE DATOS

      Nombre de la asignatura PROCESAMIENTO PARALELO AVANZADO
      Código 6614
      Curso CUARTO
      Carácter OPTATIVA
      Número de grupos 1
      Créditos ECTS 4.5
      Estimación del volumen de trabajo 112.5
      Organización temporal 2º Cuatrimestre
      Idiomas en que se imparte Inglés, Español
    2. Del profesorado: Equipo docente

      • JIMBOREAN, ALEXANDRA Docente: GRUPO 1 Coordinación de los grupos: GRUPO 1 Coordinador de la asignatura

        Categoría

        PROFESORES TITULARES DE UNIVERSIDAD

        Área

        ARQUITECTURA Y TECNOLOGÍA DE COMPUTADORES

        Departamento

        INGENIERÍA Y TECNOLOGÍA DE COMPUTADORES

        Correo electrónico / Página web / Tutoría electrónica

        alexandra.jimborean@um.es Tutoría electrónica: Sí

        Teléfono, horario y lugar de atención al alumnado

        Duración:
        A
        Día:
        Lunes
        Horario:
        12:00-14:00
        Lugar:
        868884844, Facultad de Psicología y Logopedia B1.3.027
        Observaciones:
        Facultad de Informatica. Despacho 3.29 (B1.3.027).
      • ALLADI SUBHASH CHANDRA, SHREYA Docente: GRUPO 1 Coordinación de los grupos:

        Categoría

        INVESTIGADOR/A LICENCIADO/A

        Área

        No consta

        Departamento

        No consta

        Correo electrónico / Página web / Tutoría electrónica

        shreya.a.s@um.es Tutoría electrónica: No

        Teléfono, horario y lugar de atención al alumnado

  2. Presentación

    La asignatura “Procesamiento Paralelo Avanzado” aborda el diseño y la implementación de técnicas de computación paralela en arquitecturas modernas de memoria compartida y distribuida. Se exploran directivas de paralelización, estrategias de optimización y el uso de librerías de paso de mensajes y E/S paralela, con el objetivo de maximizar el rendimiento en escenarios intensivos en datos. Además, el curso incluye el estudio de arquitecturas heterogéneas, destacando el empleo de aceleradores hardware y el procesamiento híbrido para una gestión eficiente de recursos. Finalmente, se analizan casos de estudio reales que permiten a los estudiantes aplicar estos conceptos en la resolución de problemas complejos y de gran escala, preparándolos para enfrentar los retos actuales del análisis y procesamiento masivo de datos.

    El procesamiento paralelo y distribuido como motor de la ciencia de datos moderna:

    El procesamiento paralelo y distribuido es una técnica fundamental que permite abordar los retos de la ciencia de datos moderna, caracterizada por la necesidad de analizar y procesar grandes volúmenes de información de manera eficiente. En esencia, consiste en dividir tareas complejas en unidades más pequeñas que pueden ejecutarse simultáneamente en múltiples procesadores o máquinas, acelerando así el análisis y permitiendo el manejo de conjuntos de datos masivos que serían inviables en sistemas secuenciales tradicionales.

    En este contexto, el procesamiento paralelo se implementa tanto en arquitecturas de memoria compartida (varios núcleos en una sola máquina) como en sistemas distribuidos (varias máquinas conectadas por red), y es esencial para aplicaciones como el aprendizaje automático, la minería de datos y el procesamiento de datos en tiempo real. Además de mejorar el rendimiento y la velocidad, el procesamiento paralelo plantea desafíos como la sincronización, la gestión eficiente de la memoria y la comunicación entre nodos, aspectos clave para cualquier científico de datos avanzado.

    Esta asignatura sentará las bases para explorar modelos de paralelismo (de datos, de tareas, de canalización), arquitecturas subyacentes y ejemplos prácticos relevantes en ciencia de datos, preparando a los estudiantes para diseñar, implementar y optimizar soluciones paralelas en entornos reales.

  3. Condiciones de acceso a la asignatura

    1. Incompatibilidades

      No constan

    2. Requisitos

      No constan

    3. Recomendaciones

      Se recomienda haber realizado la asignatura Procesamiento Paralelo de Datos.

  4. Competencias

    1. Competencias básicas

      • 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

    2. Competencias de la titulación

      • CG2: Conocer y aplicar los fundamentos de ingeniería y tecnologías informáticas actuales para diseñar e implementar nuevas aplicaciones de análisis de datos.
      • CG3: Capacidad para desarrollar experimentos y para implementar sistemas, infraestructuras, procesos y herramientas con el fin de soportar la manipulación de los datos durante todo el ciclo de vida de estos.
      • CE7: Conocer la arquitectura y el funcionamiento de los computadores, la interconexión de los componentes que los forman y su software de sistema básico.
      • CE9: Utilizar sistemas distribuidos, sistemas de cálculo paralelo, sistemas de procesamiento por lotes y plataformas de procesamiento de flujos de datos, incluyendo soluciones online y basadas en la nube para la provisión de servicios bajo demanda y escalables.

    3. Competencias transversales y de materia

      No constan

  5. Contenidos

    1. Teoría

      Tema 1: Introducción

      • Tipos de paralelismo

      • Ejemplo MapReduce secuencial y MapReduce paralelo

      • Resumen de diversas herramientas para el procesamiento paralelo de datos en flujo y/o el procesamiento distribuido de datos.

      Tema 2: Casos de estudio en el procesamiento paralelo de datos

      • Procesamiento paralelo de grandes volúmenes de datos en Streaming

      • Aprendizaje automático distribuido

      Tema 3: Procesamiento paralelo en arquitecturas de memoria compartida

      • Directivas de paralelización y técnicas de optimización en arquitecturas de memoria compartida

      1. Paralelismo básico de datos
      2. Sincronización
      3. Equilibrio de carga
      4. Paralelismo básico basado en tareas

      Tema 4: Procesamiento paralelo en arquitecturas de memoria distribuida

      • Técnicas de paralelización y de optimización en arquitecturas de memoria distribuida

      1. Conceptos básicos de paralelismo distribuido
      2. Optimizaciones de las comunicaciones

      • Procesamiento híbrido (memoria distribuida + memoria compartida)

    2. Prácticas

      • Práctica 1: MapReduce en un paso y en dos pasos

        - Ejemplo simple que requiere un paso MapReduce

        - Ejemplo avanzado que requiere dos pasos de operaciones MapReduce

        - Implementación utilizando un framework diseñado para el procesamiento paralelo de datos

        Relacionado con:
        • Tema 1: Introducción
      • Práctica 2: Procesamiento paralelo de datos en Streaming y/o de aprendizaje automático distribuido

        - Utilizar nuevas heramientas especificas para el procesamiento paralelo de datos en Streaming y/o de aprendizaje automático distribuido

        Relacionado con:
        • Tema 2: Casos de estudio en el procesamiento paralelo de datos
      • Práctica 3: Procesamiento paralelo de datos: memoria compartida

        • Implementación secuencial de un algorithmo de procesamiento de datos (Transformers cross-attention layer, numpy lib, etc)

        - Código base

        • Paralelización básica

        - Paralelizar usando #pragma omp parallel for

        - Programación: estática / guiada/ dinámica

        - Usar colapso para bucles anidados

        • Identificación de condiciones de carrera

        - Detectar condiciones de carrera

        • Exclusión Mutua con Secciones Críticas

        - Proteger datos compartidos usando #pragma omp critical

        - Medir la sobrecarga de contención de bloqueos

        Relacionado con:
        • Tema 3: Procesamiento paralelo en arquitecturas de memoria compartida
      • Práctica 4: Procesamiento paralelo de datos: memoria distribuida

        Implementación de paralelización con PyTorch Distributed

        En esta tarea, el alumnado deberá explorar el uso de PyTorch Distributed para paralelizar el procesamiento de un modelo de deep learning. Como ejemplo, se podrá tomar una capa de cross-attention en Transformers o un modelo LLM, y repartir su ejecución entre varios procesos. El objetivo es comprender cómo distribuir el modelo, coordinar la comunicación entre procesos y evaluar el impacto en rendimiento y escalabilidad.

        Optimizaciones avanzadas:

        - Combinar la paralelización distribuida con paralelismo intra-nodo.

        - Superponer cálculo y comunicación.

        Relacionado con:
        • Tema 4: Procesamiento paralelo en arquitecturas de memoria distribuida

  6. Actividades Formativas

    Actividad Formativa Metodología Horas Presencialidad
    AF1: Exposición teórica: Exposición de los contenidos teóricos de la asignatura por parte del profesor. También se contemplan las sesiones informativas sobre el desarrollo del trabajo de fin de grado o prácticas externas. 14.0 100.0
    AF3: Prácticas de laboratorio: Ejercicios y resolución de problemas, aprendizaje orientado a proyectos, estudio de casos, exposición y discusión de trabajos, simulaciones y/o prácticas con ordenadores, generalmente desarrolladas en grupos reducidos. 26.0 100.0
    AF4: Trabajo autónomo del alumno: Estudio y preparación de contenidos teórico-prácticos, trabajo individual consistente en lecturas, búsquedas de información, sistematización de contenidos, elaboración de informes o estudio para la elaboración de casos entre otras actividades. 67.5 0.0
    AF5: Tutorías formativas y resolución de dudas: Asistencia individualizada -tutorías individuales- o en grupo -tutorías colectivas- a los estudiantes por parte del profesor. 2.0 100.0
    AF6: Evaluación: Pruebas individuales, ya sean escritas, orales o con medios informáticos, donde el estudiante demostrará los conocimientos teóricos y prácticos adquiridos durante las actividades formativas asociadas a la enseñanza de la materia. 3.0 100.0
    Totales 112,50

  7. Horario de la asignatura

    https://www.um.es/web/estudios/grados/ciencia-ingenieria-datos/2026-27#horarios

  8. Sistemas de Evaluación

    Identificador Denominación del instrumento de evaluación Criterios de Valoración Ponderación
    SE1 Exámenes individuales: Pruebas objetivas, de desarrollo, de respuesta corta, de ejecución de tareas o de escala de actitudes, realizadas por los estudiantes para mostrar los conocimientos teóricos y prácticos adquiridos ya sea de forma oral, escrita o utilizando un ordenador.

    Habrá un examen oral al final del curso, en el que los estudiantes serán entrevistados sobre aspectos teóricos y prácticos.

    50.0
    SE3 Procedimientos de observación del trabajo del estudiante: Registros de participación, de realización de actividades, cumplimiento de plazos, participación en foros, informes de seguimiento del trabajo fin de grado y registros sobre el desarrollo de las prácticas externas. 0.0
    SE4 Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas y posibles resúmenes del estado del arte sobre temas concretos. La opción de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.

    Los estudiantes presentarán su trabajo de prácticas durante cada laboratorio para recibir feedback y para la evaluación continua a lo largo del curso. Por último, los estudiantes desarrollarán un proyecto basado en los laboratorios prácticos y habrá una presentación final para exponer su solución, seguida de preguntas del personal docente.

    Práctica 1: 30%

    Práctica 2: 10%

    Práctica 3: 30%

    Práctica 4: 30%

    50.0

  9. Fechas de exámenes

    https://www.um.es/web/estudios/grados/ciencia-ingenieria-datos/2026-27#examenes

  10. Resultados del Aprendizaje

    1. Comprender los fundamentos del procesamiento paralelo y distribuido y sus principales modelos.
    2. Identificar las características de arquitecturas de memoria compartida, distribuida e híbridas.
    3. Aplicar técnicas de paralelización y optimización en memoria compartida.
    4. Detectar y resolver problemas de sincronización, condiciones de carrera y equilibrio de carga.
    5. Utilizar herramientas y frameworks para procesamiento paralelo de datos.
    6. Desarrollar aplicaciones distribuidas para modelos de aprendizaje profundo.
    7. Combinar paralelismo intra-nodo e inter-nodo para optimizar recursos.
    8. Aplicar los conocimientos adquiridos a casos de estudio reales.
  11. Bibliografía

    Bibliografía básica

    • A “Hands-on” Introduction to OpenMP https://www.openmp.org/wp-content/uploads/omp-hands-on-SC08.pdf

    • MapReduce Design Patterns by Donald Miner and Adam Shook

    • Procesamiento paralelo para Big Data,Material de la Especialización en Inteligencia de Datos orientada a Big Data, UNLP (De Giusti, Rucci).Aborda conceptos fundamentales del procesamiento paralelo, arquitecturas, modelos de programación, y dedica secciones al paradigma MapReduce y al uso de frameworks como Hadoop y Spark para datos en flujo.

    • Procesamiento Paralelo,Sebastián Dormido Canto, David Moreno Salinas, José Sánchez Moreno, Victorino Sanz Prat.Sanz y Torres, 2012. Incluye capítulos sobre procesamiento paralelo aplicado a grandes volúmenes de datos y fundamentos teóricos útiles para streaming.

    Bibliografía complementaria

    • Introducción a la programación paralela / Francisco Almeida... [et al.]. -- Madrid : Paraninfo Cengage Learning, 2008

    • Modelo de Computación en Streaming para Reducir la Latencia en Procesamiento de DatosV. A. R. Huarachi, 2021.Explica los fundamentos del procesamiento en paralelo de datos en streaming, describe frameworks como Apache Storm, Flink, Spark Streaming y Kafka Streams, y detalla conceptos como particionamiento, paralelismo, tolerancia a fallos y escalabilidad en sistemas de streaming.

    • Parallel Programming with MPI, Peter S. Pacheco. Es uno de los textos clásicos y más accesibles para principiantes, cubre desde los fundamentos hasta ejemplos prácticos de programación paralela con MPI.

    • Stream Processing – Tecnologías y ComparativaAprenderBigData.com, Revisión actualizada de los principales frameworks open source para procesamiento de datos en streaming, comparando características, ventajas y desventajas, y explicando los retos de latencia y escalabilidad en tiempo real.

  12. Observaciones

    NECESIDADES EDUCATIVAS ESPECIALES

    Aquellos estudiantes con discapacidad o necesidades educativas especiales podrán dirigirse al Servicio de Atención a la Diversidad y Voluntariado (ADYV - https://www.um.es/adyv) para recibir orientación sobre un mejor aprovechamiento de su proceso formativo y, en su caso, la adopción de medidas de equiparación y de mejora para la inclusión, en virtud de la Resolución Rectoral R-358/2016. El tratamiento de la información sobre este alumnado, en cumplimiento con la LOPD, es de estricta confidencialidad.

    EVALUACIÓN

    En el procedimiento de evaluación resultarán de aplicación el artículo 135.1.v) de los Estatutos de la Universidad de Murcia, el artículo 8.6 del Reglamento de Evaluación de Estudiantes (REVA) y la instrucción SG 18/2026 del secretario general de la Universidad de Murcia que interpreta estas normas, disponible en este enlace: https://sede.um.es/sede/documento/normativa/instruccion-del-secretario-general-sg-18-2026-sobre-la-interpretacion-y-aplicacion-del-art-135-1-v-estatutos-umu/24199.pdf

    Se recuerda asimismo que el artículo 22.1 del Reglamento de Evaluación de Estudiantes (REVA) estipula que "el o la estudiante que se valga de conductas fraudulentas, incluida la indebida atribución de identidad o autoría, o esté en posesión de medios o instrumentos que faciliten dichas conductas, obtendrá la calificación de cero en el procedimiento de evaluación y, en su caso, podrá ser objeto de sanción, previa apertura de expediente disciplinario".

    OBSERVACIONES DEL EQUIPO DOCENTE

    Observaciones sobre evaluación: Los ejercicios evaluables entregados durante la convocatoria ordinaria, es decir, mientras se imparte la asignatura, podrán mejorarse hasta el día del examen para obtener una nota superior. Si un alumno no entrega estos ejercicios evaluables y, por tanto, obtiene una calificación de 0 en esa parte, podrá manifestar hasta el día del examen final su intención de que se le vuelva a evaluar su trabajo de evaluación continua mediante la realización de las prácticas en la convocatoria correspondiente. La calificación obtenida en la parte de ejercicios evaluables se conservará para todas las convocatorias.

    Las calificaciones del acta serán las siguientes: un alumno aparecerá como “No presentado” en el acta de una convocatoria siempre que no se presente al examen final de dicha convocatoria. En cualquier otro caso, el alumno aparecerá en el acta de una convocatoria con la media de la nota obtenida en el examen final de dicha convocatoria y la nota obtenida por el seguimiento continuo de las entregas de prácticas realizadas durante el desarrollo del curso.

    Objetivos de Desarrollo Sostenible:Esta asignatura no se encuentra vinculada de forma directa con los Objetivos de Desarrollo Sostenible.