La biblioteca de patrones paralelos es una biblioteca de Microsoft diseñada para que la utilicen los desarrolladores nativos de C++ y que proporciona funciones para la programación multinúcleo . [1] Se incluyó por primera vez en Visual Studio 2010. Se parece a la biblioteca estándar de C++ en estilo y funciona bien con la característica del lenguaje C++11, lambdas, también introducida con Visual Studio 2010 .
Por ejemplo, este bucle secuencial:
para ( int x = 0 ; x < ancho ; ++ x ) { // Algo paralelizable }
Se puede convertir en un bucle paralelo reemplazando el for por un parallel_for
:
#include <ppl.h> // . . . Concurrencia :: parallel_for ( 0 , width , [ = ]( int x ) { // Algo paralelizable });
Esto aún requiere que el desarrollador sepa que el bucle es paralelizable, pero todo el resto del trabajo lo realiza la biblioteca.
MSDN [2] describe la biblioteca de patrones paralelos como un "modelo de programación imperativo que promueve la escalabilidad y la facilidad de uso para desarrollar aplicaciones concurrentes". Utiliza el entorno de ejecución de concurrencia para la programación y la gestión de recursos y proporciona algoritmos y contenedores genéricos y seguros para su uso en aplicaciones paralelas.