Thematic CERN School of Computing on Scientific Software for Heterogeneous Architectures 2025

Europe/Zagreb
Medils Institute, Split

Medils Institute, Split

Meลกtroviฤ‡evo ลกetaliลกte 45 HR โ€“ 21000 Split Croatia
Alberto Pace (CERN), Kristina Gunne (CERN), Andrzej Nowicki (CERN)
Description

Theย 18th Thematic CERN School of Computing (tCSC 2025) will take place on October 5-11, 2025. The theme of the school isย "Scientific Software for Heterogeneous Architectures" - see the academic programme for more details.

This school is organized by CERNย in collaboration withย the Faculty of Science,ย University of Split.ย The school will take place in Split, Croatia, and be hosted at the Mediterranean Institute for Life Sciences (MEDILS) Conference Centre. The Centre is a historical renovated building situated in a wooded and landscaped park located on the Adriatic Sea coast, a few kilometers from the center of Split.

Target Audience

The School is aimed at postgraduate (i.e. a minimum of Bachelor's degree or equivalent) students, engineers, and scientists with a few years of experience in particle physics, in computing, or in related fields. We welcome applications from all countries and nationalities.

Important dates

  • 14 May application opens
  • 10 July application close
  • 23 July invitations sent to selected students
  • 20 August confirmation of participation deadline
  • 3 September participation fee deadlineย ย 

CERN School of Computing
    • 09:00 10:00
      Opening Session 1h CERN

      CERN

    • 10:00 10:30
      Self-presentation: 1 minute per person 30m CERN

      CERN

    • 10:30 11:00
      Coffee Break 30m CERN

      CERN

    • 11:00 12:30
      Lecture 1 1h 30m CERN

      CERN

      Description of theme / lecture

    • 12:30 13:30
      Lunch 1h
    • 13:30 15:00
      Practice 1 1h 30m CERN

      CERN

      Description about Practice 1

    • 15:00 15:30
      Coffee Break 30m CERN

      CERN

    • 15:30 17:00
      Practice 2 1h 30m CERN

      CERN

      Description about Practice 1

    • 07:45 08:45
      Breakfast 1h
    • 08:45 09:45
      Writing parallel software 1h

      Parallel and Optimised Scientific Software - lecture 1

      • Amdahl's and Gustafson's laws
      • Asynchronous execution
      • Finding concurrency, task vs. data parallelism
      • Using threading in C++ and Python, comparison with multi-process
      • Resource protection and thread safety
      • Locks, thread local storage, atomic operations
      Speaker: Sebastien Ponce (CERN)
    • 09:45 10:45
      Writing efficient software 1h

      Parallel and Optimised Scientific Software - lecture 2

      • Why Python and C++ ?
      • Recent evolutions: C++ 11/14/17
      • Modern features of C++ related to performance
      • Templating versus inheritance, pros and cons of virtual inheritance
      • Python 3, and switching from Python 2
      Speaker: Sebastien Ponce (CERN)
    • 10:45 11:00
      Announcements 15m
    • 11:00 11:05
      School Photo 5m
    • 11:05 11:30
      Coffee break 25m
    • 11:30 12:30
      Low-level Performance Optimization 1h

      CPU Architecture and High Performance - lecture 3

      • Main sources of performance bottlenecks
      • Floating point arithmetics performance
      • Advanced low-level performance tuning
      Speaker: Guilherme Amadio (CERN)
    • 12:30 13:30
      Data-Oriented Design 1h

      CPU Architecture and High Performance - lecture 4
      - Principles of data-oriented design
      - Memory access and data-type profiling
      - Data structure performance optimization

      Speaker: Guilherme Amadio (CERN)
    • 13:30 14:30
      Lunch 1h
    • 14:30 16:00
      Study or sports time 1h 30m
    • 16:00 16:30
      Coffee break 30m
    • 16:30 17:30
      Optimizing existing large codebase 1h

      Parallel and Optimised Scientific Software - lecture 3

      • Measuring performance, tools and key indicators
      • Improving memory handling
      • The nightmare of thread safety
      • Code modernization and low level optimizations
      • Data structures for efficient computation in modern C++
      Speaker: Sebastien Ponce (CERN)
    • 17:30 18:15
      Student lightning talks 45m
      • Studies of a new track fitting algorithm for the ATLAS Event Filter 7m

        The ATLAS experiment is going through a comprehensive set of upgrades in preparation for data taking at the High-Luminosity Large Hadron Collider. The ATLAS Event Filter (EF) provides a second level of filtering, reducing the Level-0 trigger rate of 1 MHz to 10 kHz for permanent storage. To this end, it is required to perform track reconstruction (EF Tracking) for the entire Inner Tracker (ITk) at a maximum rate of 150 kHz. A new parallelizable track fit, based on hit triplets, has been developed and is being studied for use in EF Tracking. The General Triplet Track Fit (GTTF) [10.1016/j.nima.2025.170391] is a generalization of the Multiple Scattering-only triplet fit [10.1016/j.nima.2016.11.012], developed originally for the Mu3e experiment, and includes hit uncertainties. The status of ongoing studies of the GTTF for use in EF Tracking will be presented.

        Speaker: Abhirikshma Nandi (Heidelberg University (DE))
      • Using GPUs at HPC centers for CMS 7m

        Overview about how GPUs at the National High-Performance Computing Center (HoreKa) in Karlsruhe can be used for CMS workflows and by CMS users.

        Speaker: Nikita Shadskiy (KIT)
      • Quantum-Centric Supercomputing: Bridging Quantum & Classical Worlds 7m

        Quantum-centric supercomputing is an approach that integrates quantum hardware with classical high-performance computing to solve complex problems more efficiently. Rather than placing quantum computers in isolation, this paradigm enables them to work collaboratively with classical systems; allocating tasks to whichever component is best suited for each step

        Speaker: Alexander Varga (University of Calgary)
      • A Practical Introduction to Microbenchmarking 7m

        Once a profiler identifies a performance bottleneck, the subsequent challenge is to diagnose its root cause. This talk introduces microbenchmarking as a methodology for this purpose. Using google-benchmark, we will demonstrate how to measure granular code segments to establish performance limits, quantify overhead, and analyze hardware-software interactions, providing a systematic approach to code optimization.

        Speaker: Michael Lettrich (CERN)
      • Finally, A Good Use For AI! 7m
        Speaker: Robin Hofsaess
    • 18:15 19:15
    • 19:30 20:30
      Dinner 1h
    • 07:45 08:45
      Breakfast 1h
    • 08:45 09:45
      Scientific computing on heterogeneous architectures 1h

      Programming for Heterogeneous Architectures - lecture 1

      • Introduction to heterogeneous architectures and the performance challenge
      • From general to specialized: Hardware accelerators and applications
      • Type of workloads ideal for different accelerators
      • Trade-offs between multi-core and many-core architectures
      • Implications of heterogeneous hardware on the design and architecture of scientific software
      • Embarrassingly parallel scientific applications in HPC and CERN
      Speaker: Daniel Hugo Campora Perez (NVIDIA)
    • 09:45 10:45
      Optimizing existing large codebase - exercise 1 1h

      Optimisation of an existing, production grade large codebase

      Speaker: Sebastien Ponce (CERN)
    • 10:45 11:00
      Announcements 15m
    • 11:00 11:15
      Coffee break 15m
    • 11:15 12:15
      Optimizing existing large codebase - exercise 2 1h

      Optimisation of an existing, production grade large codebase

      Speaker: Sebastien Ponce (CERN)
    • 12:15 13:00
      Lunch 45m
    • 13:00 18:00
      River rafting excursion - Cetina River 5h
    • 18:30 20:30
      Dinner at Kastel Slanica Omis 2h
    • 20:30 21:30
      Transport to Medils 1h
    • 07:45 08:45
      Breakfast 1h
    • 08:45 09:45
      Performant programming for GPUs 1h

      Programming for Heterogeneous Architectures - lecture 2

      • From SIMD to SPMD, a programming model transition
      • Thread and memory organization
      • Basic building blocks of a GPU program
      • Control flow, synchronization, atomics
      Speaker: Daniel Campora (NVIDIA)
    • 09:45 10:45
      Performant programming for GPUs 1h

      Programming for Heterogeneous Architectures - lecture 3

      • Data locality, coalesced memory accesses, tiled data processing
      • GPU streams, pipelined memory transfers
      • Under the hood: branchless, warps, masked execution
      • Debugging and profiling a GPU application
      Speaker: Daniel Campora (NVIDIA)
    • 10:45 11:00
      Announcements 15m
    • 11:00 11:30
      Coffee break 30m
    • 11:30 12:30
      Practical vectorization 1h

      Parallel and Optimised Scientific Software - lecture 4

      • Measuring vectorization level
      • What to expect from vectorization
      • Preparing code for vectorization
      • Vectorizing techniques in C++: intrinsics, libraries, autovectorization
      Speaker: Sebastien Ponce (CERN)
    • 12:30 13:30
      Practical vectorization - exercise 1h
      Speaker: Sebastien Ponce (CERN)
    • 13:30 14:30
      Lunch 1h
    • 14:30 16:30
      Study time or sports 2h
    • 16:30 17:00
      Coffee break 30m
    • 17:00 18:00
      Programming for heterogeneous architectures - exercise 1h
      Speaker: Daniel Campora (NVIDIA)
    • 18:00 19:00
      Programming for heterogeneous architectures - exercise 1h
      Speaker: Daniel Campora (NVIDIA)
    • 19:30 20:30
      Dinner 1h
    • 20:30 21:30
      The Future of the Universe and Humanity 1h
      Speaker: Ivica Puljak (Technical University of Split FESB)
    • 07:45 08:45
      Breakfast 1h
    • 08:45 09:45
      Debrief of exercises 1h
    • 09:45 10:45
      Design patterns and best practices 1h

      Programming for Heterogeneous Architectures - lecture 4

      • Good practices: single precision, floating point rounding, avoid register spilling, prefer single source
      • Other standards: SYCL, HIP, OpenCL
      • Middleware libraries and cross-architecture compatibility
      • Reusable parallel design patterns with real-life applications
      Speaker: Daniel Campora (NVIDIA)
    • 10:45 11:00
      Announcements 15m
    • 11:00 11:30
      Coffee break 30m
    • 11:30 12:30
      Programming for heterogeneous architectures - exercise 1h
      Speaker: Daniel Campora (NVIDIA)
    • 12:30 13:30
      Programming for heterogeneous architectures - exercise 1h
      Speaker: Daniel Campora (NVIDIA)
    • 13:30 14:30
      Lunch 1h
    • 14:30 15:30
      Exam 1h
    • 15:30 16:00
      Coffee break 30m
    • 16:00 18:30
      Free time 2h 30m
    • 18:30 19:30
      Closing Session 1h
    • 19:30 21:30
      Closing dinner Medils 2h
    • 07:30 08:30
      Breakfast 1h
    • 09:00 11:30
      Departures 2h 30m