C++Now 2021 has ended
Back To Schedule
Friday, May 7 • 9:00am - 10:30am
Taskflow: A Lightweight Heterogeneous Task Graph Programming System with Control Flow

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Modern computing applications rely on a heterogeneous mix of CPUs and GPUs to achieve key performance milestones that go beyond traditional capabilities. However, programming these applications often requires complex expert-level tools and a deep understanding of software methodologies. Decades of research in high productivity computing has yielded methods and languages that offer either programmer productivity or performance scalability, but rarely both simultaneously. Very few systems allow developers to efficiently express
CPU-GPU dependent tasks that integrate control flow in a general-purpose setting.

In this talk, we are going to address a long-standing question: "How can we make it easier for C++ developers to write parallel and heterogeneous programs with high performance and simultaneous high productivity?" We will introduce Taskflow, A Lightweight Heterogeneous Task Graph Computing System with Control Flow. We will present an expressive CPU-GPU task graph programming model by leveraging modern C++ closure. Our model enables efficient implementations of parallel and heterogeneous decomposition strategies. The expressiveness of our model lets developers perform rather a lot of work with relative ease of programming. More importantly, we will discuss a new conditional tasking interface to support general control flow beyond the capability of the directed acyclic graph (DAG) model that prevails in existing systems. To support our programming model with high performance, we will present an efficient work-stealing algorithm that dynamically balances the thread resources with task parallelism. Finally, we will discuss successful use cases and applications to which Taskflow has been applied, and draw the conclusion for C++ in face of future heterogeneity.

The Taskflow project is available at https://taskflow.github.io/

avatar for Tsung-Wei Huang

Tsung-Wei Huang

Assistant Professor, University of Utah
As a university faculty member, a central theme of my research is to make parallel computing easier to handle. I am passionate about using modern C++ technology to solve parallel and heterogeneous computing problems. One such effort is my Taskflow project (https://taskflow.github.io... Read More →

Friday May 7, 2021 9:00am - 10:30am MDT