Guía docente de la asignatura
(3868) METODOLOGÍA DE LA PROGRAMACIÓN PARALELA

Curso académico 2024/2025

  1. Identificación
    1. De la asignatura
    2. Curso Académico
      2024/2025
      Titulación
      GRADO EN INGENIERÍA INFORMÁTICA
      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECIFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA
      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECÍFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA
      Nombre de la asignatura
      METODOLOGÍA DE LA PROGRAMACIÓN PARALELA
      Código
      3868
      Curso
      CUARTO
      QUINTO
      QUINTO
      Carácter
      OPTATIVA
      Número de grupos
      3
      Créditos ECTS
      6.0
      Estimación del volumen de trabajo
      150.0
      150.0
      150.0
      Organización temporal
      1º Cuatrimestre
      1º Cuatrimestre
      1º Cuatrimestre
      Idiomas en que se imparte
      Español
      Curso Académico 2024/2025
      Titulación

      GRADO EN INGENIERÍA INFORMÁTICA,

      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECIFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA,

      PROGRAMA ACADÉMICO DE SIMULTANEIDAD DE DOBLE TITULACIÓN CON ITINERARIO ESPECÍFICO DE GRADO EN MATEMÁTICAS Y GRADO EN INGENIERÍA INFORMÁTICA

      Nombre de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN PARALELA
      Código 3868
      Curso CUARTO QUINTO QUINTO
      Carácter OPTATIVA
      Número de grupos 3
      Créditos ECTS 6.0
      Estimación del volumen de trabajo 150.0 150.0 150.0
      Organización temporal 1º Cuatrimestre 1º Cuatrimestre 1º Cuatrimestre
      Idiomas en que se imparte Español

    3. Del profesorado: Equipo docente
      • CUTILLAS LOZANO, JOSE MATIAS Docente: GRUPO 1, PCEO MATE+INFOR_EXTINCION GRUPO PCEO MATE+INFORM, Coordinación de los grupos: GRUPO 1, PCEO MATE+INFOR_EXTINCION GRUPO PCEO MATE+INFORM, Coordinador de la asignatura

        Categoría

        ASOCIADO A TIEMPO PARCIAL

        Área

        LENGUAJES Y SISTEMAS INFORMÁTICOS

        Departamento

        INFORMÁTICA Y SISTEMAS

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

        josematias.cutillas@um.es Tutoría electrónica:

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

        Duración:
        C1
        Día:
        Jueves
        Horario:
        12:30-14:15
        Lugar:
        868887804, Facultad de Informática B1.2.022
        Observaciones:
        Despacho 2.16
        Duración:
        C2
        Día:
        Martes
        Horario:
        10:30-12:00
        Lugar:
        868887804, Facultad de Informática B1.2.022
        Observaciones:
        Despacho 2.16
        Duración:
        C1
        Día:
        Miércoles
        Horario:
        13:00-14:15
        Lugar:
        868887804, Facultad de Informática B1.2.022
        Observaciones:
        Despacho 2.16
        Duración:
        C2
        Día:
        Martes
        Horario:
        19:30-21:00
        Lugar:
        868887804, Facultad de Informática B1.2.022
        Observaciones:
        Despacho 2.16

  2. Presentación
  3. En muchos campos científicos y de ingeniería es necesario resolver problemas de alto coste, así como procesar grandes cantidades de datos. Para ello es necesario utilizar algoritmos aproximados o altamente eficientes, y el uso de sistemas paralelos de altas prestaciones. Además, con la posibilidad de utilizar redes de ordenadores y con los computadores multicore y coprocesadores tipo GPU y MIC, la programación paralela está al alcance de todos los usuarios y es necesaria para poder sacar todo el partido posible de los sistemas computacionales estándar, por lo que su estudio es especialmente importante.

    En esta asignatura se estudian las técnicas básicas para comenzar a construir algoritmos y sistemas paralelos, y también para medir su eficacia. Se practica con distintos entornos de programación paralela. En particular, se estudian los dos estándares de programación paralela actuales: OpenMP para programación en memoria compartida y MPI para paso de mensajes. También se estudia el paralelismo híbrido en memoria compartida y paso de mensajes, y la programación de sistemas Manycore: GPU y MIC.

  4. Condiciones de acceso a la asignatura
    1. Incompatibilidades
    2. No constan

    3. Requisitos
    4. No constan

    5. Recomendaciones
    6. Son necesarias nociones de programación, algoritmos y estructuras de datos, incluyendo habilidad en programación con lenguajes imperativos, especialmente C/C++. También es recomendable disponer de nociones de programación concurrente, nociones de estructura de ordenadores y de arquitecturas paralelas, aunque se repasarán los elementos necesarios para abordar la asignatura.

  5. Competencias
    1. Competencias básicas
      • CB1: Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio
      • 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
      • 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
      • CB4: Que los estudiantes puedan transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado
      • CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

    2. Competencias de la titulación
      • CGII1: Capacidad de análisis y síntesis.
      • CGII2: Capacidad de organización y planificación.
      • CGII3: Comunicación oral y escrita en la lengua nativa.
      • CGII5: Conocimientos de informática relativos al ámbito de estudio.
      • CGII7: Resolución de problemas.
      • CGII14: Razonamiento crítico.
      • CGII16: Aprendizaje autónomo.
      • CGII17: Adaptación a nuevas situaciones.
      • CGII18: Creatividad
      • CGUM1: Ser capaz de expresarse correctamente en español en su ámbito disciplinar.
      • CGUM3: Ser capaz de gestionar la información y el conocimiento en su ámbito disciplinar, incluyendo saber utilizar como usuario las herramientas básicas en TIC.
      • CGUM6: Capacidad para trabajar en equipo y para relacionarse con otras personas del mismo o distinto ámbito profesional.
      • CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
      • CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos adquiridos.
      • CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
      • CEII8: Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
      • CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.

    3. Competencias transversales y de materia
      • IS1 Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software
      • IS2 Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones
      • IS4 Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales
      • IC3 Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software de para las mismas
      • IC7 Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos

  6. Contenidos
    1. Teoría
    2. Tema 1: Modelos de computadores paralelos

      Tema 2: Modelos de programación paralela

      Tema 3: Análisis de algoritmos paralelos

      Tema 4: Metodología de la programación paralela

      Tema 5: Esquemas algorítmicos paralelos

    3. Prácticas
      • Práctica 1: Programación con OpenMP

        Se realizará un proyecto de programación en el que habrá que paralelizar un algoritmo utilizando OpenMP

        Relacionado con:
        • Tema 1: Modelos de computadores paralelos
        • Tema 2: Modelos de programación paralela
        • Tema 3: Análisis de algoritmos paralelos
        • Tema 4: Metodología de la programación paralela
        • Tema 5: Esquemas algorítmicos paralelos
      • Práctica 2: Programación con MPI

        Se realizará un proyecto de programación en el que habrá que paralelizar un algoritmo utilizando MPI

        Relacionado con:
        • Tema 1: Modelos de computadores paralelos
        • Tema 2: Modelos de programación paralela
        • Tema 3: Análisis de algoritmos paralelos
        • Tema 4: Metodología de la programación paralela
        • Tema 5: Esquemas algorítmicos paralelos
      • Práctica 3: Programación híbrida OpenMP + MPI. Modelado de un algoritmo paralelo

        Se desarrollará un proyecto de programación en el que habrá que paralelizar un algoritmo utilizando OpenMP + MPI, y realizar su modelado y auto-optimización

        Relacionado con:
        • Tema 1: Modelos de computadores paralelos
        • Tema 2: Modelos de programación paralela
        • Tema 3: Análisis de algoritmos paralelos
        • Tema 4: Metodología de la programación paralela
        • Tema 5: Esquemas algorítmicos paralelos
      • Práctica 4: Programación de una GPU con CUDA

        Se plantearán una serie de ejercicios en los que habrá que analizar y ejecutar distintos códigos en C paralelizados con CUDA

        Relacionado con:
        • Tema 1: Modelos de computadores paralelos
        • Tema 2: Modelos de programación paralela
        • Tema 3: Análisis de algoritmos paralelos

  7. Actividades Formativas
  8. Actividad Formativa Metodología Horas Presencialidad
    A1: Actividades con grupo grande de alumnos entre las que se encuentran la presentación en el aula de los conceptos propios de la materia mediante metodología expositiva con lecciones magistrales participativas y medios audiovisuales. También se contemplan en este grupo las actividades de evaluación teórico prácticas.

    Presentación en el aula de los conceptos propios de la materia haciendo uso de metodología expositiva con lecciones magistrales participativas y resolución de ejercicios.

    26.0 40.0
    A2: Actividades con grupo mediano en el aula de resolución de problemas, seminarios, charlas, ejercicios basados en el aprendizaje orientado a proyectos, estudios de casos, exposición y discusión de trabajos relativas al seguimiento individual y/o grupal de adquisición de las competencias.

    Resolución de ejercicios y de cuestiones planteadas por los alumnos.

    4.0 12.5
    A3: Actividades con grupo pequeño en el laboratorio relacionadas con la componente práctica de las asignaturas, desarrollo de trabajos con equipo técnico especializado, desarrollo de programas, etc.

    Aprendizaje basado en proyectos. Se propondrán varios proyectos de tamaño reducido en los que los alumnos trabajarán en grupos para resolverlos.

    25.0 37.5
    A4: Tutorías individualizadas o en grupo muy pequeño orientadas a la dirección, supervisión y asesoría por parte del un profesor de la asignatura, del tutor en el caso de Trabajo Fin de Grado, supervisión del tutor de empresa en el caso de Prácticas de Empresa que de forma periódica constate y redirija el trabajo del alumno hacia la consecución de los objetivo marcados.

    Resolución de cuestiones planteadas por los alumnos.

    5.0 10.0
    A5: Estudio y trabajo autónomo orientado a la asimilación de contenidos, realización de problemas, ejercicios o redacción de informes técnicos o memorias descriptivas, desarrollo de proyectos o prácticas individuales o en

    Trabajo autónomo del alumno relacionado con las actividades formativas de la asignatura.

    90.0 0.0
    Totales 150,00

  9. Horario de la asignatura
  10. https://www.um.es/web/estudios/grados/informatica/2024-25#horarios

  11. Sistemas de Evaluación
  12. Identificador Denominación del instrumento de evaluación Criterios de Valoración Ponderación
    IE1 Examen teórico-práctico. En este instrumento incluimos desde el tradicional examen escrito o tipo test hasta los exámenes basados en resolución de problemas, pasando por los de tipo mixto que incluyen cuestiones cortas o de desarrollo teórico junto con pequeños problemas. También se incluye aquí la consideración de la participación activa del alumno en clase, la entrega de ejercicios o realización de pequeños trabajos escritos y presentaciones.

    Ejercicios semanales: 10%.

    Examen teórico-práctico: 40%.

    Es necesario superar este examen (un 5 sobre 10) para realizar la media ponderada final.

    Los alumnos que no sigan la evaluación continua solo realizarán el examen teórico-práctico con una ponderación del 50%.

    50.0
    IE2 Informe técnico. En este instrumento incluimos los resultados de actividades prácticas, o de laboratorio, junto con sus memorias descriptivas. Los resúmenes del estado del arte o memorias de investigación sobre temas concretos. Y la posibilidad de realizar entrevistas personales o presentaciones de los trabajos realizados también entran en esta categoría.

    Prácticas de laboratorio: 50%.

    Los criterios y temporización concretos de cada práctica se presentarán el primer día de clase.

    Es necesaria una puntuación mínima de 3,5 en cada práctica y superar esta parte (5 sobre 10 en la nota media de prácticas) para realizar media con la teoría.

    Si el alumno no presenta alguna(s) práctica(s), su nota será No Presentado.

    Puede requerirse entrevista con los alumnos.

    50.0

  13. Fechas de exámenes
  14. https://www.um.es/web/estudios/grados/informatica/2024-25#examenes

  15. Resultados del Aprendizaje
  16. - Conocer las características de paralelismo en los entornos computacionales actuales.

    - Aprender el funcionamiento de entornos de programación paralela para sistemas de distintas características, siendo capaz de desarrollar proyectos que hagan uso del paralelismo para mejorar su eficiencia.

    - Conocer la metodología básica de desarrollo de algoritmos paralelos y su adaptación a distintos entornos computacionales.

    - Aprender a identificar, para problemas de distintas características, el tipo de paralelismo más adecuado para su resolución.

    - Aprender técnicas de análisis y diseño de algoritmos paralelos, así como metodologías de optimización de código paralelo.

  17. Bibliografía
  18. Observaciones
  19. -- Criterios para establecer la nota final que aparecerá en el acta.

    Si el alumno suspende una parte (teoría o prácticas) y no se presenta a la otra parte, la calificación total será de Suspenso.

    Si el alumno aprueba una parte y no presenta la otra parte, la calificación será de No presentado.

    Si el alumno aprueba una parte y suspende la otra, la calificación será de Suspenso.

    - La nota final de la asignatura se calculará aplicando los pesos establecidos para cada parte en los criterios de evaluación de esta guía.

    - Las notas de partes aprobadas se guardarán durante las tres convocatorias del curso académico.

    ---------

    -- Relación de los resultados de aprendizaje desarrollados en la asignatura con los ODS.

    La asignatura Metodología de la Programación Paralela cubre contenidos relacionados con el ODS3, el ODS11 y el ODS13:

    - Salud y bienestar (ODS 3): el impacto de la computación paralela en el ámbito de la salud y bienestar es significativo, con avances importantes gracias a la aceleración de algoritmos de optimización, por ejemplo, para problemas de acoplamiento molecular que ayudan a descubrir fármacos más rápidamente, o de análisis de imágenes médicas.

    - Ciudades y comunidades sostenibles (ODS 11): algunos servicios cotidianos, como el control inteligente del tráfico en ciudades, se apoyan en la computación de altas prestaciones para realizar cálculos complejos en tiempos limitados. La sostenibilidad pasa por reducir el consumo de combustible y las emisiones. Agilizar los desplazamientos urbanos permite alcanzar estos objetivos, mejorando la calidad de vida de los ciudadanos.

    - Acción por el clima (ODS 13): el estudio del clima requiere de la creación de modelos con una alta demanda computacional que habitualmente deben ser ejecutados en supercomputadores y sistemas de altas prestaciones. La paralelización de estos modelos es crucial para su análisis y así poder realizar predicciones más precisas sobre el cambio climático.

    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.

    REGLAMENTO DE EVALUACIÓN DE ESTUDIANTES

    El artículo 8.6 del Reglamento de Evaluación de Estudiantes (REVA) prevé que "salvo en el caso de actividades definidas como obligatorias en la guía docente, si el o la estudiante no puede seguir el proceso de evaluación continua por circunstancias sobrevenidas debidamente justificadas, tendrá derecho a realizar una prueba global".

    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".