Herramientas Personales
Usted está aquí: Inicio Agenda Curso intensivo Paralelismo "no tan estándard "

Curso intensivo Paralelismo "no tan estándard "

— archivado en:

Qué
  • Curso Intesivo
Cuándo 23/05/2011 13:00 a
27/05/2011 17:00
Dónde Laboratorios 4 y 5
Agregar evento al calendario vCal
iCal

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.