当前位置: X-MOL 学术J. Sign. Process. Syst. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Hybrid Task Graph Scheduler for High Performance Image Processing Workflows.
Journal of Signal Processing Systems ( IF 1.6 ) Pub Date : 2017-11-07 , DOI: 10.1007/s11265-017-1262-6
Timothy Blattner 1, 2 , Walid Keyrouz 1 , Shuvra S Bhattacharyya 3, 4 , Milton Halem 2 , Mary Brady 1
Affiliation  

Designing applications for scalability is key to improving their performance in hybrid and cluster computing. Scheduling code to utilize parallelism is difficult, particularly when dealing with data dependencies, memory management, data motion, and processor occupancy. The Hybrid Task Graph Scheduler (HTGS) improves programmer productivity when implementing hybrid workflows for multi-core and multi-GPU systems. The Hybrid Task Graph Scheduler (HTGS) is an abstract execution model, framework, and API that increases programmer productivity when implementing hybrid workflows for such systems. HTGS manages dependencies between tasks, represents CPU and GPU memories independently, overlaps computations with disk I/O and memory transfers, keeps multiple GPUs occupied, and uses all available compute resources. Through these abstractions, data motion and memory are explicit; this makes data locality decisions more accessible. To demonstrate the HTGS application program interface (API), we present implementations of two example algorithms: (1) a matrix multiplication that shows how easily task graphs can be used; and (2) a hybrid implementation of microscopy image stitching that reduces code size by ≈ 43% compared to a manually coded hybrid workflow implementation and showcases the minimal overhead of task graphs in HTGS. Both of the HTGS-based implementations show good performance. In image stitching the HTGS implementation achieves similar performance to the hybrid workflow implementation. Matrix multiplication with HTGS achieves 1.3× and 1.8× speedup over the multi-threaded OpenBLAS library for 16k × 16k and 32k × 32k size matrices, respectively.

中文翻译:

用于高性能图像处理工作流的混合任务图计划程序。

设计可伸缩性的应用程序是提高其在混合和群集计算中的性能的关键。调度代码以利用并行性是困难的,尤其是在处理数据依赖性,内存管理,数据运动和处理器占用率时。当为多核和多GPU系统实现混合工作流时,混合任务图计划程序(HTGS)可以提高程序员的生产率。混合任务图计划程序(HTGS)是一种抽象执行模型,框架和API,可在为此类系统实现混合工作流时提高程序员的生产率。HTGS管理任务之间的依赖关系,独立表示CPU和GPU内存,将计算与磁盘I / O和内存传输重叠,保留多个GPU,并使用所有可用的计算资源。通过这些抽象,数据运动和存储是明确的;这使得数据位置决策更容易访问。为了演示HTGS应用程序接口(API),我们提供了两种示例算法的实现:(1)矩阵乘法,显示了可以轻松使用任务图的方式;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。这使得数据位置决策更容易访问。为了演示HTGS应用程序接口(API),我们提供了两种示例算法的实现:(1)矩阵乘法,显示了可以轻松使用任务图的方式;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。这使得数据位置决策更容易访问。为了演示HTGS应用程序接口(API),我们提供了两种示例算法的实现:(1)矩阵乘法,显示了可以轻松使用任务图的方式;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。为了演示HTGS应用程序接口(API),我们提出了两种示例算法的实现:(1)矩阵乘法,显示可以轻松使用任务图;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。与多线程OpenBLAS库相比,采用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。为了演示HTGS应用程序接口(API),我们提出了两种示例算法的实现:(1)矩阵乘法,显示可以轻松使用任务图;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。(1)矩阵乘法,显示如何轻松使用任务图;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。(1)矩阵乘法,显示如何轻松使用任务图;(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。(2)显微镜图像拼接的混合实现,与手动编码的混合工作流实现相比,其代码大小减少了约43%,并且展示了HTGS中任务图的最小开销。两种基于HTGS的实现均显示出良好的性能。在图像拼接中,HTGS实现与混合工作流实现具有类似的性能。在多线程OpenBLAS库中,使用HTGS的矩阵乘法可分别实现16k×16k和32k×32k大小矩阵的1.3倍和1.8倍加速。
更新日期:2019-11-01
down
wechat
bug