talk: A Hybrid Task Graph Scheduler API, Tim Blattner, UMBC

April 24th, 2016

A Hybrid Task Graph Scheduler API

Tim Blattner, UMBC

10:30am Monday, 25 April 2016, ITE 346

Scalability of applications is a key requirement to gaining performance in hybrid computing. Scheduling code to utilize the parallelism is difficult, particularly when dealing with dependencies, memory management, data motion, and processor occupancy. The Hybrid Task Graph Scheduler (HTGS) API increases programmer productivity to develop hybrid applications by creating a multiple-producer, multiple-consumer workflow system. HTGS improves upon existing task graph solutions with its design of execution pipelines that enables multi-GPU computation through data decomposition and task graph clustering that are bound to physical GPUs. The HTGS API is also capable of managing dependencies between tasks, represents CPU and GPU memories independently, overlaps disk I/O and memory transfers, and utilizes all available compute resources. We demonstrate the HTGS API by comparing a hybrid microscopy image stitching application with and without HTGS. By using HTGS in image stitching, code size is reduced by ~25% and shows favorable performance compared to image stitching without HTGS.