函数级并行中的访存管理与调度优化
随着多核体系结构的发展,利用并行化提升应用程序性能已成为未来的发展趋势。为降低并行应用程序的编写难度以及提高计算资源使用效率,函数级并行编程模型已被广泛应用于生产实践中。
现实中重要的并行计算问题往往属于非结构化并行应用程序,对于这类应用程序,传统函数级并行编程模型实现中的控制流限制会在程序中引入隐式的人为延迟。另外为保证负载均衡,函数级并行编程模型中往往使用随机任务窃取调度算法对任务进行调度,在多核体系结构中其随机性不能充分利用应用程序中的数据局部性,导致性能损失。
任务依赖图编程模型用于解决非结构化并行应用程序中的性能瓶颈。一方面,模型为用户提供接口将并行应用程序直接构建为一张由任务节点和依赖边组成的有向无环图,程序中的任务不受程序控制流限制,而直接由任务间依赖关系驱动进行调度,从而一定程度上使任务能够提前执行,充分利用计算资源、减少执行时间。
另一方面,模型底层运行时系统使用任务窃取调度算法保证负载均衡,同时利用目标机器上的硬件拓扑结构,对试图窃取任务的线程施加亲缘性偏好,优先选取亲缘性较高的线程进行窃取,从而减少不必要的缓存缺失。在函数级并行编 ...


雷达卡


京公网安备 11010802022788号







