Programación ParalelaCon Visual Studio 2010 y el .NET Framework 4Gabriel Cor – Beacon42   gabriel.cor@beacon42.comAndrés Iturralde – Ikomaiturralde@ikom.cl
Por qué computación paralela en Visual Studio 2010 y el Framework 4Necesidad de la industriaAprovechar el hardwarePoder brindar mayor performance como hasta ahoraMayor Facilidad de creación de aplicaciones paralelasMejores 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-existenteConstrucciones mejores para prueba y debug
Visual Studio 2010Herramientas / Modelos de Programación / RuntimesModelos de ProgramaciónHerramientasIntegradasModelos de ProgramaciónPLINQParallelDebuggerParallel Pattern LibraryTask Parallel LibraryAgentsLibraryProfiler ConcurrencyAnalysisData StructuresRuntime de ConcurrenciaRuntime de ConcurrenciaData StructuresTask SchedulerThreadPoolHPC MPIDebuggerTask SchedulerResource ManagerResource ManagerSistemaOperativoHilosKey:L. ManejadasL. NativaHerramientas
TasksBase de TPL y PLINQ¿Que nos permite?Ejecución asíncrona(Bloqueando) Valores  en competenciaRelaciones padre /hijoContinuaciones en éxito, fallos o cancelaciones
DemoTask
Planificador de TareasPool de Threads del CLRPilaGlobalWorker Thread 1Worker Thread  N…ThreadPrograma
Planificador de TareasPool threads: RobandotrabajosPilaLocalPilaLocalPilaGlobal…Worker Thread 1Worker Thread p…Tarea 6Tarea 3Tarea 4Tarea 1ThreadProgramaTarea 5Tarea 2
PLINQImplementación paralela de LinQ-to-ObjectsSoporta todos los operadores de queryestándar de .NETFuncionaparacualquierIEnumerable<T>
DemoPLINQ
Estructuras de coordinaciónConjunto de clases para trabajar en ambiente multi-coreColecciones concurrentesPrimitivos de sincronizaciónPrimitivos de inicializaciónPrimitivos de cancelación
Herramientas para debug en Visual Studio 2010 para programación paralelaParallelStackParallelTasksEjemplos:Congelando Threads para debugError en Tareas agendadasDeadLockLock Convoy
Preguntas

Computacion Paralela Vs2010

  • 1.
    Programación ParalelaCon VisualStudio 2010 y el .NET Framework 4Gabriel Cor – Beacon42 gabriel.cor@beacon42.comAndrés Iturralde – Ikomaiturralde@ikom.cl
  • 2.
    Por qué computaciónparalela en Visual Studio 2010 y el Framework 4Necesidad de la industriaAprovechar el hardwarePoder brindar mayor performance como hasta ahoraMayor Facilidad de creación de aplicaciones paralelasMejores herramientas para prueba y debug de aplicaciones paralelas
  • 3.
    Ejemplo 1: Aplicacióntípica Mayor facilidad para incorporar en aplicación típica
  • 4.
    Ejemplo 2: Aplicaciónparalela pre-existenteConstrucciones mejores para prueba y debug
  • 5.
    Visual Studio 2010Herramientas/ Modelos de Programación / RuntimesModelos de ProgramaciónHerramientasIntegradasModelos de ProgramaciónPLINQParallelDebuggerParallel Pattern LibraryTask Parallel LibraryAgentsLibraryProfiler ConcurrencyAnalysisData StructuresRuntime de ConcurrenciaRuntime de ConcurrenciaData StructuresTask SchedulerThreadPoolHPC MPIDebuggerTask SchedulerResource ManagerResource ManagerSistemaOperativoHilosKey:L. ManejadasL. NativaHerramientas
  • 6.
    TasksBase de TPLy PLINQ¿Que nos permite?Ejecución asíncrona(Bloqueando) Valores en competenciaRelaciones padre /hijoContinuaciones en éxito, fallos o cancelaciones
  • 7.
  • 8.
    Planificador de TareasPoolde Threads del CLRPilaGlobalWorker Thread 1Worker Thread N…ThreadPrograma
  • 9.
    Planificador de TareasPoolthreads: RobandotrabajosPilaLocalPilaLocalPilaGlobal…Worker Thread 1Worker Thread p…Tarea 6Tarea 3Tarea 4Tarea 1ThreadProgramaTarea 5Tarea 2
  • 10.
    PLINQImplementación paralela deLinQ-to-ObjectsSoporta todos los operadores de queryestándar de .NETFuncionaparacualquierIEnumerable<T>
  • 11.
  • 12.
    Estructuras de coordinaciónConjuntode clases para trabajar en ambiente multi-coreColecciones concurrentesPrimitivos de sincronizaciónPrimitivos de inicializaciónPrimitivos de cancelación
  • 13.
    Herramientas para debugen Visual Studio 2010 para programación paralelaParallelStackParallelTasksEjemplos:Congelando Threads para debugError en Tareas agendadasDeadLockLock Convoy
  • 14.