Computacion Paralela Vs2010

Post on 10-Jun-2015

1.039 views 5 download

Transcript of Computacion Paralela Vs2010

Programación Paralela

Con Visual Studio 2010 y el .NET Framework 4

Gabriel Cor – Beacon42 gabriel.cor@beacon42.comAndrés Iturralde – Ikom aiturralde@ikom.cl

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