Program

June 3rd - Morning
June 4th - Afternoon
Welcome and Introduction
Vito Giovanni Castellana (PNNL)
Session 1: Performance Portability with Kokkos
Christian Trott (SNL)
Cedric Chevalier (CEA)
Tutorial Material: https://github.com/kokkos/kokkos-tutorials
Break
Session 2: Productive Distributed Programming with SHAD
Beatrice Branchini (Politecnico di Milano)
Ian Di Dio Lavore (Politecnico di Milano)
Vito Giovanni Castellana (PNNL)
Tutorial Material: https://github.com/pnnl/SHAD/tree/ipdps_2025_tutorial
About: Programming High Performance Computing systems is notoriously hard, typically featuring long time to prototype, poor portability, and increased overall develpment effort. Nevertheless, the idea of "bringing HPC to the masses" has recently emerged. This vision has inspired the design of SHAD, the Scalable High-performance Algorithms and Data-structures library. SHAD is open source software, written in C++, for C++ developers. Unlike other HPC libraries for distributed systems, which rely on SPMD models, SHAD adopts a shared-memory programming abstraction, to make C++ programmers feel at home. SHAD offers a variety of building blocks, including commonly used containers (arrays, vectors, maps, sets, multimaps), STL compliant iterators interfaces, and algorithms. Underneath, SHAD manages tasking and data-movements, migrating computation where data resides and taking advantage of asynchrony to tolerate network latency. At the bottom of his stack, SHAD can interface with multiple runtime systems: this not only improves developer’s productivity, by hiding the complexity of such software and of the underlying hardware, but also greatly enhance code portability. Thanks to its abstraction layers, SHAD can indeed target different systems, ranging from laptops to HPC clusters, without any need for modifying the user-level code.