Thematic CERN School of Computing on Heterogeneous Architectures
from
Sunday 9 June 2024 (11:00)
to
Saturday 15 June 2024 (11:30)
Sunday 9 June 2024
15:30
Registration at IN Hotel
Registration at IN Hotel
15:30 - 17:00
17:00
Welcome and introduction
Welcome and introduction
17:00 - 17:20
17:20
Self presentations
Self presentations
17:20 - 18:00
One minute-one slide self presentations
18:00
Welcome drink at the Hotel Roof top bar
Welcome drink at the Hotel Roof top bar
18:00 - 19:30
Room: Room m25/26
19:30
Welcome Dinner - IN Hotel
Welcome Dinner - IN Hotel
19:30 - 21:00
Monday 10 June 2024
07:00
Breakfast
Breakfast
07:00 - 08:00
08:45
Opening Session
-
Alberto Pace
(
CERN
)
Opening Session
Alberto Pace
(
CERN
)
08:45 - 09:45
09:45
Preparing for the HL-LHC computational challenge
-
Danilo Piparo
(
CERN
)
Preparing for the HL-LHC computational challenge
Danilo Piparo
(
CERN
)
09:45 - 10:45
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.
10:45
Announcements
Announcements
10:45 - 11:00
Room: Room m25/26
11:00
Break
Break
11:00 - 11:30
Room: Room m25/26
11:30
CPU Hardware Architecture and Evolution
-
Guilherme Amadio
(
CERN
)
CPU Hardware Architecture and Evolution
Guilherme Amadio
(
CERN
)
11:30 - 12:30
CPU Architecture and High Performance - lecture 1 - Hardware evolution of the CPU - Memory hierarchy, caching, NUMA - Microarchitecture of modern CPUs
12:30
Performance Analysis on Modern CPUs
-
Guilherme Amadio
(
CERN
)
Performance Analysis on Modern CPUs
Guilherme Amadio
(
CERN
)
12:30 - 13:30
CPU Architecture and High Performance - lecture 2 - Performance analysis tools for Linux - CPU features for performance analysis - Top-down microarchitecture analysis
13:30
Lunch
Lunch
13:30 - 14:30
14:30
CPU Architecture and High Performance - exercise 1
-
Guilherme Amadio
(
CERN
)
CPU Architecture and High Performance - exercise 1
Guilherme Amadio
(
CERN
)
14:30 - 15:30
15:30
Break
Break
15:30 - 16:00
Room: Room m25/26
16:00
Transport to the old town of Belgrade
Transport to the old town of Belgrade
16:00 - 17:00
17:00
Scavenger Hunt in old Belgrade
Scavenger Hunt in old Belgrade
17:00 - 19:00
19:30
Dinner in the old town of Belgrade- Klub Knjizevnika
Dinner in the old town of Belgrade- Klub Knjizevnika
19:30 - 21:30
Tuesday 11 June 2024
07:00
Breakfast
Breakfast
07:00 - 08:00
08:45
Writing parallel software
-
Sebastien Ponce
(
CERN
)
Writing parallel software
Sebastien Ponce
(
CERN
)
08:45 - 09:45
Room: Room m25/26
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
09:45
Writing efficient software
-
Sebastien Ponce
(
CERN
)
Writing efficient software
Sebastien Ponce
(
CERN
)
09:45 - 10:45
Room: Room m25/26
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
10:45
Announcements
Announcements
10:45 - 11:00
Room: Room m25/26
11:00
Coffee break
Coffee break
11:00 - 11:30
11:30
Low-level Performance Optimization Guidelines
-
Guilherme Amadio
(
CERN
)
Low-level Performance Optimization Guidelines
Guilherme Amadio
(
CERN
)
11:30 - 12:30
Room: Room m25/26
CPU Architecture and High Performance - lecture 3 - Main sources of performance bottlenecks - Floating point arithmetics performance - Advanced low-level performance tuning
12:30
CPU Architecture and High Performance - exercise 2
-
Guilherme Amadio
(
CERN
)
CPU Architecture and High Performance - exercise 2
Guilherme Amadio
(
CERN
)
12:30 - 13:30
Room: Room m25/26
13:30
Lunch
Lunch
13:30 - 14:30
14:30
Study or sports time
Study or sports time
14:30 - 16:00
16:00
Coffee break
Coffee break
16:00 - 16:30
16:30
Optimizing existing large codebase
-
Sebastien Ponce
(
CERN
)
Optimizing existing large codebase
Sebastien Ponce
(
CERN
)
16:30 - 17:30
Room: Room m25/26
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++
17:30
Data-Oriented Design
-
Guilherme Amadio
(
CERN
)
Data-Oriented Design
Guilherme Amadio
(
CERN
)
17:30 - 18:30
Room: Room m25/26
CPU Architecture and High Performance - lecture 4 - Principles of data-oriented design - Memory access and data-type profiling - Data structure performance optimization
18:30
Study or sports time
Study or sports time
18:30 - 19:30
19:30
Dinner at ITS
Dinner at ITS
19:30 - 21:00
21:00
Managing Large Databases: Challenges and Lessons
-
Andrzej Nowicki
(
CERN
)
Managing Large Databases: Challenges and Lessons
Andrzej Nowicki
(
CERN
)
21:00 - 22:00
Room: Room m25/26
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.
Wednesday 12 June 2024
07:00
Breakfast
Breakfast
07:00 - 08:00
08:45
Scientific computing on heterogeneous architectures
-
Daniel Hugo Campora Perez
(
NVIDIA
)
Scientific computing on heterogeneous architectures
Daniel Hugo Campora Perez
(
NVIDIA
)
08:45 - 09:45
Room: Room m25/26
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
09:45
Optimizing existing large codebase - exercise 1
-
Sebastien Ponce
(
CERN
)
Optimizing existing large codebase - exercise 1
Sebastien Ponce
(
CERN
)
09:45 - 10:45
Room: Room m25/26
Optimisation of an existing, production grade large codebase
10:45
Announcements
Announcements
10:45 - 11:00
Room: Room m25/26
11:00
Coffee break
Coffee break
11:00 - 11:30
11:30
Optimizing existing large codebase - exercise 2
-
Sebastien Ponce
(
CERN
)
Optimizing existing large codebase - exercise 2
Sebastien Ponce
(
CERN
)
11:30 - 12:30
Room: Room m25/26
Optimisation of an existing, production grade large codebase
12:30
The Art of Code: Pharo
The Art of Code: Pharo
12:30 - 12:40
Room: Room m25/26
12:40
MC-Run: Scalable MC Event Generation and Analysis
MC-Run: Scalable MC Event Generation and Analysis
12:40 - 12:50
Room: Room m25/26
12:50
Data Processing and Compression on FPGAs
Data Processing and Compression on FPGAs
12:50 - 13:00
Room: Room m25/26
13:00
AdePT - accelerating GEANT4 applications on GPUs
AdePT - accelerating GEANT4 applications on GPUs
13:00 - 13:10
Room: Room m25/26
13:10
Precision physics in current and future collider experiments
Precision physics in current and future collider experiments
13:10 - 13:20
Room: Room m25/26
13:20
Lunch
Lunch
13:20 - 14:10
14:15
Transport to Nikola Tesla museum - Departure at 14.15 sharp!
Transport to Nikola Tesla museum - Departure at 14.15 sharp!
14:15 - 14:50
Room: Room m25/26
15:00
Visit to the Nikola Tesla Museum
Visit to the Nikola Tesla Museum
15:00 - 16:00
16:00
Free time in Belgrade - visits, shopping, resting in a cafe...
Free time in Belgrade - visits, shopping, resting in a cafe...
16:00 - 19:30
Room: Room m25/26
The Tesla museum is located in Vracar, one of the nicest neighborhoods in Belgrade, the Krunska street where the Museum is located is one of the most famous streets in Belgrade. Suggested activities, free to chose from - A must see: Saint Sava Temple, the 4th biggest Eastern Orthodox church in the world, only about a 10 min walk from the Museum. - Tasmajdan Park, with St. Mark’s Church, 10 min from museum. - Walk to Kalemegdan park, visit to the Belgrade Fortress (2,3 km from museum) https://www.beogradskatvrdjava.co.rs/?lang=en - Shopping around in old Belgrade - Go to a cafe or pub, a good cafe chain is Kafeterija Meeting at 19.30 at Restaurant Smokvica in Molerova 33 (6 min by foot from Nikola Tesla museum)
19:30
Dinner in the old town of Belgrade - Smokvica Molerova
Dinner in the old town of Belgrade - Smokvica Molerova
19:30 - 21:00
Thursday 13 June 2024
07:00
Breakfast
Breakfast
07:00 - 08:00
08:45
Performant programming for GPUs
-
Daniel Campora
(
NVIDIA
)
Performant programming for GPUs
Daniel Campora
(
NVIDIA
)
08:45 - 09:45
Room: Room m25/26
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
09:45
Performant programming for GPUs
-
Daniel Campora
(
NVIDIA
)
Performant programming for GPUs
Daniel Campora
(
NVIDIA
)
09:45 - 10:45
Room: Room m25/26
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
10:45
Announcements
Announcements
10:45 - 11:00
11:00
Coffee break
Coffee break
11:00 - 11:30
11:30
Practical vectorization
-
Sebastien Ponce
(
CERN
)
Practical vectorization
Sebastien Ponce
(
CERN
)
11:30 - 12:30
Room: Room m25/26
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
12:30
Practical vectorization - exercise
-
Sebastien Ponce
(
CERN
)
Practical vectorization - exercise
Sebastien Ponce
(
CERN
)
12:30 - 13:30
Room: Room m25/26
13:30
Lunch
Lunch
13:30 - 14:30
14:30
Study time or sports
Study time or sports
14:30 - 16:30
16:30
Coffee break
Coffee break
16:30 - 17:00
17:00
Programming for heterogeneous architectures - exercise
-
Daniel Campora
(
NVIDIA
)
Programming for heterogeneous architectures - exercise
Daniel Campora
(
NVIDIA
)
17:00 - 18:00
Room: Room m25/26
18:00
Programming for heterogeneous architectures - exercise
-
Daniel Campora
(
NVIDIA
)
Programming for heterogeneous architectures - exercise
Daniel Campora
(
NVIDIA
)
18:00 - 19:00
Room: Room m25/26
19:30
Dinner Hotel IN
Dinner Hotel IN
19:30 - 20:30
Friday 14 June 2024
07:00
Breakfast
Breakfast
07:00 - 08:00
08:45
Debrief of exercises
Debrief of exercises
08:45 - 09:45
Room: Room m25/26
09:45
Design patterns and best practices
-
Daniel Campora
(
NVIDIA
)
Design patterns and best practices
Daniel Campora
(
NVIDIA
)
09:45 - 10:45
Room: Room m25/26
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
10:45
Announcements
Announcements
10:45 - 11:00
11:00
Coffee break
Coffee break
11:00 - 11:30
11:30
Programming for heterogeneous architectures - exercise
-
Daniel Campora
(
NVIDIA
)
Programming for heterogeneous architectures - exercise
Daniel Campora
(
NVIDIA
)
11:30 - 12:30
Room: Room m25/26
12:30
Programming for heterogeneous architectures - exercise
-
Daniel Campora
(
NVIDIA
)
Programming for heterogeneous architectures - exercise
Daniel Campora
(
NVIDIA
)
12:30 - 13:30
Room: Room m25/26
13:30
Lunch
Lunch
13:30 - 14:30
14:30
Exam
Exam
14:30 - 15:45
Room: Room m25/26
15:45
Coffee break
Coffee break
15:45 - 16:20
16:20
Closing Session
Closing Session
16:20 - 17:20
17:20
Free time
Free time
17:20 - 18:00
18:00
CERN outreach
-
Sebastien Ponce
(
CERN
)
Alberto Pace
(
CERN
)
CERN outreach
Sebastien Ponce
(
CERN
)
Alberto Pace
(
CERN
)
18:00 - 19:30
19:30
Closing dinner/party at ITS IT Club
Closing dinner/party at ITS IT Club
19:30 - 21:30
Saturday 15 June 2024
07:30
Breakfast
Breakfast
07:30 - 08:30
Room: Room m25/26
09:00
Departures
Departures
09:00 - 11:30
Room: Room m25/26