Descripción general |
En esta asignatura el alumno estudiará el papel que el uso del paralelismo tiene a la hora de acelerar la ejecución de programas en general, y el procesamiento de datos en particular.
El conocimiento teórico partirá de los conceptos técnicos más básicos de paralelismo, incluyendo su utilidad, aplicabilidad, el contexto técnico de la ejecución de programas paralelos y su evolución histórica (Tema 1). Después, se expondrán las principales tecnologías hardware que existen actualmente para el procesamiento paralelo, así como sus capacidades técnicas subyacentes relacionadas y necesarias para explotar el paralelismo (Tema 2). A continuación, se profundizará en el paralelismo con conceptos añadidos, clasificaciones, posibles diseños para su implementación software y maneras de analizar su rendimiento (Tema 3). Finalmente, se aplicará todo el conocimiento previamente adquirido estudiando las herramientas y tecnologías modernas para el procesamiento de datos masivos, es decir, poniendo el foco en el Big Data (Tema 4).
En el aspecto práctico, el alumno realizará diversas sesiones con un enfoque incremental a fin de adquirir el conocimiento y la habilidad de programar y/o desplegar soluciones de procesamiento en paralelo. Se empezará con prácticas dirigidas a adquirir competencias más técnicas y simples, y se irá progresando hacia soluciones más completas, cada vez más relacionadas a su vez con el procesamiento de datos. Las prácticas serán autocontenidas y fuertemente enfocadas a la resolución de problemas o escenarios concretos.
Esta asignatura tiene una fuerte dependencia con asignaturas previas como "Fundamentos de Programación I y II", principalmente por su requisito técnico para la programación, y "Diseño y Análisis de Algoritmos" por su conocimiento teórico del análisis de complejidad de los algoritmos. En menor medida se requieren conocimientos previos de la asignatura de "Fundamentos de Computadores" para comprender el comportamiento empírico y el rendimiento en general de algunos programas cuando estos se ejecutan en un computador. |