Your SlideShare is downloading. ×
0
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
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
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
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
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
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
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
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
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
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

1,043

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,043
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×