The PaRSEC team will highlight the Template Task Graph (TTG) programming paradigm, the concepts, benefits and requirement of the programming approach as well as the practical aspects necessary to start using TTG on various platforms to write portable task-based applications. The team will provide direct support during the tutorial as well as through GitHub and a mailing list after the tutorial.
What are Template Task Graphs?
Template Task Graphs have been developed to enable a straightforward expression of task parallelism for algorithms working on irregular and unbalanced data sets. The TTG Application Programming Interface employs C++ templates to build an abstract representation of the task graph, and schedule it on distributed resources. It offers a scalable and efficient API to port complex applications on top of task-based runtime systems to gain access to asynchronous progress, computation/communication overlap, and efficient use of all computing resources available on the target system. In this tutorial, we will introduce TTG and its main concepts and features through a variety of applications, ranging from well-known regular to irregular and data dependent examples.
The tutorial, which features many hands-on examples, presents how to install TTG on the ECP platforms and other environments, how to integrate TTG with your application using CMake, how to express task-based data-dependent algorithms for irregular datasets using TTG, and how to integrate these task-based algorithms inside existing applications.
How to Attend:
The tutorial is available to everyone, and participants from any background are welcome to attend. A basic knowledge of C++ and templates will be helpful for participants who wish to try the hands-on.
Presenters will show in-depth demos during the tutorial. Presenters can provide support during and after the tutorial with setup and usage on supported architectures.
Thomas Herault, Joseph Schuchart (University of Tennessee, Knoxville)