Runtime de simultaneidad

 

Publicado: octubre de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

El runtime de simultaneidad de C++ ayuda a escribir aplicaciones paralelas sólidas, escalables y receptivas. Eleva el nivel de abstracción para que, de esta forma, no sea necesario administrar los detalles de infraestructura relacionados con la simultaneidad. También se puede usar para especificar directivas de programación que cumplan las demandas de calidad de servicio de las aplicaciones. Use estos recursos como ayuda para empezar a trabajar con el runtime de simultaneidad.

Para obtener documentación de referencia, consulte Referencia.

System_CAPS_ICON_tip.jpg Sugerencia

El runtime de simultaneidad se basa principalmente en las características C++11 y adopta el estilo más moderno de C++. Para obtener más información, lea Aquí está otra vez C++.

Información generalLe enseña por qué el runtime de simultaneidad es importante y describe sus características clave.
Comparar con otros modelos de simultaneidadCompara el runtime de simultaneidad con otros modelos de simultaneidad, como el grupo de subprocesos de Windows y OpenMP, para que pueda usar el modelo de simultaneidad que mejor se ajuste a los requisitos de la aplicación.
Migrar de OpenMP al Runtime de simultaneidadCompara OpenMP con el runtime de simultaneidad y proporciona ejemplos sobre cómo migrar el código existente de OpenMP para usar el runtime de simultaneidad.
Parallel Patterns Library (PPL)Presenta el PPL, que proporciona bucles, tareas y contenedores paralelos.
Biblioteca de agentes asincrónicosLe explica cómo usar los agentes asincrónicos y el paso de mensajes para incorporar fácilmente las tareas de flujo de datos y canalización a las aplicaciones.
Programador de tareasPresenta el Programador de tareas, que le permite ajustar el rendimiento de las aplicaciones de escritorio que usa el runtime de simultaneidad.
Paralelismo de tareas

 Cómo: Usar parallel.invoke para escribir una rutina de ordenación en paralelo

 Cómo: Usar parallel.invoke para ejecutar operaciones paralelas

 Cómo: Crear una tarea que se complete después de un retardo
Describe las tareas y los grupos de tareas, que le pueden ayudar a escribir código asincrónico y a descomponer el trabajo paralelo en partes más pequeñas.
Tutorial: Implementar futurosMuestra cómo combinar las características del runtime de simultaneidad para llevar a cabo más tareas.
Tutorial: Quitar trabajo de un subproceso de la interfaz de usuarioMuestra cómo mover el trabajo realizado por el subproceso de interfaz de usuario en una aplicación MFC a un subproceso de trabajo.
Procedimientos recomendados en la biblioteca de modelos paralelos

 Procedimientos recomendados generales con el Runtime de simultaneidad
Proporciona sugerencias y prácticas recomendadas para trabajar con el PPL.
Algoritmos paralelos

 Cómo: Escribir un bucle parallel_for

 Cómo: Escribir un bucle parallel_for_each

 Cómo: Realizar operaciones de asignación y reducción en paralelo
Describe parallel_for, parallel_for_each, parallel_invoke y otros algoritmos paralelos. Use algoritmos paralelos para solucionar problemas de datos en paralelo que impliquen colecciones de datos.
Contenedores y objetos paralelos

 Cómo: Usar contenedores paralelos para aumentar la eficacia

 Cómo: Usar la clase combinable para mejorar el rendimiento

 Cómo: Usar la clase combinable para combinar conjuntos
Describe la clase combinable, así como concurrent_vector, concurrent_queue, concurrent_unordered_map y otros contenedores paralelos. Use contenedores y objetos paralelos cuando necesite contenedores que proporcionen acceso seguro para subprocesos a sus elementos.
Procedimientos recomendados en la biblioteca de modelos paralelos

 Procedimientos recomendados generales con el Runtime de simultaneidad
Proporciona sugerencias y prácticas recomendadas para trabajar con el PPL.
CancelaciónDescribe el rol de cancelación en PPL, incluyendo cómo iniciar y responder a las solicitudes de cancelación.
Cómo: Usar la cancelación para interrumpir un bucle Parallel

 Cómo: Usar el control de excepciones para interrumpir un bucle Parallel
