General
About CSC
Organisation

People
Process for CSC hosting
School Models
Role of Local Organisers
Other Roles

Participants
Past Schools

2004 2005 2006 2007 2008 2009 2010 2011

Diploma at CSC
Sport at CSC
Inverted CSCs

iCSC05 iCSC06 iCSC08 iCSC10 iCSC11

Special schools

School@chep06


Inverted School 2010

8-9 March 2010


CSC2010

CSC2010 Overview

Practical Information
Programme
Schedule
Lecturers
Participants
Organizers

 
Examination results
How to apply
 
CSC-Live

CERN School of Computing 2010 23 August-3 September  2010 - Uxbridge, UK

Programme Overview

Data Technologies

Base Technologies

Physics Computing

Schedule

Lecturers

Lecturer Bios

CSC-Live

 Printable Version  

CSC2010 Base Technologies Theme

Coordinator:

Pere Mato, CERN
Sebastian Lopienski, CERN

This theme presents a selection of advanced underlying computing technologies which are particularly relevant in the context of scientific computing, and serve as a basis  to construct higher level services services such as those offered by Grid Technologies. They include software engineering, computer architectures, computing security and networking topics  

 

The first series of lectures presents modern techniques for software design and modern tools and technologies for understanding and improving existing software.  The emphasis is placed on the large software projects and large executables that are common in HEP. The series  consist of lectures and exercises. These lectures include topics such software engineering, design, methodology and testing. 

 

The second series of lectures describes the evolution and the state of the art of computer architectures, discusses the bottlenecks and the consequences of this evolution on software design and optimization. It presents principles for writing software that scales with the hardware, techniques for hardware and software performance monitoring and issues related to the impact of compilers on performances.

 

The third topic addresses computer security with a particular focus on two aspects:   cryptography, authentication and security infrastructures on the one hand, and the creation of secure software on the other hand. The latter series includes hand-on exercises. 

 

The 4th topic addresses virtualization and cloud computing.

 

The theme is complemented by a series of lectures on networking, which presents principles, methods and techniques for improving quality of service and  network performance.

Overview

Series

Type

Lecture

Description

Lecturer

 

 

 

 

 

Computer Architecture and Performance Tuning

 

Lectures

Lecture 1

Understanding scalable hardware
The first lecture describes the hardware architecture of a modern PC server with processors based on the Intel Core microarchitecture. Other processor architectures will also be mentioned. Bottlenecks (and acceleration opportunities) in the architectures will be covered in detail, not just inside the processor, but also related to caches, memory buses, and  the like. The aim is to give each student a good understanding of what resources are available from a hardware viewpoint.

 

Sverre Jarp

Lecture 2

Software that may scale with the hardware
In the second lecture we will (briefly) discuss certain strategies which can allow software to scale to the maximum resource potential in a given architecture. We will also describe the issue of “performance portability” across platforms. At least one scalable HEP example will be portrayed. The overall impact of programming styles and compilers (use of intrinsics and optimization flags) will also be reviewed.

 

Sverre Jarp

Lecture 3

Understanding performance tuning
Performance tuning is an important step in application development. Modern processor architectures often give us the benefit of being able to look inside the application at very low levels, however drawing high-level conclusions is not always straightforward. The objective of this lecture is to familiarize the attendees with certain common metrics which can be used to define application performance. In addition, we will demonstrate how to use language independent performance in Linux, in order to obtain information about program characteristics and bottlenecks.

 

Andrzej Nowak

Exercises

Exercise 1

Exercise 2

Exercise 3

The aim of the exercises in this series is to give the attendees a practical introduction to performance monitoring on Linux. Pfmon will serve as the primary tool used during the course, enabling the participants to discover how the structure of the code influences its performance. The participants will also be given the task of correlating performance figures with certain programming decisions. In addition, the participants will understand the limits of performance tuning and the ways to establish at which point inside those limits their workload is placed. The exercises will be supported by demonstrating real world problems in production environments.

Sverre Jarp
Andrzej Nowak

Prerequisite Knowledge

Desirable prerequisite

 

and

 references to further information

  • Basics of modern computer architecture

  • Basic knowledge about compilers

  • Familiarity with Linux and the C/C++ programming languages

 

 

 

 

 

 

Networking QoS and   Performance

Lectures

Lecture 1

Internet QoS options

Improving Quality of Service guarantees and performances in data network is a key requirement of Grid computing. Indeed, fast transfers require high-bit rate connections, and grid operation requires network predictability and high availability. On the other hand, the Internet historical technology is not naturally best suited to deterministic behaviour. This lecture explains the technical challenges and the range of options available to improve QoS guarantees in Internet-based networks.

 

François Fluckiger

Lecture 2

Multimedia over the Internet

