Hi, my name is Peter Thoman and I’m an Assistant Professor at the
University of Innsbruck, with the Distributed and Parallel Systems group.
My research interests include everything that has to do with achiving
high performance on parallel hardware, with a particular focus on
GPU computing on one end of the spectrum and fine-grained task parallelism
on the other. I’m also very keen on research aiming at improving the programmability/performance
tradeoff, including API design as well as compilers and tool support.
This page provides a short overview of my current projects, teaching,
and some recent publications, with links to more complete information elsewhere.
Research Interests. GPU Computing, Parallel Runtime Systems, Compilers for HPC
Celerity - High Level C++ for Accelerator Clusters
Celerity is a high-level C++ API,
closely based on the Khronos SYCL standard, which allows targeting
GPU compute clusters rather than just individual GPUs. The only additional requirement
compared to a normal SYCL program is providing a functor which maps a
kernel’s compute range to its data requirements.
In the background, Celerity maintains data residence information, and constructs
and optimizes task and command graphs for distributing the work in the cluster.
Insieme Compiler and Runtime System
In the Insieme project, we explore the possibilities
afforded by using a high-level intermediate compiler representation
inherently designed for parallelism, INSPIRE. Insieme supports C/C++ source code
and several parallelism APIs including OpenMP and Cilk as input,
and generates code targeting its high-performance runtime system.
Together with our project partner Tofmotion
we investigate the potential for parallelization in the field of time-of-flight imaging.
This research ranges from high-end GPU-accelerated simulation to realtime- and
temperature-constrained on-device processing.
A graduate-level course on modern, advanced C++.
Tries to tie together language theory and background with practical advice
for working in large-scale C++ software projects.
Prerequisites: Good understanding of C, familiarity with object-oriented programming.
An introductory course to GPU computing.
Introduces the differences between GPU and CPU hardware, GPU paradigms and APIs,
and discusses how several algorithms can be efficiently parallelized on GPUs.
Prerequisites: Basic C knowledge.
For more in-depth information about my current courses,
please visit the course repository of the University of Innsbruck.
Selected Recent Publications
RTX-RSim: Accelerated Vulkan Room Response Simulation for Time-of-Flight Imaging,
IWOCL'20: Proceedings of the International Workshop on OpenCL.
Peter Thoman, Markus Wippler, Robert Hranitzky, Thomas Fahringer
The Allscale Framework Architecture,
Parallel Computing, Elsevier, May 2020.
Herbert Jordan, Philipp Gschwandtner, Peter Thoman, Peter Zangerl,
Alexander Hirsch, Thomas Fahringer, Thomas Heller, Dietmar Fey
Celerity: High-Level C++ for Accelerator Clusters,
Euro-Par 2019: Parallel Processing.
Peter Thoman, Philip Salzmann, Biagio Cosenza, Thomas Fahringer
A Taxonomy of Task-based Parallel Programming Technologies for High-performance Computing,
The Journal of Supercomputing, Springer, April 2018.
Peter Thoman, Kiril Dichev, Thomas Heller, Roman Iakymchuk,
Xavier Aguilar, et al.
For a complete list of publications, consult my
Google Scholar profile.