Institución Facultad de Cs. Físicas y Matemáticas Facultad de Cs. Físicas y Matemáticas
Disponible desde Primavera 2017
Cursos Asociados Otras realizaciones de este Curso
Objetivos El propósito de este curso es que las y los alumnos aprendan a: detectar qué problemas son paralelizables en la GPU, cómo diseñar y programar una solución
paralela, conocer y aplicar técnicas de optimización, y evaluar el desempeño de sus soluciones paralelas. El ámbito de problemas a resolver son tanto problemas que
surgen de la computación gráfica, computación en general y de aplicaciones científicas e ingenieriles.

En resumen, al final de este curso, las y los alumnos serán capaces de:

* Entender las arquitecturas de las GPUs
* Detectar si un problema puede ser paralelizable en la GPU
* Diseñar soluciones paralelas
* Programar soluciones paralelas (para aplicaciones gráficas y de propósito general)
* Implementar soluciones para resolver problemas que clásicamente han sido
resueltos en supercomputadores
* Evaluar el desempeño de soluciones paralelas
* Enfrentar y resolver problemas científicamente interesantes
* Conocer aplicaciones paralelizables en GPU en distintos ámbitos
* Conocer los desafíos existenteos en computación en GPU.
Descripción Las tarjetas de procesamiento gráfico, conocidas como GPU, fueron desarrolladas originalmente para acelerar el proceso de rendering gráfico, motivadas
principalmente por los videojuegos. Sin embargo, hoy en día, GPUs son intensamente usadas por aplicaciones de propósito general que requieren alto poder de cáculo. Las
GPUS se han transformando en una alternativa eficiente, y más económica que los clusters de CPUs, para los algoritmos en que el procesamiento de grandes bloques de
información se puede hacer en paralelo. El propósito de este curso es que las y los alumnos aprendan a: detectar qué problemas son paralelizables en la GPU, cómo diseñar y programar una solución paralela, conocer y aplicar técnicas de optimización, y evaluar el desempeño de sus soluciones paralelas. El ámbito de problemas a resolver son tanto problemas que
surgen de la computación gráfica, computación en general y de aplicaciones científicas e ingenieriles.
Metodología El curso consiste en clases de cátedra tradicionales y en clases usando la metodología de aprendizaje basado en problemas. Las y los alumnos deberán desarrollar 3 tareas, una en cada uno de los siguientes modelos de programación: Cuda, OpenCl y shaders (GLSL). Cada alumno debe desarrollar un proyecto computacional identificando un problema desafiante, que tenga una solución eficiente al programarlo en la GPU. El
problema a resolver en el proyecto puede ser propuesto por el estudiante. El curso tambien requiere leer artículos científicos/capítulos de libro en inglés.
Evaluación El curso posee tres controles de lectura (cuyo promedio es el control C1), dos evaluaciones grupales (2 o tres personas) y una presentación oral de algún tema de interés relacionado al curso, cuyo promedio es el control C2, 3 tareas de programación (NT) y proyecto computacional (NPC). La nota final (NF) se calcula como sigue:
NC = (C1+C2)/2.

El examen (NE) consistirá en una presentación oral del proyecto abordado en donde al alumno presentará el problema, la solución y una discusión crítica de lo realizado.
NP= 60%NC + 40%NE
NF = 40% NP + 20% NPC + 40%NT
NP, NPC yMT deben >= 4.0 independientemente.
Programa del Curso 2017_2_CC7515.pdf
Compartir