Haciendo la concurrencia fácil:
Microsoft Parallel Pattern Library
Luis Guerrero
Technical Evangelist Windows Azure
[email protected]
@guerrerotook
Agenda
¿Por qué es importante la concurrencia?
Visual Studio al rescate
Microsoft Parallel Pattern Library (PPL)
Cada año hay procesadores más potentes




Transitors
Clock Speed (MHz)
Power (W)
Perf/Clock (ILP)
4
4
1
2
8
8
3
4
16
16
5
6
32
32
7
8
¿Para cuantos Threads HW programas?
512
Series3
Series2
256
Series1
256
128
4
0
4
0
8
0
8
0
32
16
1
2
3
4
5
128
64
64
32
32
32
6
7
8
Visual Studio 2013
Tools
Programming models
PLINQ
Parallel Pattern
library
Data structures
Task Parallel
library
Concurrency runtime
Thread pool
Profiler
concurrency
analysis
Data structures
Parallel
Debugger
Toolwindows
Task scheduler
Task scheduler
Resource manager
Resource manager
Operating system
Threads
Key:
Managed library
Agents
library
Native library
Tools
Concurrent visualizer
Es una herramienta que nos
permite analizar el
comportamiento de nuestra
aplicación desde un punto de
vista de concurrencia.
¿En qué consiste PPL?
Es una librería para programadores de C++ que
permite trabajar con el paradigma de la concurrencia
de una manera más fácil y cómoda.
•
•
•
Paralelismo con Task: permite ejecutar unidades de trabajo de
manera paralela.
Algoritmos paralelos que actúan sobre colecciones de elementos.
Contenedores de datos con soporte para el paralelismo.
Paralelismo de tareas
Una tarea es unidad de trabajo que realiza un trabjo
especifico y normalmente se ejecuta de manera
concurrente con otras tareas.
Las tareas se pueden agrupar sobre grupos para
controlar como se ejecutan y se cancelan tareas.
¿Cómo se crean las Tasks?
La mejor manera es utiliza una expresión lambda.
Llamando a la función
create_task donde se especifica
el parámetro y donde se
devuelve el resultado.
Continuando tareas
Cuando se realizan operaciones asíncronas, es muy
común continuar una operación con otra. Es por eso
que las tareas se pueden concatenar usando .then()
De esta manera el resultado de la tarea anterior se
envía con la siguiente para evitar problemas con el
acceso concurrente a datos en memoria.
Otras operaciones con Tareas
concurrency::when_all
concurrency::when_any
Algoritmos paralelos
Para facilitar la programación paralela, además PPL
dispone de estos algoritmos paralelos.
•
•
•
•
•
•
parallel_for
parallel_for_each
parallel_invoke
parallel_transform
parallel_sort
parallel_buffered_sort
Estructuras de datos paralelas
•
•
•
•
•
•
concurrent_vector
concurrent_queue
concurrent_unordered_map
concurrent_unordered_multimap
concurrent_unordered_set
concurrent_unordered_multiset
Campañas Activas
para Desarrolladores
I APP YOU!
¿Qué es?
Una competición para desarrolladores:
• Desarrolla y publica Apps para Windows 8 y Windows Phone
• Consigue descargas y Ratings
• ¡Cuantas más Apps publiques mensualmente, más opciones
tienes de ganar!
Premios
Mensuales:
1º Premio: Xbox One
2º Premio: Surface RT 32 GB + Teclado
3º Premio: Nokia Lumia 925
¿Cómo participo?
Regístrate en la web de la campaña
www.apps4fun.es
Desde el 21 de octubre hasta el 30 de mayo de 2014
Además, se sorteará un Nokia Lumia entre
todos los participantes al final de la promoción
Reto GameDev
¿Qué es?
Una competición para desarrolladores:
• Migra tus Juegos a Windows Phone y Windows 8
• Publicalos en la Store, consigue descargas y ratings
• ¡Gana premios! Cuantos más juegos migres, más
oportunidades tienes de ganar
Premios
1º Premio: Xbox One
2º Premio: Surface RT 32 GB + Teclado
3º Premio: Nokia Lumia 925
¿Cómo participo?
Regístrate en la web de la campaña
www.apps4fun.es
Desde el 21 de octubre hasta el 15 de diciembre de 2013
Además, se sorteará un Nokia Lumia entre
todos los participantes al final de la promoción
MSDN te invita al Cine
¿Qué es?
Una competición abierta a todas aquellas personas que tengan
Windows 8 o Windows Phone y tengan ganas de descargar y
conocer nuevas apps:
•
•
•
Descarga Apps del listado que aparece en la web en cada reto
Envíanos una captura de pantalla de tu escritorio Windows 8 o
Windows Phone con los tiles de las Apps a
[email protected]
Los 50 primeros que consigan el reto conseguirán una entrada de
cine doble
¿Cómo participo?
Regístrate en la web de la campaña
aka.ms/Smnyz0
Desde el 24 de octubre hasta el 15 de diciembre de 2013
Premios
Una entrada doble a canjear en cualquier
establecimiento de la cadena CINESA para los 50
primeros que superen el reto cada jueves.
OlimpiadApps University
¿Qué es?
Una competición para estudiantes de todas las universidades de
España
• Crea tu equipo
• Desarrolla y publica Apps para Windows 8 y Windows Phone
• Consigue descargas y Ratings y gana premios
• Cuantas más Apps superen los requisitos, más opciones de
ganar el premio mensual
Premios
Mensuales:
1º Premio: Surface RT 32 GB + Teclado
2º Premio: Auriculares Bluetooth
3º Premio: Mochila Especial PC
¿Cómo participo?
Regístrate en la web de la campaña
www.apps4fun.es
Desde el 21 de octubre hasta el 30 de mayo de 2014
¡Y un Aula Microsoft valorada en 15.000€ para
la Universidad que consiga más Apps al final de
la Promoción!
Descargar

Agenda