JM

High Performance Computing in Julia

This course aims to cover the foundations of High Performance Computing, with particular focus on implementations in the Julia programming language.

Topics

  • Introduction to Hardware and Software
  • Measuring Performance
  • Optimisation
  • Parallel Programming (Multithreading and Multiprocessing)
  • GPGPU Programming

Prerequisites

Students taking this course should have the following:

  • At least some limited experience with programming in any language, e.g. Python, MATLAB, C/C++ etc.
  • Basic mathematics skills, including elementary algebra.
  • A willingness to learn something new!

No prior knowledge about the Julia programming language is required as this course will provide a crash course to get everyone up to speed at the start of the module. Topics learnt during this course are not based solely around Julia, but can be transferred to other languages.

Module Convenor

The convenor for this module is Dr. Jamie Mair, a Research & Teaching Fellow at the University of Nottingham. If you have queries about this course, contact via email1.

Timetable and Format

This course is delivered as a ‘self-study’ MPAGS2 module. While this module is hosted online and available for any interested students, you can formally register on the MPAGS website if you are from one of:

  • University of Nottingham
  • University of Birmingham
  • University of Warwick

If you are formally registered, you will be added to the weekly mailing list to receive updates of new material and notification of assessments. This course will be actively running from w/c 13th January 2025 for 5 weeks. Assessment will close on the 1st March 2025.

Each week, new online videos will be released as the lecture content for this course. This website will serve as the accompanying lecture notes.

Assessments

To formally complete this module, you will have to pass the online assessments, released each week of the course. These assessments will be GitHub classroom assignments, consisting of a template of to be implemented Julia code, along with several unit tests to verify the validity of your implementation.

Footnotes