• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán
 

Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán

on

  • 1,375 views

 

Statistics

Views

Total Views
1,375
Views on SlideShare
1,252
Embed Views
123

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 123

http://aiturralde.com 123

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán Presentation Transcript

    • Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán
      Andrés Iturralde
      Consultor Senior
      aiturralde@ikom.cl
      http://aiturralde.com
    • ¿Porqué debería importarme el paralelismo?
      Los computadores están cambiando
      La ley de Moore está tomando un giro importante
      Tecnologías SMP y MultiCore
      Los usuarios están cambiando
      Esperan aplicaciones rápidas y responsivas
      CPU
      CPU
      CPU
      Core
      Core
      Memoria
      Memoria
    • ¿A qué se refería Moore?
      Dual-Core Itanium 2
      Tendencias de CPU’s Intel
      (Fuentes: Intel, Wikipedia, K. Olukotun)
      Pentium 4
      Pentium
      386
    • ¿Qué debo hacer para esto?
      Paralelizar!
      Thread B
      Thread A
      Thread C
      QuantumExpirado
      Acceso a Memoria
      Operación
      I/O
      “Estado Wait”
    • DEMO
    • Como nos ayuda el paralelismo
      CPU1
      Secuencial
      Op1
      Op2
      Op5
      Op3
      Op4
      CPU1
      Paralela
      CPU2
      CPU3
      CPU4
      Tiempo
    • DEMO
    • Estoy convencido… ¿ahora qué?
      Programación en multiples hiloses “dificil” hoy
      Realizable porciertossubgrupos de especialistas senior
      Patronesparalelos no son frecuentes, bienconocidos, nifáciles de implementar
      Muchosproblemaspotenciales
      Las empresastienenpocosdeseos de ir “hacia la médula” del asunto
      Los mejoresdesarrolladoresdebenenfocarse en valor de negocio, no en concurrencia
      Se necesitan simples maneras de permitir a todos los desarrolladoresescribircódigoconcurrente
    • Soporte de paralelismo en .NET 4 y VS2010
      Herramientas
      Runtime ConcurrenciaManejada y Modelos de Programación
      Visual Studio IDE
      .NET Framework 4
      Parallel LINQ
      Parallel Debugger
      Task Parallel Library
      Concurrent Collections
      Task Scheduler
      Concurrency Visualizer
      Sync Primitives
      Thread Pool
      CLR
    • Extensiones Paralelas
      Nuevas API’s de paralelismos en .NET 4
      Loops Paralelos
      Parallel LINQ
      Paralelismo fino (basado en Tareas)
      Nuevos primitivos de sincronización y colecciones concurrentes
      Mejoras en el ThreadPool
    • Metas del TPL
      Hacer el paralelismo Simple
      Implementando escenarios comunes
      Pasando data de entrada y de salida de las operaciones paralelas
      Manejando errores en operaciones paralelas
      Interrumpiendo trabajos en progreso
      Haciendo el paralelismo Eficiente
      Robando trabajos y tamaño variable de pedazos de trabajos
      Auto ajustando el tamaño del ThreadPool para soportar cargas variables
      Reduciendo gastos generales para el trabajo paralelo
      Dando a los desarrolladores Control, si así lo desean
      Opciones de creación y continuidad
      Agendamiento de tareas fuera del ThreadPool
    • ¿Qué es una Tarea?
      Representación de una operación asíncrona
      Bloque ligero de paralelismo
      Una forma de obtener un valor (o error) que existirá en el futuro
      Un consistente set de abstracciones sobre el cual programar
      Una manera sencilla de utilizar el ThreadPool para paralelismo
      Eficiente para paralelismo «rápido»
      También eficiente para actividades de larga duración
    • DEMO
    • Tareas y Colas
      Cola Global
      Colas Locales
      Worker Thread #1
      Worker Thread #2
      Worker Thread #n
      Task #3
      Task #4
      Task #5
      Thread App.
      Task #1
      Task #2
    • DEMO
    • Recursos
      Visual Studio 2010
      http://www.microsoft.com/visualstudio/en-us/download
      Guía para programación paralela
      http://parallelpatterns.codeplex.com/
      ParallelProgrammingwith .NET
      http://blogs.msdn.com/b/pfxteam/
      Blog Andrés Iturralde
      http://aiturralde.com