Inverted CERN School of Computing 2018

Europe/Zurich
31/3-004 - IT Amphitheatre (CERN)

31/3-004 - IT Amphitheatre

CERN

105
Show room on map
Description

The 11th Inverted CERN School of Computing (iCSC 2018) consists of lectures and hands-on exercises presented over a few days by former CERN School of Computing students. The Inverted School provides a platform to share their knowledge by turning the students into teachers. More information on the Inverted CSC events can be found at http://csc.web.cern.ch/inverted-school

Topics covered this year include:

  • Blockchain
  • Backend Systems
  • Complexity
  • Data Analysis
  • Data Structures
  • Decentralized Consensus
  • Identity Federation
  • Medical Imaging
  • Open MP
  • Parallel Programming

The event will take place on March 5-8, 2018 at CERN: in the IT Amphitheatre / 31-3-004 (lectures) and in 513-1-024 (exercises). The attendance is free, and open to anyone at CERN. We also webcast the lectures (but not exercises) so that you can tune in from anywhere in the world.

If you register, we will provide you the iCSC 2018 booklet (while stocks last!) which contains all the slide materials and speaker information, as a hard-copy reference and souvenir. We'll also make sure enough tea/coffee is available if we know you're coming.

    

Webcast
There is a live webcast for this event
    • 13:15
      Welcome coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 1
      A word from the IT Department Head 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
      Speaker: Frederic Hemmer (CERN)
    • 2
      Introduction to the Inverted CSC 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
      Speaker: Sebastian Lopienski (CERN)
    • 3
      Algorithms and Data Structures (lecture 1) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Algorithms have existed, in one form or another, for as long as humanity has. During the second half of the 20th century, the field was revolutionised with the introduction of ever faster computers. In these lectures we discuss how algorithms are designed, how to evaluate their speed, and how to identify areas of improvement in existing algorithms.

      An algorithm consists of more than just a series of instructions; almost as important is the memory structure of the data on which it operates. A part of the lectures will be dedicated to a discussion of the various ways one can store data in memory, and their advantages and disadvantages.

      Speaker: Lennaert Bel (Nikhef (NL))
    • 4
      Modern Backend Systems 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      There and there, we’ve all heard of terms like: Inversion of Control, Abstract Factory, Dependency Injection, Aspect programming, Event-driven Architecture, Reactive Streams, Model-View-Controller, RESTful webservices, Microservices…

      In this lecture, we will intuitively discover what each of design patterns entails. Building on a simple example, we will strive to maintain codebase clarity, simplicity, separation of concerns – modularity, scalability, reliability and abstraction, “discovering” along the way the design patterns that help us transform a script to a backend system.

      First, we will structure our business logic efficiently. Then we will move to the question of Persistency. Next, we will expose our business logic to the outside world as a Service. After this, we will see how non-core business logic concerns/functionalities can be added/weaved into our Service. Next, we will discuss a data-flow/stream programming approach as opposed to classical functional programming. At last, Microservices will be brought up, as a solution to breaking a complex, monolithic business logic into smaller, finer grains of simpler business logics.

      Speaker: Georgios Voulgarakis (CERN)
    • 16:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 5
      Modern Backend Systems (exercise) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      On the exercise session, we will apply the theory into an example, by designing & building Recruitment backend system.

      First, we will interactively design the UML architecture of the system.

      Then, we will progressively add the following elements/concepts:
      • Beans: for entities, services, controllers
      • JPA (Java Persistency API): We will use Hibernate to handle DB storage of our data
      • REST: to expose our backend system controllers as a webservice
      • Aspects: adding non-core business logic functionality layer, to our system
      • Reactive Streams: adding event-driven design pattern
      • Message Exchange  using JMS or STOMP {MessageBrokers}
      • Microservices: break the monolith into a High cohesion & low coupling backend system architecture.

      Technologies used are Java8 & Spring.

      Participants will be provided a basic skeleton on which they will be able to add, build and test their solutions.

      Speaker: Georgios Voulgarakis (CERN)
    • 08:30
      Welcome coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 6
      Bayesian Data Analysis (lecture 1) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Bayesian analysis offers a powerful tool for data analysis,
      as it is able to make probabilistic statements about unknown parameters. This lecture will focus especially on the bayesian viewpoint of data analysis and explore various important methods.

      In the first part of the lecture, we will deepen our understanding of the fundamentals of bayesian reasoning. We will review basic techniques on how to construct confidence intervals and how to fit a model within the bayesian
      framework but we will also go into more detail and discuss for example the role of the prior.

      The second part of the lecture will cover further examples and applications that heavily rely on the bayesian approach, as well as some computational tools needed to perform a bayesian analysis.

      Speaker: Christian Graf (Max-Planck-Institut fur Physik (DE))
    • 7
      Algorithms and Data Structures (lecture 2) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Algorithms have existed, in one form or another, for as long as humanity has. During the second half of the 20th century, the field was revolutionised with the introduction of ever faster computers. In these lectures we discuss how algorithms are designed, how to evaluate their speed, and how to identify areas of improvement in existing algorithms.

      An algorithm consists of more than just a series of instructions; almost as important is the memory structure of the data on which it operates. A part of the lectures will be dedicated to a discussion of the various ways one can store data in memory, and their advantages and disadvantages.

      Speaker: Lennaert Bel (Nikhef (NL))
    • 11:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 8
      Speeding up image reconstruction in computed tomography 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Computed tomography (CT) is a technique for imaging cross-sections of an object using X-ray measurements taken from different angles. In last decades a significant progress has happened there: today advanced algorithms allow fast image reconstruction and obtaining high-quality images even with missing or dirty data, modern detectors provide high resolution without increasing radiation dose, and high-performance multi-core computing devices are there to help us solving such tasks even faster.

      I will start with CT basics, then briefly present existing classes of reconstruction algorithms and their differences. After that I will proceed to employing distinctive architectural features of modern multi-core devices (CPUs and GPUs) and popular program interfaces (OpenMP, MPI, CUDA, OpenCL) for developing effective parallel realizations of image reconstruction algorithms. Decreasing full reconstruction time from long hours up to minutes or even seconds has a revolutionary impact in diagnostic medicine and industrial non-destructive testing applications.

      Speaker: Victoria Tokareva (Joint Institute for Nuclear Research (RU))
    • 12:30
      Lunch break
    • 9
      Bayesian Data Analysis (lecture 2) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Bayesian analysis offers a powerful tool for data analysis,
      as it is able to make probabilistic statements about unknown parameters. This lecture will focus especially on the bayesian viewpoint of data analysis and explore various important methods.

      In the first part of the lecture, we will deepen our understanding of the fundamentals of bayesian reasoning. We will review basic techniques on how to construct confidence intervals and how to fit a model within the bayesian
      framework but we will also go into more detail and discuss for example the role of the prior.

      The second part of the lecture will cover further examples and applications that heavily rely on the bayesian approach, as well as some computational tools needed to perform a bayesian analysis.

      Speaker: Christian Graf (Max-Planck-Institut fur Physik (DE))
    • 10
      Securing Distributed Research 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      Global science calls for global infrastructure. A typical large-scale research group will use a suite of international services and involve hundreds of collaborating institutes and users from around the world. How can these users access those services securely? How can their digital identities be established, verified and maintained?

      We will explore the motivation for distributed authentication and the ways in which research communities are addressing the challenges. We will discuss security incident response in distributed environments - a particular challenge for the operators of these infrastructures. Through this course you should gain an overview of federated identity technologies and protocols, including x509 certificates, SAML and OIDC.

      Speaker: Hannah Short (CERN)
    • 16:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 11
      Securing Distributed Research (exercise) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      Global science calls for global infrastructure. A typical large-scale research group will use a suite of international services and involve hundreds of collaborating institutes and users from around the world. How can these users access those services securely? How can their digital identities be established, verified and maintained?

      We will explore the motivation for distributed authentication and the ways in which research communities are addressing the challenges. We will discuss security incident response in distributed environments - a particular challenge for the operators of these infrastructures. Through this course you should gain an overview of federated identity technologies and protocols, including x509 certificates, SAML and OIDC.

      Speaker: Hannah Short (CERN)
    • 08:30
      Welcome coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 12
      Computing for Decentralized Systems (lecture 1) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      With the rise of Bitcoin, Ethereum, and other cryptocurrencies it is becoming apparent the paradigm shift towards decentralized computing. Computer engineers will need to understand this shift when developing systems in the coming years. Transferring value over the Internet is just one of the first working use cases of decentralized systems, but it is expected they will be used for a number of different services such as general purpose computing, data storage, or even new forms of governance.

      Decentralized systems, however, pose a series of challenges that cannot be addressed with traditional approaches in computing. Not having a central authority implies truth must be agreed upon rather than simply trusted and, so, consensus protocols, cryptographic data structures like the blockchain, and incentive models like mining rewards become critical for the correct behavior of decentralized system.

      This series of lectures will be a fast track to introduce these fundamental concepts through working examples and practical exercises, as well as a sneak peek into the future of decentralized applications and how they will impact our society.

      1st lecture:
      - Distributed systems and their security model.
      - Decentralized systems and how they are different from distributed ones.
      - Consensus and Byzantine Fault Tolerance (BFT) to scale decentralized systems.
      - Governance, Economics, and Proof-of-Work to achieve BFT.

      Speaker: Alejandro Avilés (Bity SA (CH))
    • 13
      K.I.S.S. Parallel Coding (lecture 1) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      A simple yet powerful introduction to parallel computing

      K.I.S.S.ing parallel computing means gently approaching for the first time the powerful tool of parallel coding and execution.
      K.I.S.S.ing parallel computing also means keeping it simple.
      K.I.S.S.ing parallel computing means, finally, loving it.

      Parallel computing will be approached in a theoretical and experimental way, using the most advanced and used C API: OpenMP. OpenMP is an open source project constantly developed and updated to hide the awful complexity of parallel coding in an awesome interface. The result is a tool which leaves plenty of space for clever solutions and terrific results in terms of efficiency and performance maximisation.

      Speaker: Mr Gabriele Gaetano Fronze' (University e INFN Torino (IT), Subatech Nantes (FR))
    • 11:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 14
      From sequential to parallel programming with patterns 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      To increase in both performance and efficiency, our programming models need to adapt to better exploit modern processors. The classic idioms and patterns for programming such as loops, branches or recursion are the pillars of almost every code and are well known among all programmers. These patterns all have in common that they are sequential in nature. Embracing parallel programming patterns, which allow us to program for multi- and many-core hardware in a natural way, greatly simplifies the task of designing a program that scales and performs on modern hardware, independently of the used programming language, and in a generic way.

      Speaker: Placido Fernandez Declara (CERN, and University Carlos III (ES))
    • 12:30
      Lunch break
    • 14:00
      CERN Data Centre visit

      Guides: Giuseppe Lo Presti, Vaggelis Motesnitsalis

    • 15:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 15
      Algorithms and Data Structures (exercise 1) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      Algorithms have existed, in one form or another, for as long as humanity has. During the second half of the 20th century, the field was revolutionised with the introduction of ever faster computers. In these lectures we discuss how algorithms are designed, how to evaluate their speed, and how to identify areas of improvement in existing algorithms.

      An algorithm consists of more than just a series of instructions; almost as important is the memory structure of the data on which it operates. A part of the lectures will be dedicated to a discussion of the various ways one can store data in memory, and their advantages and disadvantages.

      Speaker: Lennaert Bel (Nikhef (NL))
    • 16
      Algorithms and Data Structures (exercise 2) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      Algorithms have existed, in one form or another, for as long as humanity has. During the second half of the 20th century, the field was revolutionised with the introduction of ever faster computers. In these lectures we discuss how algorithms are designed, how to evaluate their speed, and how to identify areas of improvement in existing algorithms.

      An algorithm consists of more than just a series of instructions; almost as important is the memory structure of the data on which it operates. A part of the lectures will be dedicated to a discussion of the various ways one can store data in memory, and their advantages and disadvantages.

      Speaker: Lennaert Bel (Nikhef (NL))
    • 08:30
      Welcome coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 17
      Computing for Decentralized Systems (lecture 2) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      With the rise of Bitcoin, Ethereum, and other cryptocurrencies it is becoming apparent the paradigm shift towards decentralized computing. Computer engineers will need to understand this shift when developing systems in the coming years. Transferring value over the Internet is just one of the first working use cases of decentralized systems, but it is expected they will be used for a number of different services such as general purpose computing, data storage, or even new forms of governance.

      Decentralized systems, however, pose a series of challenges that cannot be addressed with traditional approaches in computing. Not having a central authority implies truth must be agreed upon rather than simply trusted and, so, consensus protocols, cryptographic data structures like the blockchain, and incentive models like mining rewards become critical for the correct behavior of decentralized system.

      This series of lectures will be a fast track to introduce these fundamental concepts through working examples and practical exercises, as well as a sneak peek into the future of decentralized applications and how they will impact our society.

      2nd lecture:
      - Bitcoin, Blockchain, and why it works.
      - Ethereum, Smart Contracts, Decentralized Applications, and how they can shape the future.

      Speaker: Alejandro Avilés (Bity SA (CH))
    • 10:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 18
      K.I.S.S. Parallel Coding (exercise 1) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      A simple yet powerful introduction to parallel computing

      K.I.S.S.ing parallel computing means gently approaching for the first time the powerful tool of parallel coding and execution.
      K.I.S.S.ing parallel computing also means keeping it simple.
      K.I.S.S.ing parallel computing means, finally, loving it.

      Parallel computing will be approached in a theoretical and experimental way, using the most advanced and used C API: OpenMP. OpenMP is an open source project constantly developed and updated to hide the awful complexity of parallel coding in an awesome interface. The result is a tool which leaves plenty of space for clever solutions and terrific results in terms of efficiency and performance maximisation.

      Speaker: Mr Gabriele Gaetano Fronze' (University e INFN Torino (IT), Subatech Nantes (FR))
    • 19
      K.I.S.S. Parallel Coding (exercise 2) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      A simple yet powerful introduction to parallel computing

      K.I.S.S.ing parallel computing means gently approaching for the first time the powerful tool of parallel coding and execution.
      K.I.S.S.ing parallel computing also means keeping it simple.
      K.I.S.S.ing parallel computing means, finally, loving it.

      Parallel computing will be approached in a theoretical and experimental way, using the most advanced and used C API: OpenMP. OpenMP is an open source project constantly developed and updated to hide the awful complexity of parallel coding in an awesome interface. The result is a tool which leaves plenty of space for clever solutions and terrific results in terms of efficiency and performance maximisation.

      Speaker: Mr Gabriele Gaetano Fronze' (University e INFN Torino (IT), Subatech Nantes (FR))
    • 12:30
      Lunch break
    • 20
      Computing for Decentralized Systems (exercise 1) 513/1-024

      513/1-024

      CERN

      50
      Show room on map

      With the rise of Bitcoin, Ethereum, and other cryptocurrencies it is becoming apparent the paradigm shift towards decentralized computing. Computer engineers will need to understand this shift when developing systems in the coming years. Transferring value over the Internet is just one of the first working use cases of decentralized systems, but it is expected they will be used for a number of different services such as general purpose computing, data storage, or even new forms of governance.

      Decentralized systems, however, pose a series of challenges that cannot be addressed with traditional approaches in computing. Not having a central authority implies truth must be agreed upon rather than simply trusted and, so, consensus protocols, cryptographic data structures like the blockchain, and incentive models like mining rewards become critical for the correct behavior of decentralized system.

      This series of lectures will be a fast track to introduce these fundamental concepts through working examples and practical exercises, as well as a sneak peek into the future of decentralized applications and how they will impact our society.

      Workshop:
      The workshop will be a capture-the-flag game that will teach the basics of Solidity, web3, and smart contracts in Ethereum. The only requirement is to bring a laptop and the mood for breaking things.

      Speaker: Alejandro Avilés (Bity SA (CH))
    • 15:00
      Coffee 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
    • 21
      K.I.S.S. Parallel Coding (lecture 2) 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map

      A simple yet powerful introduction to parallel computing

      K.I.S.S.ing parallel computing means gently approaching for the first time the powerful tool of parallel coding and execution.
      K.I.S.S.ing parallel computing also means keeping it simple.
      K.I.S.S.ing parallel computing means, finally, loving it.

      Parallel computing will be approached in a theoretical and experimental way, using the most advanced and used C API: OpenMP. OpenMP is an open source project constantly developed and updated to hide the awful complexity of parallel coding in an awesome interface. The result is a tool which leaves plenty of space for clever solutions and terrific results in terms of efficiency and performance maximisation.

      Speaker: Mr Gabriele Gaetano Fronze' (University e INFN Torino (IT), Subatech Nantes (FR))
    • 22
      Closing remarks 31/3-004 - IT Amphitheatre

      31/3-004 - IT Amphitheatre

      CERN

      105
      Show room on map
      Speaker: Sebastian Lopienski (CERN)