Training Courses
As part of our mission to promote and enable world-class computational science, ICHEC regularly organises training courses on HPC and related topics. These are typically open to researchers from any Irish third level institution, where participation is free of charge and are particularly relevant to existing or potential users of ICHEC resources through the National HPC Service.
Since demand for courses can be unpredictable and ICHEC does not have in-house training facilities, we offer delivery of our courses to any host institution in Ireland on an on-demand basis. Please get in touch if you are interested in hosting one of our courses at your institution (more details below for pre-requisites and instructions).
Our Courses
Introduction to HPC (1 day)
This course covers basic HPC concepts (why we need HPC, common architectures, serial vs parallel programming, parallel performance) that also serves as a short induction course for users of ICHEC systems (e.g. logging in, submitting and monitoring jobs, using pre-installed applications and basic code compilation).
Introduction to OpenMP (1 day)
This course focuses on the fundamentals of the OpenMP programming standard that supports "share memory multiprocessing", e.g. writing parallel code (in C/Fortran) that uses multiple processor cores on a single compute node. Topics covered include the basic fork-join execution model, incremental parallelisation using OpenMP pragmas, simple parallel loops to other work sharing and synchronisation constructs.
Introduction to MPI (2 days)
This 2-day course introduces the participants to key aspects of the Message Passing Interface (MPI) standard, which is commonly used to develop highly scalable parallel applications in science and engineering. The course is based on C or Fortran, and covers fundamental MPI topics such as point to point communication, blocking vs non-blocking operations and collective communication.
Introduction to the Linux command line (1 day)
This is a crash course on using the Linux command line to carry out common operations on a computer operating system (e.g. logging in, listing/opening/copying/deleting files, browsing the folder structures, editing text files, opening and controlling applications). Since usage of ICHEC compute clusters typically requires basic familiarity with the Linux command line, this may be particularly relevant to those who may have minimal to no experience with the Linux command line.
Introduction to Modern Fortran (3 days)
This course is designed for those who are getting started with Fortran and for those who wish to refresh his/her knowledge about the subject. It presents the main programming concepts and how these are implemented in the Fortran 95/2003 standards. The emphasis is on the coding and concepts behind the programming language rather that the algorithmics.
Introduction to R (3 days)
This 3-day course is focused around the R statistical software package commonly used by data scientists and analysts for a variety of purposes, ranging from fundamental statistical modelling to exploratory data visualisation. The syllabus below places a large emphasis on practical experience gained through hands-on sessions with example problems (basic syntax, data types, common operations, data import/export, cleaning and manipulation, plotting and visualisation). Students are expected to have a basic knowledge of the underlying statistical theories while the course focuses on the practical implementation of the various analytical techniques in R.
Software Engineering for Scientists (3 days)
This course will introduce the fundamentals of scientific software engineering through tools and techniques that enhance the design, development, execution and testing phases of the software life cycle. Particular emphasis will be placed on correct program design and its efficient, organised and robust implementation.
Introduction to Julia for Scientific Computing (1 day)
Julia (www.julialang.org) is a new language which aims to solve the two language problem of scientific computing (writing prototype code in one language (Matlab/Python) and production performant code in another (Fortran/C/cython). With Julia, it is possible to do this all in the one language and get the speed of a low level languages like C with the flexibility and ease of use of Matlab/Python. It is still relatively young for a language but has reached its first stable release and is starting to be adopted more widely across industry and academia. This course aims to introduce users to Julia, demonstrate its main features and provide enough instruction to get up and running with it.
Hosting an ICHEC Course
If you are interested in one or more of our courses, simply get in touch by e-mail to arrange a course programme to be delivered on suitable dates. However, please consider the conditions below required for the delivery of an ICHEC course:
- A person from the host institution to act as the local coordinator (e.g. re venue reservations, local logistics).
- Interest from at least 8 people per course being requested.
- Reservation of a suitable venue: large enough to hold the expected number of attendees, projection-display system for the instructor, wireless internet access for all course attendees and ICHEC instructors.
- Each attendee must have a laptop/workstation during the course for practical work that typically comprise 50% of each course.
- For many of our courses (e.g. all the HPC courses), attendee laptops/workstations must have network access and could connect via SSH to the ICHEC cluster.
- Course material (mainly PDFs) are typically distributed electronically at the course; the local organiser or participants themselves may wish to print hard copies in their own time.
Third Party Material
The content of our HPC "core" courses have adopted material developed by other HPC centres, such as EPCC in Edinburgh and HLRS in Stuttgart. More training material may be downloaded from their respective web sites, i.e. ARCHER Course Material Repository and HLRS Parallel Programming Workshop.