Computacion Paralela Vs2010

14
Programación Paralela Con Visual Studio 2010 y el .NET Framework 4 Gabriel Cor – Beacon42 [email protected] Andrés Iturralde – Ikom [email protected]

Transcript of Computacion Paralela Vs2010

Page 1: Computacion Paralela Vs2010

Programación Paralela

Con Visual Studio 2010 y el .NET Framework 4

Gabriel Cor – Beacon42 [email protected]és Iturralde – Ikom [email protected]

Page 2: Computacion Paralela Vs2010

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

Page 3: Computacion Paralela Vs2010

Ejemplo 1: Aplicación típica

Mayor facilidad para incorporar en aplicación típica

Page 4: Computacion Paralela Vs2010

Ejemplo 2: Aplicación paralela pre-existente

Construcciones mejores para prueba y debug

Page 5: Computacion Paralela Vs2010

Visual Studio 2010Herramientas / Modelos de Programación / Runtimes

Parallel Pattern Library

Resource Manager

Task Scheduler

Task Parallel Library

PLINQ

L. Manejadas L. NativaKey:

Hilos

Sistema Operativo

Runtime de Concurrencia

Modelos de Programación

Agents

Library

ThreadPool

Task Scheduler

Resource Manager

Data

Stru

cture

s

Data

Str

uct

ure

s

Herramientas Integradas

Herramientas

ParallelDebugger

Profiler Concurrenc

yAnalysis

Modelos de Programación

Runtime de Concurrencia

HPC MPIDebugger

Page 6: Computacion Paralela Vs2010

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

Page 7: Computacion Paralela Vs2010

DemoTask

Page 8: Computacion Paralela Vs2010

Planificador de Tareas

ThreadPrograma

Pool de Threads del CLR

PilaGlobal

Worker Thread 1

Worker Thread

N…

Page 9: Computacion Paralela Vs2010

Planificador de Tareas

Pool threads: Robando trabajos

Worker Thread 1

Worker Thread p

ThreadPrograma

PilaGlobal

PilaLocal

PilaLocal

Tarea 1Tarea 2

Tarea 3Tarea 5

Tarea 4

Tarea 6

Page 10: Computacion Paralela Vs2010

PLINQ

− Implementación paralela de LinQ-to-Objects

− Soporta todos los operadores de query estándar de .NET

− Funciona para cualquier IEnumerable<T>

Page 11: Computacion Paralela Vs2010

DemoPLINQ

Page 12: Computacion Paralela Vs2010

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

Page 13: Computacion Paralela Vs2010

Herramientas para debug en Visual Studio 2010 para programación paralela− Parallel Stack− Parallel Tasks− Ejemplos:

− Congelando Threads para debug− Error en Tareas agendadas− DeadLock− Lock Convoy

Page 14: Computacion Paralela Vs2010

Preguntas