We offer an extensive range of training courses, from Software and Data Carpentry courses that teach core research IT skills, though to specialised courses on programming and applications. Below is a list of upcoming courses. You will also find some general training links and a list of past courses. 

If you have any questions please contact the training coordinator Katerina Michalickova. We also welcome suggestions regarding new training topics.

Upcoming courses

Beginner's Guide to HPC - February 28 and April 5, 2019

CLASS DESCRIPTION:

The course will provide participants with a hands-on introduction to the HPC systems at the College. The class is intended for HPC newbies, we'll start with the very basics of cluster computing.  After an introductory part, we'll log into the cx1 system for guided exercises that will require some prior knowledge of command line and shell scripting. 

 

Prerequisites:

The class requires some prior knowledge of command line (basic file and directory management commands and a simple text editor, e.g. nano).  You are welcome to use the PCs in the ICT training room or you can bring your own laptop, Windows users will need a secure shell client installed (e.g. putty https://www.putty.org).

Programme:

  • systems at Imperial
  • login
  • file transfer
  • module system for available software
  • file management on the clusters
  • queue system
  • job parameters
  • serial job script
  • input and output files
  • hands on serial job
  • multiple serial job script
  • hands on multiple serial job

 

Class details and dates:
DateTimeLocationInstructor
February 28, 2019  14.00 - 16.30 Royal School of Mines 3.38, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
April 5, 2019 14.00 - 16.30 SALC 6, Sherfield building, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

 

Python for beginners - January 31 and February 1, March 7 and March 8, 2019

CLASS DESCRIPTION:

This 2-part class teaches fundamentals of Python.

Prerequisites:

No previous programming experience required. Participants are welcome to bring a laptop with Anaconda installed (http://jupyter.org/install), there will be multiple hands-on exercises during the day. Alternatively, you can use the computer lab PCs.

Outline: 

  • what is programming
  • programming language building blocks
  • short Python example
  • numerical type variables
  • strings
  • lists
  • managing variables in computer memory
  • dictionaries
  • tuples
  • functions
  • conditionals
  • loops
  • file I/O
  • importing packages
  • programming style

 

Class details and dates:
DateTimeLocationInstructor
January 31, 2019  14.00 - 16.30 ICT training room, Central Library 204, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
February 1, 2019 14.00 - 16.30 ICT training room, Central Library 204, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
March 7, 2019 14.00 - 16.30 Electrical Engineering 508, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
March 8, 2019 14.00 - 16.30 Sir Alexander Fleming G27, South Kensington Campus Katerina Michalickova from the RCS and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

 

Introduction to Matlab - February 7 and 15, 2019

CLASS DESCRIPTION:

This 2-part class teaches fundamentals of Matlab.

Prerequisites:
The class is designed for beginners to Matlab and assumes no prior programming experience.  Participants will need a laptop with Matlab installed (instructions) for the multiple hands-on exercises during the class. 

Outline: 

  • Where Matlab sits among other programming languages / mathematical software
  • Awareness of the Matlab desktop environment
  • Command-line arithmetic 
  • Use of variables
  • Creating vectors and matrices
  • Matrix arithmetic
  • Matrix manipulation
  • Inversion of matrices (and when this is a bad idea)
  • Saving and reading data
  • Plotting in 2D and 3D
  • Writing and calling simple scripts and functions
  • Debugging

 

Class details and dates:
DateTimeLocationInstructor
February 7, 2019  14.00 - 16.30 SALC9, Sherfield level 5, South Kensington Adam Townsend from Mathematics and Computational Methods Hub, Krishnakumar Gopalakrishnan from MechEng and Computational Methods Hub
February 15, 2019 10.30 - 13.00 Sir Alexander Fleming G27, South Kensington Adam Townsend from Mathematics and Computational Methods Hub, Krishnakumar Gopalakrishnan from MechEng and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

The Linux command line for Scientific Computing - February 14 and 15, 2019

CLASS DESCRIPTION:

Computing has became an integral part of science and a great majority of computational tools require use of command line since it provides a more concise and powerful means to control a program or operating system.  For example, interaction with the HPC resources at the College is solely through the command line.  At the end of this class, the students will be able to interact with the command line environment, navigate the directory tree, manage their files and issue commands with parameters.

Outline:

This 2 part tutorial will cover:

  • File management for a scientific project
  • Text editing with nano
  • Basic Unix commands and parameters
  • Command redirection and pipes
  • Types of files
  • Running programs on the command line
  • Connecting to a remote server
  • Examples of installing software

Prerequisites:  The class has PCs or you are welcome to use your laptop.  No prerequisite knowledge required.

 

Class details and dates:
DateTimeLocationInstructor
February 14, 2019 14:00-16:00 Sir Alexander Fleming G27, South Kensington Campus Katerina Michalickova, Research Computing Service and Computational Methods Hub
February 15, 2019 14:00-16:00 Training room 2, Central Library, South Kensington Campus Katerina Michalickova, Research Computing Service and Computational Methods Hub
Summary of the table's content23 February 2018

 


REGISTRATION:

  •  February 14 and 15, 2019 - This class is part of the Graduate School offering, please register here.  If you are not a graduate student, please contact the instructor directly.

Bash shell scripting - March 1, 2019

CLASS DESCRIPTION:

This workshop provides a concise introduction to scripting and task automation in the Unix bash shell. The workshop participants will be exposed to many examples and hands-on activities that can be put to use in everyday computing.

A bash shell script is a series of unix commands written in a plain text file. When a script is executed, commands are performed in a sequence. This facility allows us to accomplish multiple and/or repetitive tasks with just one command and can substantially simplify handling of various administration tasks from managing large datasets to setting up complicated workflows. In the HPC setting, scripts are used for submitting jobs to the queue system. Shell scripts can also utilise variables, control statements and loops that turn a simple script into a program in its own right.

 

Syllabus:  

  • Quick command review (if needed)
  • What is a bash script and why do we need it
  • Variables
  • Tests
  • Loops
  • Functions
  • Worked example

 

Prerequisites: Some knowledge of the command line.  The class has PCs or you are welcome to use your laptop.

Class details:
DateTimeLocationInstructor
March 1, 2019  14:00 - 16:00 Training Room 2, Central Library, South Kensington Campus Katerina Michalickova, the Research Computing Service and the Computational Methods Hub

 

REGISTRATION:

This class is part of the Graduate School offering, please register here.   If you are not a graduate student, please contact the instructor directly.

Introduction to C++ - March 14,15 and 20, 2019

CLASS DESCRIPTION:

This 3-part class teaches the fundamentals of C++. C++ is an object-oriented programming language that has both high- and low-level features. It is typically used to produce fast code, but at the expense of a steep learning curve.  

Prerequisites:
This course is designed for beginners to C++, but expects some programming experience in another language.  The participants will have to bring their own laptops; Windows users will need a secure shell client installed (e.g. putty  https://www.putty.org ). 

Outline: 

  • Where C++ sits among other programming languages / mathematical software
  • What is a compiled language? 
  • Hello world!
  • Use of variables
  • Basic arithmetic
  • Saving and reading data
  • Types
  • Loops
  • Writing and calling simple functions
  • Debugging
  • Discussion of libraries you might want to investigate to do mathematics

 

 

Class details and dates:
DateTimeLocationInstructor
March 14, 2019  10.30 - 13.00 Sir Alexander Fleming 280, South Kensington Campus Adam Townsend from Mathematics and Computational Methods Hub, Krishnakumar Gopalakrishnan from MechEng and Computational Methods Hub
March 15, 2019 10.30 - 13.00 Sir Alexander Fleming G27, South Kensington Campus Adam Townsend from Mathematics and Computational Methods Hub, Krishnakumar Gopalakrishnan from MechEng and Computational Methods Hub
March 20, 2019 14.00 - 16.30 Sir Alexander Fleming G27, South Kensington Campus Adam Townsend from Mathematics and Computational Methods Hub, Krishnakumar Gopalakrishnan from MechEng and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

Introduction to HPC at Imperial - March 14 and 15, 2019

CLASS DESCRIPTION:

The course will provide participants with a hands-on introduction to the High Performance Computing systems at the College. The class is intended for HPC newbies, we'll start with the very basics of cluster computing.  After an introductory part, we'll log into the cx1 system for guided exercises that will require some prior knowledge of command line and shell scripting. 

Outline:

This 2 part tutorial will cover:

  • systems at Imperial
  • module system
  • file management on the clusters
  • queue system
  • job parameters
  • job scripts
  • serial jobs
  • hands-on serial job
  • multiple serial jobs
  • hands-on multiple serial job

Prerequisites:  The class has PCs or you are welcome to use your laptop.  Some knowledge of the command line is required.

 

Class details and dates:
DateTimeLocationInstructor
March 14, 2019 14:00-16:00 Sir Ernst Chain 310 (Chemistry Department), South Kensington Campus Katerina Michalickova, Research Computing Service and Computational Methods Hub
March 15, 2019 14:00-16:00 Training room 2 , Central Library, South Kensington Campus Katerina Michalickova, Research Computing Service and Computational Methods Hub
Summary of the table's content23 February 2018

 


REGISTRATION:

  • March 14 and 15 - This class is part of the Graduate School offering, please register here.   If you are not a graduate student, please contact the instructor directly.

Efficient parallel I/O - March 28-29, 2019

 

 

One of the greatest challenges to running parallel applications on large numbers of processors is how to handle file IO: standard IO routines are not designed with parallelism in mind. Parallel file systems such as Lustre are optimised for large data transfers, and performance can be far from optimal if many files are opened at once.


The IO part of the MPI standard gives programmers access to efficient parallel IO in a portable fashion. However, there are a large number of different routines available and some can be difficult to use in practice. Despite its apparent complexity, MPI-IO adopts a very straightforward high-level model. If used correctly, almost all the complexities of aggregating data from multiple processes can be dealt with automatically by the library.

The first day of the course will cover the MPI-IO standard, developing IO routines for a regular domain decomposition example. It will also briefly cover higher-level standards such as HDF5 and NetCDF. The second day will concentrate on how to use the Lustre file system for best performance. Case studies from real codes will also be presented.

Although the course mainly uses the MPI-IO library and the Lustre parallel filesystem for specific examples, most of the IO concepts and performance considerations are applicable to almost any parallel system.

This 2-day class is taught by the EPCC instructors.

 

Class details and dates:
DateTimeLocationInstructor
March 28, 2019 TBD SALC10, Sherfield level 5, South Kensington Campus David Henty, EPCC
March 29, 2019 TBD SALC10, Sherfield level 5, South Kensington Campus David Henty, EPCC
Summary of the table's content23 February 2018

 

REGISTRATION:

The registration link is on the following page.

General training links

General training links

 

Course Link 
Specialist Postgraduate IT training courses   

The Centre for Continuing Development offers several specialist Postgraduate IT training courses. Check their website for details, dates and registration. 

The  Linux for HPC Beginners course offered by the Centre for Continuing Development the HPC Service arranges training courses for HPC users. The courses are generally scheduled to be run when there is sufficient demand to fill all the places. Generally a professional trainer is contracted to deliver the course. Every course is tailored to the particular needs of Imperial College HPC users and there is usually a substantial practical content. Where possible arrangements are made for GSEPS accreditation. The courses are run on a cost recovery basis, which means that there is a fee for each course and that each course must have sufficient number of attendees (usually 12) to be run.

Software Carpentry  The Software Carpentry Foundation is a non-profit volunteer organization whose members teach researchers basic software skills.

ARCHER training  

ARCHER is UK National Supercomputing Service. The ARCHER training team delivers HPC classes at various universities including Imperial and UCL.

ARCHER training page.

ARCHER Virtual Tutorials and Webinars  

Several virtual tutorials and webminars offered by the ARCHER service. They take place usually at 15:00 UK time on Wednesdays.

Science and Technology Facilities Council  Latest events.
Science and Engineering South Events list.