Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,438 views

 

Statistics

Views

Total Views
1,438
Views on SlideShare
1,315
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