Muestra dos mecanismos para cancelar el trabajo de datos en paralelo.
Crear operaciones asincrónicas en C++ para aplicaciones de la Tienda WindowsDescribe algunos de los puntos clave para tener en cuenta cuando se usa el runtime de simultaneidad para generar operaciones asincrónicas en una aplicación de la Tienda Windows 8.x.
Tutorial: Conectar usando tareas y solicitudes HTTP XMLMuestra cómo combinar tareas PPL con interfaces IXMLHTTPRequest2 y IXMLHTTPRequest2Callback para enviar solicitudes HTTP GET y POST a un servicio web en una aplicación de la Tienda Windows 8.x.
Ejemplos de aplicación de la Tienda WindowsContiene ejemplos de código descargables y aplicaciones de demostración para Windows 8. Los ejemplos de C++ usan características del runtime de simultaneidad, como tareas PPL, para procesar datos en segundo plano con objeto de que la UX siga respondiendo.
Agentes asincrónicos

 Bloques de mensajes asincrónicos

 Funciones que pasan mensajes

 Cómo: Implementar varios modelos productor-consumidor

 Cómo: Proporcionar funciones de trabajo a las clases call y transformer

 Cómo: Usar la clase transformer en una canalización de datos

 Cómo: Seleccionar tareas completadas

 Cómo: Enviar un mensaje a intervalos periódicos

 Cómo: Utilizar un filtro de bloque de mensaje
Describe los agentes asincrónicos, los bloques de mensajes, y las funciones de paso de mensajes, que son los bloques de creación para realizar operaciones de flujo de datos en el runtime de simultaneidad.
Tutorial: Crear una aplicación basada en agente

 Tutorial: Crear un agente de flujo de datos
Muestra cómo crear aplicaciones básicas basadas en un agente.
Tutorial: Crear una red de procesamiento de imagenMuestra cómo crear una red de bloques de mensajes asincrónicos que realizan el procesamiento de imágenes.
Tutorial: Usar la clase join para evitar un interbloqueoUsa el problema de la cena de los filósofos para ilustrar cómo se usa el runtime de simultaneidad para evitar el interbloqueo en la aplicación.
Tutorial: Crear un bloque de mensajes personalizadoMuestra cómo crear un tipo de bloque de mensajes personalizado que ordena los mensajes entrantes por prioridad.
Procedimientos recomendados en la biblioteca de agentes asincrónicos

 Procedimientos recomendados generales con el Runtime de simultaneidad
Proporciona sugerencias y prácticas recomendadas para trabajar con agentes.
Control de excepcionesDescribe cómo trabajar con excepciones en el runtime de simultaneidad.
Herramientas de diagnóstico paraleloLe enseña cómo ajustar las aplicaciones y hacer un uso más eficaz del runtime de simultaneidad.
Herramientas de diagnóstico paraleloLe enseña cómo ajustar las aplicaciones y hacer un uso más eficaz del runtime de simultaneidad.
Instancias del programador

 Cómo: Administrar una instancia del programador

 Directivas del programador

 Cómo: Especificar directivas de programador concretas

 Cómo: Crear agentes que usen directivas de programador específicas
Muestra cómo administrar las instancias y las directivas de programador. En las aplicaciones de escritorio, las directivas de programador le permiten asociar reglas específicas con tipos concretos de cargas de trabajo. Por ejemplo, puede crear una instancia de programador para ejecutar algunas tareas con una prioridad elevada de subproceso y usar el programador predeterminado para ejecutar con otras tareas con la prioridad normal de subproceso.
Grupos de programación

 Cómo: Usar grupos de programación para influir en el orden de ejecución
Muestra cómo usar los grupos de programación para establecer afinidades entre las tareas relacionadas y agruparlas. Por ejemplo, es posible que necesite un alto grado de emplazamiento entre tareas relacionadas cuando estas tareas se benefician de ejecutarse en el mismo nodo del procesador.
Tareas ligerasExplica cómo se pueden usar las tareas ligeras para crear trabajo que no requiere equilibrio de carga ni cancelación, y cómo resultan útiles para adaptar el código existente para su uso con el runtime de simultaneidad.
Contextos

 Cómo: Usar la clase Context para implementar un semáforo cooperativo

 Cómo: Usar la suscripción excesiva para compensar la latencia
Describe cómo controlar el comportamiento de los subprocesos que administra el runtime de simultaneidad.
Funciones de administración de memoria

 Cómo: Usar Alloc y Free para mejorar el rendimiento de la memoria
Describe las funciones de administración de memoria que el runtime de simultaneidad proporciona para ayudarle a asignar y liberar memoria de manera simultánea.
Patrones y sugerencias de programación Async en Hilo (aplicaciones de la Tienda Windows que usan C++ y XAML)Obtenga información sobre el uso del runtime de simultaneidad para implementar operaciones asincrónicas en Hilo, una aplicación de la Tienda Windows 8.x que usa C++ y XAML.
Ejemplos de código para el Runtime de simultaneidad y la biblioteca de patrones de procesamiento paralelo en Visual Studio 2010Proporciona aplicaciones de ejemplo y utilidades que muestran el uso del runtime de simultaneidad.
Blog de programación en paralelo en código nativoProporciona artículos de blog detallados adicionales sobre la programación paralela en el runtime de simultaneidad.
Foro de informática en paralelo en C++ y código nativoLe permite participar en los debates de la comunidad sobre el runtime de simultaneidad.
Parallel ProgrammingLe enseña el modelo de programación paralelo que está disponible en .NET Framework.

Referencia

Mostrar: