1. Programación Paralela Con Visual Studio 2010 y el .NET Framework 4 Gabriel Cor – Beacon42 gabriel.cor@beacon42.com Andrés Iturralde – Ikomaiturralde@ikom.cl
2. Por qué computación paralela en Visual Studio 2010 y el Framework 4 Necesidad de la industria Aprovechar el hardware Poder brindar mayor performance como hasta ahora Mayor Facilidad de creación de aplicaciones paralelas Mejores herramientas para prueba y debug de aplicaciones paralelas
4. Ejemplo 2: Aplicación paralela pre-existente Construcciones mejores para prueba y debug
5. Visual Studio 2010Herramientas / Modelos de Programación / Runtimes Modelos de Programación HerramientasIntegradas Modelos de Programación PLINQ Parallel Debugger Parallel Pattern Library Task Parallel Library Agents Library Profiler Concurrency Analysis Data Structures Runtime de Concurrencia Runtime de Concurrencia Data Structures Task Scheduler ThreadPool HPC MPI Debugger Task Scheduler Resource Manager Resource Manager SistemaOperativo Hilos Key: L. Manejadas L. Nativa Herramientas
6. Tasks Base de TPL y PLINQ ¿Que nos permite? Ejecución asíncrona (Bloqueando) Valores en competencia Relaciones padre /hijo Continuaciones en éxito, fallos o cancelaciones
8. Planificador de Tareas Pool de Threads del CLR Pila Global Worker Thread 1 Worker Thread N … Thread Programa
9. Planificador de Tareas Pool threads: Robandotrabajos Pila Local Pila Local Pila Global … Worker Thread 1 Worker Thread p … Tarea 6 Tarea 3 Tarea 4 Tarea 1 Thread Programa Tarea 5 Tarea 2
10. PLINQ Implementación paralela de LinQ-to-Objects Soporta todos los operadores de queryestándar de .NET FuncionaparacualquierIEnumerable<T>
12. Estructuras de coordinación Conjunto de clases para trabajar en ambiente multi-core Colecciones concurrentes Primitivos de sincronización Primitivos de inicialización Primitivos de cancelación
13. Herramientas para debug en Visual Studio 2010 para programación paralela ParallelStack ParallelTasks Ejemplos: Congelando Threads para debug Error en Tareas agendadas DeadLock Lock Convoy