Thematic CERN School of Computing 2022

Europe/Paris
Cargèse, Corsica, France

Cargèse, Corsica, France

Sebastian Lopienski (CERN), Joelma Tolomeo (CERN), Jarek Polok (CERN)
Description

The 10th Thematic CERN School of Computing (tCSC 2022) will take place on May 1-7, 2022. The theme of the school is "Scientific Software for Heterogeneous Architectures" - see the academic programme for more details.

This School is organized by CERN. Assuming a positive evolution of the pandemic, the school will take place in Cargèse, France, and be hosted at the Institut d’Études Scientifiques de Cargèse (IESC). The Institute is located on the west coast of the French island of Corsica, 50 km north of Ajaccio city and its international airport. (However, if the pandemic situation doesn't allow traveling or physical presence, the school will be moved to online format.)

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

Applications are now closed

Important Dates

  • Thursday December 9, 2021 - applications open
  • Sunday January 23  - application deadline
  • Thursday February 10 - invitations sent to the selected participants
  • Sunday March 20 - registration fee payment deadline
  • Sunday May 1 to Saturday May 7 - the school

         

CERN School of Computing
    • 4:00 PM 6:00 PM
      Registration 2h
    • 7:30 PM 8:30 PM
      Dinner (self-organized) 1h
    • 8:00 AM 8:30 AM
      Breakfast 30m
    • 8:45 AM 9:30 AM
      Opening Session 45m
      Speakers: Enrica Maria Porcari (CERN), Sebastian Lopienski (CERN)
    • 9:30 AM 10:00 AM
    • 10:00 AM 10:15 AM
      Coffee break 15m
    • 10:15 AM 11:15 AM
      Preparing for the HL-LHC computational challenge 1h

      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)
    • 11:15 AM 12:15 PM
      Introduction to efficient computing 1h

      Technologies and Platforms - lecture 1

      • The evolution of computing hardware and what it means in practice
      • The seven dimensions of performance
      • Controlling and benchmarking your computer and software
      • Software that scales with the hardware
      • Advanced performance tuning in hardware
      Speaker: Andrzej Nowak
    • 12:20 PM 1:00 PM
      Lunch 40m
    • 1:00 PM 2:00 PM
      Study time and/or daily sports 1h
    • 2:00 PM 2:20 PM
      Self-presentation: 1 minute per person 20m
    • 2:20 PM 3:20 PM
      Hardware evolution and heterogeneity 1h

      Technologies and Platforms - lecture 2

      • Accelerators, co-processors, heterogeneity
      • Memory architectures, hardware caching and NUMA
      • Compute devices: CPU, GPU, FPGA, ASIC etc.
      • The role of compilers
      Speaker: Andrzej Nowak
    • 3:20 PM 3:45 PM
      Coffee break 25m
    • 3:45 PM 5:45 PM
      Technologies and Platforms - exercise 2h
      Speaker: Andrzej Nowak
    • 5:45 PM 6:45 PM
      Data-oriented design 1h

      Technologies and Platforms - lecture 3

      • Hardware vectorization in detail – theory vs. practice
      • Software design for vectorization and smooth data flow
      • How can compilers and other tools help?
      Speaker: Andrzej Nowak
    • 7:30 PM 8:30 PM
      Opening dinner 1h
    • 8:00 AM 8:30 AM
      Breakfast 30m
    • 8:45 AM 9:45 AM
      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)
    • 9:45 AM 10:00 AM
    • 10:00 AM 10:15 AM
      Coffee break 15m
    • 10:15 AM 11:15 AM
      Modern programming languages for HEP 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)
    • 11:15 AM 12:15 PM
      Technologies and Platforms - exercise 1h
    • 12:20 PM 1:00 PM
      Lunch 40m
    • 1:00 PM 2:00 PM
      Study time and/or daily sports 1h
    • 2:00 PM 2:20 PM
      Technologies and Platforms - exercise debriefing 20m
      Speaker: Andrzej Nowak
    • 2:20 PM 3:20 PM
      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)
    • 3:20 PM 3:45 PM
      Coffee break 25m
    • 3:45 PM 6:45 PM
      Optimizing existing large codebase - exercise 3h

      Optimisation of an existing, production grade large codebase

      Speaker: Sebastien Ponce (CERN)
    • 7:30 PM 8:30 PM
      Dinner (self-organized) 1h
    • 8:00 AM 8:30 AM
      Breakfast 30m
    • 8:45 AM 9:45 AM
      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: Dorothea Vom Bruch (CPPM/CNRS)
    • 9:45 AM 10:00 AM
      Announcements 15m
    • 10:00 AM 10:15 AM
      Coffee break 15m
    • 10:15 AM 11:15 AM
      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 (University of Maastricht)
    • 11:15 AM 12:15 PM
      Practical vectorization - exercise 1h
      Speaker: Sebastien Ponce (CERN)
    • 12:20 PM 1:00 PM
      Lunch 40m
    • 1:00 PM 2:00 PM
      Study time and/or daily sports 1h
    • 2:00 PM 2:40 PM
      Optimisation + vectorization - exercise debriefing 40m
      Speaker: Sebastien Ponce (CERN)
    • 2:40 PM 3:40 PM
      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 (University of Maastricht)
    • 3:40 PM 4:10 PM
      Coffee break 30m
    • 4:10 PM 6:45 PM
      Programming for heterogeneous architectures - exercise 2h 35m
      Speakers: Daniel Campora (University of Maastricht), Dorothea Vom Bruch (CPPM/CNRS)
    • 7:00 PM 8:00 PM
      Barbecue dinner 1h

      IESC

    • 8:00 AM 8:30 AM
      Breakfast 30m
    • 8:45 AM 10:00 AM
      Programming for heterogeneous architectures - exercise 1h 15m
    • 10:00 AM 10:15 AM
      Coffee break 15m
    • 10:15 AM 11:30 AM
      Programming for heterogeneous architectures - exercise 1h 15m
    • 11:30 AM 11:45 AM
    • 11:45 AM 12:15 PM
      Programming for heterogeneous architectures - exercise debriefing 30m
      Speakers: Daniel Hugo Campora Perez (University of Maastricht), Dorothea Vom Bruch (CPPM/CNRS)
    • 12:20 PM 1:00 PM
      Lunch 40m
    • 1:00 PM 2:20 PM
      Study time and/or daily sports 1h 20m
    • 2:20 PM 3:20 PM
      Summary and future technologies overview 1h

      Technologies and Platforms - lecture 4

      • Teaching program summary and wrap-up
      • Next-generation memory technologies and interconnect
      • Future computing evolution
      Speaker: Andrzej Nowak
    • 3:20 PM 3:45 PM
      Coffee break 25m
    • 3:45 PM 4:30 PM
    • 4:30 PM 6:00 PM
      Free time 1h 30m
    • 6:00 PM 7:15 PM
      Closing Session 1h 15m
      Speaker: Sebastian Lopienski (CERN)
    • 7:30 PM 8:30 PM
      Closing dinner 1h

      Cargèse

    • 8:00 AM 8:30 AM
      Breakfast 30m
    • 8:30 AM 9:00 AM
      Departure - bus leaves at 8:30 30m