论文标题
基于任务的编程模型的分布式管理器的异步运行时间
Asynchronous Runtime with Distributed Manager for Task-based Programming Models
论文作者
论文摘要
基于任务的编程模型(例如OpenMP)允许应用程序开发人员轻松创建其顺序代码的并行版本。标准OpenMP 4.0引入了描述运行时用来订购任务执行的每个任务的一组数据依赖的可能性。该顺序是使用共享图计算得出的,这些图形通过使用同步机制(锁定)在独家访问中的所有线程进行更新,以确保依赖管理正确性。在多核系统中,访问这些结构的争论变得至关重要,因为几个线程可能正在浪费计算资源等待它们。 本文提出了对运行时结构的异步管理,例如任务依赖图,适用于基于任务的编程模型运行时间。在这样的组织中,线程请求操作到运行时,而不是直接执行操作。然后,请求由分布式运行时管理器(DDAST)处理,该管理时间管理器(DDAST)不需要专用资源。相反,管理器使用空闲线程修改运行时结构。本文还介绍了此类运行时组织的实施,分析和绩效评估。性能结果表明,所提出的异步组织在不同基准和不同的多核体系结构上的原始运行时获得的加速度优于原始运行时获得的加速。
Parallel task-based programming models, like OpenMP, allow application developers to easily create a parallel version of their sequential codes. The standard OpenMP 4.0 introduced the possibility of describing a set of data dependences per task that the runtime uses to order the tasks execution. This order is calculated using shared graphs, which are updated by all threads in exclusive access using synchronization mechanisms (locks) to ensure the dependence management correctness. The contention in the access to these structures becomes critical in many-core systems because several threads may be wasting computation resources waiting their turn. This paper proposes an asynchronous management of the runtime structures, like task dependence graphs, suitable for task-based programming model runtimes. In such organization, the threads request actions to the runtime instead of doing them directly. The requests are then handled by a distributed runtime manager (DDAST) which does not require dedicated resources. Instead, the manager uses the idle threads to modify the runtime structures. The paper also presents an implementation, analysis and performance evaluation of such runtime organization. The performance results show that the proposed asynchronous organization outperforms the speedup obtained by the original runtime for different benchmarks and different many-core architectures.