Thematic CERN School of Computing on Scientific Software for Heterogeneous Architectures

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
Registration
Applications
    • 1
      Registration
    • 2
      Welcome and introduction
    • 3
      Self presentations

      One minute-one slide self presentations

    • 17:00
      Transport to Split
    • 17:30
      Guided tour of Split
    • 19:30
      Welcome dinner at Restoran Para di ลกoto
    • 07:45
      Breakfast Medils

      Medils

    • 4
      Opening Session
      Speaker: Alberto Pace (CERN)
    • 5
      Preparing for the HL-LHC computational challenge

      In this talk we will introduce some basic concepts related to HEP data processing and analysis workflows, seeing them in action in the context of LHC experiments. Weโ€™ll also talk about the evolution of the LHC accelerator and experiments. Weโ€™ll characterise at a high level what are the consequences of those upgrades for the HEP data processing software, in particular in the context of an evolving hardware and computing infrastructure.

      Speaker: Danilo Piparo (CERN)
    • 6
      Announcements
    • 11:00
      Break
    • 7
      CPU Hardware Architecture and Evolution

      CPU Architecture and High Performance - lecture 1

      • Hardware evolution of the CPU
      • Memory hierarchy, caching, NUMA
      • Microarchitecture of modern CPUs
      Speaker: Guilherme Amadio (CERN)
    • 8
      Performance Analysis on Modern CPUs

      CPU Architecture and High Performance - lecture 2

      • Performance analysis tools for Linux
      • CPU features for performance analysis
      • Top-down microarchitecture analysis
      Speaker: Guilherme Amadio (CERN)
    • 13:30
      Lunch
    • 9
      Study or Sports time
    • 16:00
      Break
    • 10
      CPU Architecture and High Performance - exercise 1
      Speaker: Guilherme Amadio (CERN)
    • 11
      Student lightning talks
    • 19:30
      Dinner

      Francuska 7, Belgrade 11000, Serbia

    • 07:45
      Breakfast
    • 12
      Writing parallel software

      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)
    • 13
      Writing efficient software

      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)
    • 14
      Announcements
    • 11:00
      Coffee break
    • 15
      Low-level Performance Optimization Guidelines

      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)
    • 16
      CPU Architecture and High Performance - exercise 2
      Speaker: Guilherme Amadio (CERN)
    • 13:30
      Lunch
    • 14:30
      Study or sports time
    • 16:00
      Coffee break
    • 17
      Optimizing existing large codebase

      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)
    • 18
      Data-Oriented Design

      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)
    • 19
      Managing Large Databases: Challenges and Lessons

      With around 100 Oracle databases and several PB of data, CERN faces numerous intriguing challenges and unique caveats in regards to managing the database infrastructure. This lecture aims to provide an overview of both past and current issues and obstacles encountered in the realm of database systems at CERN. By doing so, it seeks to offer valuable insights into potential problems to avoid and effective solutions to address encountered difficulties.

      Speaker: Andrzej Nowicki (CERN)
    • 19:30
      Dinner
    • 07:45
      Breakfast
    • 20
      Scientific computing on heterogeneous architectures

      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)
    • 21
      Optimizing existing large codebase - exercise 1

      Optimisation of an existing, production grade large codebase

      Speaker: Sebastien Ponce (CERN)
    • 22
      Announcements
    • 11:00
      Coffee break
    • 23
      Optimizing existing large codebase - exercise 2

      Optimisation of an existing, production grade large codebase

      Speaker: Sebastien Ponce (CERN)
    • 12:15
      Lunch
    • 24
      River rafting excursion - Cetina River
    • 18:30
      Dinner at Kastel Slanica Omis
    • 25
      Transport to Medils
    • 07:45
      Breakfast
    • 26
      Performant programming for GPUs

      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)
    • 27
      Performant programming for GPUs

      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)
    • 28
      Announcements
    • 11:00
      Coffee break
    • 29
      Practical vectorization

      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)
    • 30
      Practical vectorization - exercise
      Speaker: Sebastien Ponce (CERN)
    • 13:30
      Lunch
    • 14:30
      Study time or sports
    • 16:30
      Coffee break
    • 31
      Programming for heterogeneous architectures - exercise
      Speaker: Daniel Campora (NVIDIA)
    • 32
      Programming for heterogeneous architectures - exercise
      Speaker: Daniel Campora (NVIDIA)
    • 19:30
      Dinner
    • 07:45
      Breakfast
    • 33
      Debrief of exercises
    • 34
      Design patterns and best practices

      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)
    • 35
      Announcements
    • 11:00
      Coffee break
    • 36
      Programming for heterogeneous architectures - exercise
      Speaker: Daniel Campora (NVIDIA)
    • 37
      Programming for heterogeneous architectures - exercise
      Speaker: Daniel Campora (NVIDIA)
    • 13:30
      Lunch
    • 38
      Exam
    • 15:45
      Coffee break
    • 39
      Closing Session
    • 17:20
      Free time
    • 19:30
      Closing dinner Kavanazona
    • 07:30
      Breakfast
    • 40
      Departures