Curso intensivo Paralelismo "no tan estándard "
| Qué |
|
|---|---|
| Cuándo |
23/05/2011 13:00
a 27/05/2011 17:00 |
| Dónde | Laboratorios 4 y 5 |
| Agregar evento al calendario |
|
Hola a todos. En la semana del 23 al 27 de Mayo nos visita el Dr Adrián Cristal, quien trabaja en el Barcelona Supercomputing Center.
Vamos a aprovechar su visita para que dicte un curso sobre programación paralela en el horario de 13hs a 17hs
El temario de curso no está cubierto por ninguna materia del depto y es realmente interesante y ataca una problematica de alto interes hoy en día.
Contenido:
En este curso se dará una introducción a la programación paralela, el curso esta centrado en tres modelos sencillos de programación paralela, memoria transaccional, la extensión openSS de openMP y CILK. Es un curso, teórico-practico, basado en la experimentación en clase, utilizando los distintos modelos.
Objetivos:
Que los estudiantes experimenten con diferentes modelos de programación. Que los estudiantes diferencien cuando es mas fácil aplicar un modelo de acuerdo al problema a paralelizar. Que los estudiantes utilicen herramientas de bajo nivel (contadores hardware) para la optimización de los algoritmos. Que los estudiantes tengan en cuenta la arquitectura subyacente y las limitaciones de los modelos a la hora de programar.
Requerimientos y requisitos: conocimientos de programación en C.
Introducción:
- ¿Porque es necesario un cambio de paradigma?
- Problemas tecnológicos: Principalmente Power Wall.
- Arquitecturas Paralelas.
Memoria Transaccional Teoría:
- Arquitecturas de memoria compartida.
- El concepto: Regiones Atómicas.
- Clasificación y funcionamiento de los sistemas de memoria transaccional:
- Read/Write sets
- Detección de Conflictos
- Resolución de Conflictos
- Manejo de las versiones
- Manejo de la contención
- Tipos de sistemas de memoria transaccional, Software, Hardware e Híbridos:
- TinySTM,
- LogTM, TCC and Eager-Lazy TM,
- ADF, FlexTM
- Un poquito de semantica:
- Linearizacion
- Serializacion
- Opacidad
- Grandes problemas de la memoria transaccional
- Input/Output
- Nesting
- Privatización
Memoria Transaccional Práctica:
Esta se va a basar en ejercicios de programación, el sistema que se utilizará será el desarrollando en el proyecto VELOX (DTMC).
En una primera parte, se explicará la bibliotecas "pthreads" y en una segunda el Framework.
A partir de ahí, se utilizarán programas secuenciales o estructuras de datos que tendrán que paralelizar utilizando TM (Tablas de hash, Red/Black Trees).
Se enseñará a utilizar contadores hardware y funciones puras para obtener estadísticas de la ejecución para poder optimizar los programas.
- OmpSs Teoría:
- OmpSs como extensión de openMP
- El modelo openMP
- Los primeros modelos de openMP (paralelizar bucles y secciones)
- Extensiones a Task
- El modelo de StarSs, una extensión de las arquitecturas superescalares a Tasks
- Un solo programa para diferentes arquitecturas (OmpSs)
- OmpSs Práctica:
- Se paralelizaran algoritmos de algebra lineal hacer las practicas, tanto en openMP como en OmpSs. Se utilizaran maquinas con memoria compartida y se harán ejecuciones sobre maquinas con GPGPUs.
- CILK Teoría:
- CILK, un modelo muy sencillo (basado en la recursión) y con muy buenas prestaciones.
- Las primitivas basicas: cilk, spawn, sync.
- El scheduler, los stacks.
- Operaciones avanzadas: inlet, abort.
- CILK Práctica:
- Se utilizarán los mismos algoritmos que para OmpSs.


