2nd Thematic CERN School of Computing

Europe/Zurich
Alberto Pace (CERN), Giuseppe Lo Presti (CERN), Yasemin Hauser (CERN)
Description

CSC
"future high-throughput scientific computing"



 

Participants
  • Adam Wegrzynek
  • Adrien Devresse
  • Alberto Pace
  • Andrzej Nowak
  • Anthony Morley
  • Bianca-Cristina Cristescu
  • Brij Kishor Jashal
  • Chiara Zampolli
  • Claude Charlot
  • Cristovao Jose Domingues Cordeiro
  • Danilo Piparo
  • Elvin Alin Sindrilaru
  • Giuseppe Lo Presti
  • Hao Yin
  • Hauser Yasemin
  • Henryk Giemza
  • Ivica Puljak
  • Jakob Lettenbichler
  • Johannes de Fine Licht
  • Jonas Kunze
  • Jukka Kommeri
  • Katarzyna Stachyra
  • Lada Ducheckova
  • Luc Legeard
  • Marco Strutz
  • Mehdi Belhay
  • Miguel Rubio-Roy
  • Oksana Shadura
  • Pavlo Svirin
  • Robert Langenberg
  • Sverre Jarp
  • Wilco Baan Hofman
    • 14:00
      Arrival
    • 20:00
      Dinner at Medils
    • Inaugural Scientific Lecture
      • 1
        Physics at the LHC run 1
        After a short introduction on the standard model of elementary particles, on the LHC and its experiments, I will present an overview of the main physics results from the first run. Now that the LHC is stopped and we are completing the publication of the analyses of the run 1 data, it is a good time to review the results obtained so far. These could not have been obtained without a number of developments and innovations in the areas of software and computing, which will be even more necessary for the next run.
        Speaker: Claude Charlot (Ecole Polytechnique (FR))
        Slides
    • 11:00
      Updates
    • 11:15
      Coffee
    • Efficient Computing
      • 2
        Introduction - Lecture 1
        In this lecture we start by discussing Moore’s law which has led to an incredible transistor count becoming available for hardware designers. As a result, modern microprocessors have a high level of complexity and an unprecedented level of parallelism that software programmers are asked to exploit. We define the seven dimensions of performance which will be discussed during the week. The first two (pipelining and superscalar execution are discussed here, whereas the others will be discussed in dedicated lectures).
        Speaker: Mr Sverre Jarp (CERN)
    • 12:45
      Lunch
    • Efficient Computing
      • 3
        Advanced Performance Tuning - Lecture 2
        Benchmarking and performance tuning rarely are first-rate activities. However, the importance of both is on the rise following the trends in hardware related to Moore’s Law. In this lecture we will explain advanced aspects of performance benchmarking, monitoring and tuning. The presented methodologies and techniques will be supported by practical information, including compiler examples. Functionality of open-source and commercial tools alike will be demonstrated as an example of common usage of various techniques.
        Speaker: Andrzej Nowak (CERN)
    • 15:00
      Drinks and fruits
    • Efficient Computing
      • 4
        Advanced Tuning - Exercise 1
        Speakers: Andrzej Nowak (CERN), Mr Sverre Jarp (CERN)
      • 5
        Advanced Tuning - Exercise 2
        Speakers: Andrzej Nowak (CERN), Mr Sverre Jarp (CERN)
    • 17:30
      Transportation to Downtown & Guided tour of Split
    • 20:00
      Outside Welcome Dinner
    • Data Oriented Design
      • 6
        Data Oriented Design - Lecture 1
        This lecture will explain fundamental principles of data-oriented design. With the re-emergence of vectorization as a key optimization technique, indispensable for the full use of modern computing platforms, data-oriented design drives successful, scalable projects. We will explain how data-intensive problems can map onto implementations in practice, and how advanced hardware can accelerate them.
        Speaker: Andrzej Nowak (CERN)
    • Memory Programming
      • 7
        Memory Awareness - Lecture 1
        Processor speeds have outperformed the speed of memory which often becomes a bottleneck in modern servers. In this lecture we review the concept of virtual memory and the paging subsystem found in every modern operating system. We discuss the cache hierarchy and go on to look at a relatively new phenomenon in small-scale servers, namely “non-uniform memory access” (NUMA) and how to control it with affinity scheduling. Finally, we discuss briefly memory footprints and a topic that will become “hot” in the next coming years, “energy-efficient” programming.
        Speaker: Mr Sverre Jarp (CERN)
    • 11:00
      Updates
    • 11:15
      Coffee
    • Efficient Computing
      • 8
        Floating Point Programming - Lecture 4
        We start by asked ourselves why we need to bother about this topic at all. Hopefully, having convinced ourselves, we then discuss the IEEE-754 standard which is used in all modern microprocessors. We discuss several techniques for keeping floating-point calculations accurate. Math functions, such as exponentials and power functions, are also invoked, since they can be costly in performance and also have a large impact of the accuracy of floating-point calculations.
        Speaker: Mr Sverre Jarp (CERN)
    • 12:45
      Lunch
    • 13:30
      Study Time* and/or Daily Sports Program
    • 16:00
      Drinks & fruits
    • Data Oriented Design
      • 9
        Data Oirented Design - Exercise 1
        Speaker: Andrzej Nowak (CERN)
    • Memory Programming
      • 10
        Memory programming - Exercise 1
        Speaker: Mr Sverre Jarp (CERN)
    • Efficient Computing
      • 11
        Floating Point - Exercise 3
        Speaker: Mr Sverre Jarp (CERN)
    • 19:30
      Free time
    • 20:00
      Dinner at Medils
    • Programming for Concurrency
      • 12
        Modern and performant C++ - Lecture 1
        The ability to design and implement high throughput scientific applications leveraging the features of a modern programming language is crucial. In this lecture we focus on C++ and in particular on its latest standard, C++11. Starting from real life and concrete examples, we review the newly introduced semantics and constructs relevant for achieving top performance parallel implementations. Software design principles allowing to seamlessly accommodate such implementations are discussed. High level tools for measuring software performance are as well introduced.
        Speaker: Danilo Piparo (CERN)
      • 13
        Expressing parallelism pragmatically - Lecture 2
        This lecture focuses on the problem of expressing parallelism adapting existing scientific software and designing future applications. Design principles aiming to the formulation of parallel programs and data processing frameworks are presented. The concept of task oriented parallelism is introduced as well as the difficulties of the related work partitioning. The features are explored which the C++ language and a selection of libraries offer for concurrent programming.
        Speaker: Danilo Piparo (CERN)
    • 11:00
      Updates
    • 11:15
      Coffee
    • Programming for Concurrency
      • 14
        Programming for Concurrency - Exercise 1
        Simple exercises not necessarily involving programming are proposed at the beginning to make sure that the main concepts discussed in the lectures have been properly acquired. Real performance driven development of concurrent software then starts, considering small programs and the modification thereof. The power of the new semantics will be illustrated.
        Speaker: Danilo Piparo (CERN)
    • 12:45
      Lunch
    • 13:30
      Sports Afternoon
    • 20:00
      Outside Dinner TBD

      TBD

    • Programming for Concurrency
      • 15
        Resource protection and thread safety - Lecture 3
        A fundamental aspect of concurrent programming is the protection of thread unsafe resources. With argumentations relying on concrete use cases, the issue of thread safety and its possible solutions are treated. Designs aiming to avoid contention are characterised, offering veritable patterns applicable also in different disciplines. Different resource protection strategies are evaluated discussing concrete examples.
        Speaker: Danilo Piparo (CERN)
      • 16
        Programming for Concurrency - Parallelism - Exercise 2
        Exercises aiming to better understand the concepts of data and task parallelism are proposed. Simple parallelisation is achieved using different programming models: pure C++11, openMP and TBB. The measurement of software performance is explored. The final exercise is a small project for additional development experience.
        Speaker: Danilo Piparo (CERN)
    • 10:30
      Updates
    • 10:45
      Coffee
    • Programming for Concurrency
      • 17
        Programming for Concurrency - Exercise 3
        In these exercises the concepts behind resource protection are put to a good use. The opportunity is offered to design and develop different solutions for thread safety issues. The pre-digested solutions offered by widely known libraries and toolkits are compared. The student is also invited to test her knowledge using different programming languages.
        Speaker: Danilo Piparo (CERN)
    • 12:00
      Lunch
    • 12:45
      Study Time* and/or Daily Sports Program (Group departure:12:45)
    • 16:00
      Drinks and fruits
    • Efficient Computing
      • 18
        Putting it all together - Lecture 3
        Speaker: Danilo Piparo (CERN)
      • 19
        Putting it all together - Exercise 4
        Speakers: Andrzej Nowak (CERN), Danilo Piparo (CERN), Mr Sverre Jarp (CERN)
      • 20
        Putting it all together - Exercise 5
        Speakers: Andrzej Nowak (CERN), Danilo Piparo (CERN), Mr Sverre Jarp (CERN)
    • 19:30
      Free time
    • 20:00
      Dinner at Medils
    • Acceleration
      • 21
        Acceleration, Heterogeneity and Programming for Accelerators - Lecture 1
        Affordable and efficient accelerators are becoming a standard data-center offering. However, programming these devices requires a shift to a heterogeneous approach, discussed here, where data access between nodes can be expensive and floating point answers obtained on different hardware can diverge. In particular, we will cover the up- and down-sides of direct, offload and symmetric acceleration. GPU and Many Integrated Core devices will be used as examples.
        Speaker: Andrzej Nowak (CERN)
    • 10:00
      Self-Evaluation session
    • 11:00
      Updates
    • 11:15
      Coffee
    • Presentations by students
      • 22
        RefCruncher: A tool for scientists
        Speaker: Dr Miguel Rubio-Roy (CNRS)
      • 23
        Efficient parallel I/O on multi-core architectures
        Speaker: Adrien Devresse (CERN)
        Slides
      • 24
        "Linux containers"
        Speaker: Elvin Alin Sindrilaru (CERN)
        Slides
      • 25
        Data Oriented Design "Generic programming"
        Speaker: Johannes Christof de Fine Licht (University of Copenhagen (DK))
        Slides
      • 26
        Top-k Completion
        Speaker: Jonas Kunze (Johannes-Gutenberg-Universitaet Mainz (DE))
        Slides
    • 12:45
      Lunch
    • Acceleration
      • 27
        Future Directions & Wrap-up
        Speaker: Andrzej Nowak (CERN)
    • Closing Scientific Lecture (TBD)
      • 28
        Closing Scientific Lecture
        Speakers: Ivica Puljak (Technical University of Split FESB), Ivica Puljak (University of Split (HR))
        Slides
    • 16:00
      Drinks and fruits
    • 16:30
      Closing Session
    • 17:30
      Free time
    • 20:00
      Outside Closing Dinner TBD

      TBD