Компания: University of Wisconsin–Madison
Тип доклада: Доклад
Taskflow: A General-purpose Task-parallel Programming System
Modern computing applications rely on many parallel computing resources to achieve new performance milestones. However, programming these parallel computing resources is not an easy task because there are many technical details, such as abstraction, scheduling, concurrency, and load balancing. Many of these technical details are known difficult to program correctly. To overcome this challenge, Taskflow develops a simple and powerful task graph programming model to enable efficient implementations of parallel decomposition strategies.
Our programming model empowers users with both static and dynamic task graph constructions to implement various computational patterns, including in-graph control flow, composition, and on-the-fly tasking. Taskflow also introduces an efficient work-stealing scheduling algorithm that can efficiently balance the number of available workers with dynamically generated task parallelism.
We have applied Taskflow to many industrial applications and achieved significant performance improvement through task graph parallelism. Taskflow is being used by many academic and industrial parallel computing applications, such as AMD Xilinx, NVIDIA GameWorks, Tesseract Robotics, OSSIA sequencer, and so on.