SlideShare ist ein Scribd-Unternehmen logo
1 von 18
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
Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán

Weitere ähnliche Inhalte

Andere mochten auch

CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010Comunidad SharePoint
 
SharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresAndrés Iturralde
 
Introducción a web matrix
Introducción a web matrixIntroducción a web matrix
Introducción a web matrixMICTT Palma
 
SharePoint 2010 desarrollo de aplicaciones
SharePoint 2010 desarrollo de aplicacionesSharePoint 2010 desarrollo de aplicaciones
SharePoint 2010 desarrollo de aplicacionesVic Frank
 
Sharepoint 2010. Novedades y Mejoras.
Sharepoint 2010. Novedades y Mejoras.Sharepoint 2010. Novedades y Mejoras.
Sharepoint 2010. Novedades y Mejoras.MICTT Palma
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Juan Pablo
 

Andere mochten auch (7)

CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010CSA - Web Parts en SharePoint 2010
CSA - Web Parts en SharePoint 2010
 
SharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para DesarrolladoresSharePoint 2010 Introducción para Desarrolladores
SharePoint 2010 Introducción para Desarrolladores
 
Introducción a web matrix
Introducción a web matrixIntroducción a web matrix
Introducción a web matrix
 
SharePoint 2010 desarrollo de aplicaciones
SharePoint 2010 desarrollo de aplicacionesSharePoint 2010 desarrollo de aplicaciones
SharePoint 2010 desarrollo de aplicaciones
 
Sharepoint 2010. Novedades y Mejoras.
Sharepoint 2010. Novedades y Mejoras.Sharepoint 2010. Novedades y Mejoras.
Sharepoint 2010. Novedades y Mejoras.
 
Personalizacion sharepoint2010
Personalizacion sharepoint2010Personalizacion sharepoint2010
Personalizacion sharepoint2010
 
Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010Exprimiendo SharePoint 2010
Exprimiendo SharePoint 2010
 

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

Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSebastian Gonzalez
 
News40 Parallel Computing
News40 Parallel ComputingNews40 Parallel Computing
News40 Parallel ComputingLluis Franco
 
Task Parallel Library 2014
Task Parallel Library 2014Task Parallel Library 2014
Task Parallel Library 2014Lluis Franco
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxyadhirafelizfajardo
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...Plain Concepts
 
arquitectura del computador
arquitectura del computador arquitectura del computador
arquitectura del computador baryruiz
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxemilioSanchez89
 
Rendimiento de diferentes Arquitecturas de Computadoras
Rendimiento de diferentes Arquitecturas de ComputadorasRendimiento de diferentes Arquitecturas de Computadoras
Rendimiento de diferentes Arquitecturas de ComputadorasRavl Salazar Flores
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Marco Antonio Ordoñez Valverde
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...SolidQ
 

Ähnlich wie Como hacer que tus aplicaciones saquen mejor provecho a los procesadores disponibles hoy y a los que vendrán (20)

Segundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corteSegundo blog arquitectura de hardware tercer corte
Segundo blog arquitectura de hardware tercer corte
 
News40 Parallel Computing
News40 Parallel ComputingNews40 Parallel Computing
News40 Parallel Computing
 
Task Parallel Library 2014
Task Parallel Library 2014Task Parallel Library 2014
Task Parallel Library 2014
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Introducción a la Computacion paralela
Introducción a la Computacion paralelaIntroducción a la Computacion paralela
Introducción a la Computacion paralela
 
Cpu
CpuCpu
Cpu
 
Cpu
CpuCpu
Cpu
 
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
DotNet 2019 | Pablo Santos Luaces - Como migrar un producto multiplataforma a...
 
arquitectura del computador
arquitectura del computador arquitectura del computador
arquitectura del computador
 
Diseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptxDiseño de Algoritmos Paralelos.pptx
Diseño de Algoritmos Paralelos.pptx
 
Curso MATLAB
Curso MATLABCurso MATLAB
Curso MATLAB
 
Rendimiento de diferentes Arquitecturas de Computadoras
Rendimiento de diferentes Arquitecturas de ComputadorasRendimiento de diferentes Arquitecturas de Computadoras
Rendimiento de diferentes Arquitecturas de Computadoras
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
EL COMPUTADOR
EL COMPUTADOREL COMPUTADOR
EL COMPUTADOR
 
