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 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.
LIGATE is EuroHPC joint undertaking with the central goal of creating
and validating a leading application solution for drug discovery
in High Performance Computing systems up to the exascale level.
In the Insieme project, we explored 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.
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.
A combined lecture and lab with the goal of covering
the most important topics that are relevant for practical performance engineering.
This includes profiling and correct experimental setups, memory hierarchy optimiaztions,
the performance implications of common data structures, and more.
Prerequisites: Good understanding of C, and the basics of computer architecture
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.
If you have any teaching-related questions, I am available consultation either online or offline. Please contact me by email to schedule a meeting.
Selected Recent Publications
Peter Thoman, Philip Salzmann
Peter Thoman, Markus Wippler, Robert Hranitzky, Philipp Gschwandtner, Thomas Fahringer
Peter Thoman, Markus Wippler, Robert Hranitzky, Thomas Fahringer
Herbert Jordan, Philipp Gschwandtner, Peter Thoman, Peter Zangerl,
Alexander Hirsch, Thomas Fahringer, Thomas Heller, Dietmar Fey
Peter Thoman, Kiril Dichev, Thomas Heller, Roman Iakymchuk,
Xavier Aguilar, et al.
For a complete list of publications, consult my
Google Scholar profile.