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 -June 12, 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
June 12, 2019  14.00 - 16.30 ICT training room, Central Library 204, South Kensington Katerina Michalickova from the RCS and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

 

Introduction to Matlab - June 13 and 14, 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
June 13, 2019  14.00 - 16.30 ICT training room, Central Library 204, South Kensington Adam Townsend from Mathematics and Computational Methods Hub
June 14, 2019 14.00 - 16.30 ICT training room, Central Library 204, South Kensington Adam Townsend from Mathematics and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

Data processing with Pandas - June 20, 2019

CLASS DESCRIPTION:

This class teaches the beginnings of data processing using the Pandas library in Python.

 

Prerequisites:

Some familiarity with Python is required.  You are welcome to use the class PCs or you can bring your own laptop with preferred Python environment including Pandas module. The instructor will use Jupyter Notebooks for demonstrations.

Outline:

  • Why you might choose to use Pandas or Awk for data processing
  • Selecting rows of data
  • Selecting columns of data
  • Cutting and joining data
  • Reading and writing data
  • Producing graphs from the data using the Matplotlib Python library

 

Class details and dates:
DateTimeLocationInstructor
June 20, 2019  14:00 - 16:30
ICT training room, Central Library 204, South Kensington Adam Townsend from Mathematics and Computational Methods Hub
Summary of the table's content23 February 2018


REGISTRATION:

June 20, 2019

Introduction to machine learning with Python - June 27 and 28, 2019

CLASS DESCRIPTION:

This class aims to introduce students to the basics of machine learning. We will discuss the different kinds of problems like regression vs classification. We shall also discuss supervised and unsupervised learning methods, with examples and exercises. This course will be held in the interactive flipped-classroom style that is typical of software carpentry. Most of the examples used will be interesting from a computer vision/image recognition point of view. We will use python packages like scikit-learn, numpy, pandas, and pytorch. We shall work with standard machine learning datasets like MNIST. 

 

Prerequisites:

As a prerequisite, we assume you have done of our python courses previously or have basic knowledge/experience working with python. We also assume that you have done a university-level statistics class. We shall start with simple statistical models like linear regression working up to convolutional neural networks. 

For computational resources we will use Google Colab so we only require you to bring a laptop with a stable power and network connection. 

 

Outline:

  • Linear Regression
  • Logistic Regression
  • Support Vector Machines
  • Clustering
  • Dimensionality Reduction
  • Basic Feedforward neural network
  • Training neural networks: Backpropagation and Stochastic Gradient Descent
  • Convolutional Neural Networks
  • Transfer Learning

 

 

Class details and dates:
DateTimeLocationInstructor
June 27 and 28, 2019  both 14:00 - 1:00
both ICT training room, Central Library 204, South Kensington Navjot Kukreja, Earth Sciences and Engineering
Summary of the table's content23 February 2018


REGISTRATION:

June 27 and 28, 2019

Single node performance optimisation - July 30-31, 2019

 

Modern HPC systems are being constructed using increasingly powerful nodes, with larger and larger numbers of cores and enhanced vector capabilities. To extract maximum performance from applications, it is therefore necessary to understand, and be able to overcome, on-node performance bottlenecks.

This course will cover the main features of modern HPC nodes, including multiple cores, vector floating point units, deep cache hierarchies, and NUMA memory systems. We will cover techniques for efficient programming of these features, using batch processing options and compiler options as well as hand tuning of code. The course will also contain an introduction to the use of Cray performance analysis tools.

This course covers techniques for improving the performance of applications on ARCHER by optimising of the code that runs within each node. Familiarity with a Unix or Linux environment is assumed. The course is open to all, but is mainly targeted at existing ARCHER users.

 

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

 

Class details and dates:
DateTimeLocationInstructor
July 30, 2019 full day CDT space 402 , 4th floor of Central Library, access from 2nd floor of Sherfield building (SW corner), South Kensington Campus EPCC staff member
July 31, 2019 full day CDT space 402 , 4th floor of Central Library, access from 2nd floor of Sherfield building (SW corner), South Kensington Campus  EPCC staff member
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.