EL COMPUTADOR
EL COMPUTADOREL COMPUTADOR
EL COMPUTADOR
 
computación paralela
computación paralelacomputación paralela
computación paralela
 
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
Monitorizando y optimizando problemas de paralelismo en SQL Server | SolidQ S...
 
El computador
El computadorEl computador
El computador
 
Computador
ComputadorComputador
Computador
 

Mehr von Andrés Iturralde

Msdn optimizando la performance en la web
Msdn   optimizando la performance en la webMsdn   optimizando la performance en la web
Msdn optimizando la performance en la webAndrés Iturralde
 
SharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresSharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresAndrés Iturralde
 
Maraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresMaraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresAndrés Iturralde
 
Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Andrés Iturralde
 
Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Andrés Iturralde
 
Sharepoint server 2010 - La nueva colaboración
Sharepoint server 2010  - La nueva colaboraciónSharepoint server 2010  - La nueva colaboración
Sharepoint server 2010 - La nueva colaboraciónAndrés Iturralde
 
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Andrés Iturralde
 
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Andrés Iturralde
 
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Andrés Iturralde
 
SharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresSharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresAndrés Iturralde
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Andrés Iturralde
 
SharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelSharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelAndrés Iturralde
 

Mehr von Andrés Iturralde (15)

Msdn optimizando la performance en la web
Msdn   optimizando la performance en la webMsdn   optimizando la performance en la web
Msdn optimizando la performance en la web
 
SharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para DesarrolladoresSharePoint 2010 - Introducción para Desarrolladores
SharePoint 2010 - Introducción para Desarrolladores
 
Maraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladoresMaraton SharePoint 2010, nuevas características para desarrolladores
Maraton SharePoint 2010, nuevas características para desarrolladores
 
Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010Hasta donde vas a llegar con SharePoint 2010
Hasta donde vas a llegar con SharePoint 2010
 
Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010Una mirada en 360° a SharePoint 2010
Una mirada en 360° a SharePoint 2010
 
Sharepoint server 2010 - La nueva colaboración
Sharepoint server 2010  - La nueva colaboraciónSharepoint server 2010  - La nueva colaboración
Sharepoint server 2010 - La nueva colaboración
 
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
Esto es todo sobre los servicios Desarrollo de Aplicaciones Personalizadas pa...
 
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
Bajo el Toldo con la Programabilidad de Microsoft SharePoint 2010
 
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
Cómo desarrollar aplicaciones súper innovadoras que incorporen videoconferenc...
 
SharePoint 2007 Para Desarrolladores
SharePoint 2007 Para DesarrolladoresSharePoint 2007 Para Desarrolladores
SharePoint 2007 Para Desarrolladores
 
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8Potencia Tu Sitio Web De La Mano De Internet Explorer 8
Potencia Tu Sitio Web De La Mano De Internet Explorer 8
 
SharePoint 2010 Client Object Model
SharePoint 2010 Client Object ModelSharePoint 2010 Client Object Model
SharePoint 2010 Client Object Model
 
Windows 7 Gadget
Windows 7 GadgetWindows 7 Gadget
Windows 7 Gadget
 
Computacion Paralela Vs2010
Computacion Paralela Vs2010Computacion Paralela Vs2010
Computacion Paralela Vs2010
 
Charla Desarrollo Ocs
Charla Desarrollo OcsCharla Desarrollo Ocs
Charla Desarrollo Ocs
 

Kürzlich hochgeladen

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Kürzlich hochgeladen (10)

Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

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

  • 1.
  • 2. 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
  • 3. ¿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
  • 4. ¿A qué se refería Moore? Dual-Core Itanium 2 Tendencias de CPU’s Intel (Fuentes: Intel, Wikipedia, K. Olukotun) Pentium 4 Pentium 386
  • 5. ¿Qué debo hacer para esto? Paralelizar! Thread B Thread A Thread C QuantumExpirado Acceso a Memoria Operación I/O “Estado Wait”
  • 7. Como nos ayuda el paralelismo CPU1 Secuencial Op1 Op2 Op5 Op3 Op4 CPU1 Paralela CPU2 CPU3 CPU4 Tiempo
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. ¿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
  • 14. DEMO
  • 15. 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
  • 16. DEMO
  • 17. 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