Upload
andres-iturralde
View
1.040
Download
5
Embed Size (px)
Citation preview
Programación Paralela
Con Visual Studio 2010 y el .NET Framework 4
Gabriel Cor – Beacon42 [email protected]és Iturralde – Ikom [email protected]
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
Ejemplo 1: Aplicación típica
Mayor facilidad para incorporar en aplicación típica
Ejemplo 2: Aplicación paralela pre-existente
Construcciones mejores para prueba y debug
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
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
DemoTask
Planificador de Tareas
ThreadPrograma
Pool de Threads del CLR
PilaGlobal
Worker Thread 1
Worker Thread
N…
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
PLINQ
− Implementación paralela de LinQ-to-Objects
− Soporta todos los operadores de query estándar de .NET
− Funciona para cualquier IEnumerable<T>
DemoPLINQ
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
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
Preguntas