并发运行时是 C++ 并发编程框架。并发运行时可简化并行编程,并帮助您编写可靠、可伸缩且具有响应能力的并行应用程序。并发运行时提高了抽象级别,因此您不必管理与并发相关的基础结构详细信息。利用并发运行时,还可以指定满足应用程序服务质量要求的计划策略。
并发运行时为同时运行的应用程序和应用程序组件提供了一致性和可预见性。协作任务计划和协作阻止是并发运行时优点的两个示例。
并发运行时使用协作任务计划程序实现工作窃取算法以在计算资源之间有效地分配工作。例如,假设应用程序具有两个线程,这两个线程均由同一运行时进行管理。如果一个线程完成了其计划任务,则它可以卸载其他线程的工作。此机制可平衡应用程序的总体工作负荷。
并发运行时还提供了使用协作阻止同步访问资源的同步基元。例如,假设任务必须以独占方式访问共享资源。通过以协作方式进行阻止,当第一个任务等待资源时,运行时可以使用剩余的量程执行另一个任务。此机制将提升计算资源的最大使用率。
体系结构
并发运行时分为以下四个组件:并行模式库 (PPL)、异步代理库、任务计划程序和资源管理器。这些组件驻留在操作系统和应用程序之间。下图演示了并发运行时组件在操作系统和应用程序中的交互方式:
并发运行时具有很好的可组合性,也就是说您可以组合现有功能来执行更多操作。并发运行时利用较低级别的组件来提供多种功能,如并行算法。
1)并行模式库
并行模式库 (PPL)