Curso on line de Iniciación a la Programación Paralela, 2015

Realización:

Prevista realización para noviembre-diciembre de 2015 o febrero-marzo 2016. Los interesados pueden consultar enviando correo a domingo@um.es.


Finalidad:

Iniciación a la programación paralela para personal con ciertos conocimientos de programación pero sin conocimientos profundos de informática, como pueden ser trabajadores de empresas de informática que quieran sacar mayores prestaciones de los sistemas que tienen a su disposición, o científicos e ingenieros que quieran aprovechar al máximo las capacidades de los equipos computacionales a los que tienen acceso para su investigación.

Se analizarán los elementos básicos de la computación paralela y diversos entornos de paralelismo, y principalmente los estándares de facto de programación paralela en memoria compartida (OpenMP) y por paso de mensajes (MPI) y entornos de programación de procesadores gráficos (CUDA y OpenCL).

Organización:

El curso es online, y se organizará en varias lecciones que se planificarán por semanas, y el trabajo de los alumnos se controlará con la realización de los ejercicios propuestos por cada lección.

Los ejercicios pueden ser de diversos tipos (revisión de artículos, cuestionarios tipo test...) pero principalmente consistirán en la realización de programas. Normalmente se realizarán con un sistema de corrección online (luna.inf.um.es/~mooshak), a través del cual se podrá enviar soluciones y comprobar su validez, así como realizar consultas. Ocasionalmente, algunos de los trabajos habrá que enviarlos por correo.

El material para cada lección se dejará en esta web, y consistirá en explicaciones en la misma web, documentos, vídeos, enlaces a material adicional, programas ejemplo, y el listado de ejercicios a resolver.

Contenido:

primera semana

Arquitectura de sistemas paralelos

Sistemas de colas

Jerarquía de memorias

segunda semana

Algoritmos por bloques

Librería de vectorización SSE

tercera semana

Paralelismo fork-join en C

pthreads

Paralelismo en Java

cuarta semana

OpenMP

quinta semana

MPI

sexta semana

CUDA

séptima semana

OpenCL

octava semana

novena semana