The Grid is not only a network of computer resources but also a network of people cooperating to use these resources. Part of the collaborative tools scientists are increasingly using include audio and video systems. They place new challenging requirements on the networking systems. The class discusses these requirements and their consequences on the end-systems as well as within the underlying network.

 

François Fluckiger

Prerequisite Knowledge

 

Mandatory prerequisite

For this series of lectures, there is no mandatory pre-requisite knowledge, as long as the participants are professional computer scientists.

 

Desirable prerequisite

 

and

 references to further information

The participants will draw maximum benefits from the lectures if they have a fair knowledge of computer network principles, in particular the concepts of

  • Networking layering

  • Internet transport infrastructure (e.g. mesh topology, routers, links)

  • Internet layers (e.g. differences between PPP, IP, UDP, TCP)

 

Books

  • Computer Networks, Ed. 4
    Andrew Tannenbaum, Prentice Hall, ISBN 0-130-661023

  • Internetworking with TCP/IP, vol 1
    Douglas E. Commer, Prentice Hall, ISBN 0-130-183806

  • Understanding Networked Multimedia
    Francois Fluckiger, Prentice Hall, ISBN 0-131-90992-4

Vikipedia

Computer Networking (http://en.wikipedia.org/wiki/Computer_networks)

Other Links

Linux-Networking Concepts

 

         

Creating secure software

 

Lectures

 

Lecture 1

Introduction to computer security

First lecture starts with a definition of computer security and an explanation of why it is so difficult to achieve. The lecture highlights the importance of proper threat modelling and risk assessment. It then presents three complementary methods of mitigating threats: protection, detection, reaction; and tries to prove that security through obscurity is not a good choice.

 

Sebastian Lopienski

Lecture 2

Security in different phases of software development

The second lecture addresses the following question: how to create secure software? It introduces the main security principles (like least-privilege, or defense-in-depth) and discusses security in different phases of the software development cycle. The emphasis is put on the implementation part: most common pitfalls and security bugs are listed, followed by advice on best practice for security development.

 

Sebastian Lopienski

Exercises

Exercise 1
Exercise 2
Exercise 3

Avoiding, detecting and removing software security vulnerabilities

In the practice session, a range of typical security vulnerabilities will be presented. The goal is to learn how they are exploited (for privilege escalation, data confidentiality compromise etc.), how to correct them, and how to avoid them in the first place!

Students will be given source code of a simple program, and will be asked to find vulnerabilities and fix them. On-line course documentation consists of several parts (made available in steps, one after another), each tackles different vulnerability type. For a given security bug planted in the code, the documentation first shows how this bug/vulnerability can be attacked. Then students are given time to find the bug and work on a fix. And after some time, a possible solution is made available.  Additionally, students will have a chance to try several source code analysis tools, and see how such tools can help them find functionality bugs and security vulnerabilities.

 

Sebastian Lopienski

Prerequisite Knowledge

Desirable prerequisite

 

and

 

References to further information

  • Basic knowledge of C and/or PHP
    PHP tutorial: http://php.net/tut.php

  • Basic understanding of HTTP protocol

  • Basic knowledge of SQL

 

Books

  • Secrets and Lies: Digital Security in a Networked World by Bruce Schneier

  • Security Engineering: A Guide to Building Dependable Distributed Systems by Ross Anderson

  • Writing Secure Code by Michael Howard, David LeBlanc

  • Secure Coding: Principles and Practices by Mark G. Graff, Kenneth R. van Wyk

 

Virtualisation

Lectures

Lecture 1

Introduction to virtualisation technology

First lecture covers the definition and description of the various modes of virtualization techniques used in computing science, also from a historical perspective. Later we present the most recent advances and technology trends, in particular we will single out the server virtualization as a key enabling technology behind the emerging cloud computing paradigm.

 

Pere Mato

Lecture 2

Applications of the virtualisation technology

Second lecture deals with possible applications of server virtualization technology to support LHC computing effort. We will be using the CernVM project as an example to illustrate how a virtual machine can be crafted to act as an end-user work environment as well as job hosting environment running on cloud or Grid infrastructure.

 

Pere Mato

Exercises

Exercises 1

Using a virtual machine for data analysis

The student will exercise how to setup a virtual machine and perform some simple analysis task (using ROOT for example) on a local host. Later we will show  how the same task can be achieved using cloud resources such as Amazon EC2.

 

Predag Buncic
Pere Mato

Prerequisite Knowledge

Mandatory prerequisite

Be familiar with ROOT and very basic C++ and Linux/Unix environment.

 

Desirable prerequisite

   

and

References to further information

   
Feedback: Computing (dot) School (at) cern (dot) ch
Last update: Friday, 22. March 2013 15:29

Copyright CERN