Building a Task-parallel Programming System Using Modern C++ 2025

Building a Task-parallel Programming System Using Modern C++ is a one-day onsite training course with programming exercises, taught by Tsung-Wei Huang.  It is offered at the Gaylord Rockies from 09:00 to 17:00 Aurora time (MDT) on Saturday, September 20th, 2025 (immediately following the conference). Lunch is included.

Register HereSee Other Offerings

Course Description

Task-parallel programming (TPP) systems are increasingly adopted by the computing community to accelerate complex scientific problems. They offer more efficient handling of irregular patterns (e.g., graph algorithms, recursion) compared to traditional loop-parallel models. However, building a scalable, flexible, and easy-to-use task-parallel programming system is a daunting challenge, as developers often confront tricky details such as concurrency controls, load balancing, and scheduling efficiency.
In this class, we will explore the design and implementation of task-parallel programming systems using modern C++, drawing on real-world experience from developing and using open-source TPP frameworks such as oneTBB, OpenMP Tasking, and Taskflow. Leveraging modern C++17/20 features, we will examine key design principles for building expressive and efficient TPP APIs, optimize scheduling performance through dynamic load-balancing techniques, and analyze large-scale industrial applications that utilize task parallelism.
By the end of the class, you will learn how to leverage modern C++ to design a scalable TPP system with a high-performance work-stealing scheduler. You will gain hands-on experience in TPP and develop a deep understanding of concurrency controls, load balancing, and task parallelism. More importantly, you will learn how to deploy a TPP system capable of handling large industrial workloads that comprise millions of tasks and dependencies.

Prerequisites

This class targets C++ developers with intermediate to advanced experience who are interested in concurrency, parallelism, or programming system design.

Course Topics

To facilitate a gradual learning path, we will structure the class to three progressive modules with a balanced mix of theory and hands-on practice. The three modules will cover (1) essential building blocks of a TPP system, (2) efficient task scheduling algorithms, and (3) industrial applications of task parallelism.
  1. Essential Building Blocks of a TPP System
    1. Overview of a TPP system
    2. Static task graph parallelism using modern C++17
    3. Dynamic task graph parallelism using modern C++17
    4. Exception handling in a parallel environment
  2. Efficient Task Scheduling Algorithms
    1. Overview of a work-stealing scheduler
    2. Design and implementation of a work-stealing queue
    3. Task notification algorithms using C++20 atomic wait/notify
  3. Industrial Applications of Task Parallelism
    1. Case study #1: Task-parallel static timing analysis with millions of tasks and dependencies
    2. Case study #2: Task graph optimization to reduce the scheduling overhead of a TPP system
    3. Discussion of open-source TPP systems (OpenMP, Intel TBB, and Taskflow)
    4. Discussion of open TPP research problems and how modern C++ can address some of these research challenges
By the end of the class, attendees will gain a decent understanding of how modern C++ can be harnessed to design and implement a TPP system that is both performant and intuitive to use. Whether you’re building your own task-parallel system or seeking to deepen your knowledge of advanced concurrency models, this class will provide practical insights and actionable techniques to guide your work.

Course Instructor

TW HuangDr. Tsung-Wei (TW) Huang is an Assistant Professor in the ECE Department at the University of Wisconsin at Madison. He received his PhD from the ECE Department at the University of Illinois at Urbana-Champaign (UIUC) in 2017.

During the entire career, Dr. Huang has been creating C++ software systems to simplify the building of performance-critical applications, such as computer-aided design, machine learning systems, and quantum computing. These software systems (e.g., OpenTimer, Taskflow) are being used by thousands of people in industry and academia.
Dr. Huang receives several awards for his research and software contributions, including ACM SIGDA Outstanding PhD Dissertation Award, NSF CAREER Award, Humboldt Research Fellowship Award, ACM SIGDA Outstanding New Faculty Award, and ICCAD 10-year Retrospective Most Influential Paper Award.