Taskflow: A General-purpose Parallel and Heterogeneous Task Programming System


Details
On October, 22nd, we'll have the honor to welcome Tsung-Wei Huang to our user group. Tsung-Wei is a university faculty member and a central theme of his research is to make parallel computing easier to handle. He is passionate about using modern C++ technology to solve parallel and heterogeneous computing problems. One such effort is his Taskflow project (https://taskflow.github.io/), A General-purpose Parallel and Heterogeneous Task Programming System using Modern C++, which he developed to help developers quickly write parallel and heterogeneous programs with high performance and simultaneous high productivity.
---------------------------
Abstract:
The Taskflow project addresses the long-standing question: "How can we make it easier for developers to write parallel and heterogeneous programs with high performance and simultaneous high productivity?" Modern scientific computing relies on a heterogeneous mix of computational patterns, domain algorithms, and specialized hardware to achieve key scientific milestones that go beyond traditional capabilities. However, programming these applications often requires complex expert-level tools and a deep understanding of software methodologies. Specifically, the lack of a suitable software environment that can overcome the complexity of programming large parallel and heterogeneous systems has posed a significant barrier for many organizations to facilitate transformational discoveries.
Taskflow develops a simple and powerful task programming model to enable efficient implementations of heterogeneous decomposition strategies. Our programming model empowers users with both static and dynamic task graph constructions to incorporate a broad range of computational patterns including hybrid CPU-GPU computing, dynamic control flow, and irregularity. We develop an efficient heterogeneous work-stealing strategy that adapts worker threads to available task parallelism at any time during the graph execution. We have demonstrated promising performance of Taskflow on both micro-benchmark and real-world applications. As an example, we solved a large machine learning workload by up to 1.5× faster, 1.6× less memory, and 1.7× fewer lines of code than two industrial-strength systems, oneTBB and StarPU, on a machine of 40 CPUs and 4 GPUs.
This talk will cover three aspects: (1) heterogeneous task programming model using modern C++, (2) an efficient work-stealing strategy generalizable to arbitrary heterogeneous domains, and (3) user experience we have obtained and suggested roadmap for C++ in face of future heterogeneity.
The Taskflow project is available at https://taskflow.github.io/
---------------------------
Lightning Talk: The Compound-Group „LOOP“
Presenter: Frank Haferkorn. Frank is a physicist and senior software-developer form Ottobrunn, near Munich, Germany. He uses C++ for 27 years now and gives thoughts on how to develop C++ further. When not doing computer stuff you can find Frank drawing or making music/sound-design.
Abstract: In his lightning talk Frank will present a C/C++ core-language extension in form of the compound-group "LOOP". The new compounds loop(){}, typed_loop(){}, named_loop_up(){} and named_loop_down() allow easy coding of simple iterations and can improve the teachability, the readability of C/C++ and can lead to simpler algorithms and maybe optimized code. Frank shows the syntax, explains the basic usage, discusses the cons and pros and present an implementation that provides reduced functionality of the well known for(;;){} compound statement.
Read more at https://github.com/F-Haferkorn/ogis-modern-cxx-future-cpp
---------------------------
Schedule:
19:00 (CEST) -- Start of the videostream/welcome note
19:05 (CEST) -- Lightning talk by Frank Haferkorn
19:20 (CEST) -- Main talk by Tsung-Wei Huang

Taskflow: A General-purpose Parallel and Heterogeneous Task Programming System