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.
Beginner's Guide to HPC -June 12, 2019
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.
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).
- systems at Imperial
- 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
|June 12, 2019||14.00 - 16.30||ICT training room, Central Library 204, South Kensington||Katerina Michalickova from the RCS and Computational Methods Hub|
Introduction to Matlab - June 13 and 14, 2019
This 2-part class teaches fundamentals of Matlab.
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.
- 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
|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|
Data processing with Pandas - June 20, 2019
This class teaches the beginnings of data processing using the Pandas library in Python.
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.
- 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
|June 20, 2019|| 14:00 - 16:30
||ICT training room, Central Library 204, South Kensington||Adam Townsend from Mathematics and Computational Methods Hub|
Introduction to machine learning with Python - June 27 and 28, 2019
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.
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.
- Linear Regression
- Logistic Regression
- Support Vector Machines
- Dimensionality Reduction
- Basic Feedforward neural network
- Training neural networks: Backpropagation and Stochastic Gradient Descent
- Convolutional Neural Networks
- Transfer Learning
|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|
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.
The registration link is on the following page.
General training links
General training links
|Specialist Postgraduate IT training courses||
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 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.|