Introduction to High Performance Computing

This page is a collection of resources related to lectures that were held in the group to introduce new postgraduates to the skills required for professional high performance computing.

- Text Editors
- Computer Packages and Libraries
- Numerical Analysis I
- Project Maintenance and Portability
- Numerical Analysis II
- Parallel Numerical Methods
- Introduction to C

Efficient editor use, whether Vi, Microemacs, or Emacs, is vital. Basic techniques will be introduced, as well as more advanced usage such as user customisations, and remote ftp handling.

An introduction to features of packages (including Matlab, and Maple) and library routines, such as the NAG libraries and other (parallel) numerical libraries: (P)ESSL, (Sca)LAPACK.

Some basic aspects of numerical computation, including errors, interpolation, polynomials, integration, and some of the pitfalls: badly-conditioned problems and poor scaling.

Understanding project maintenance, focusing on file backups, data integrity and version control and issues of portability and efficiency across platforms.

Optimisation and Portability Notes

Advanced numerical methods, such as solution of ordinary and partial differential equations, and optimization methods (such as genetic algorithms).

A number of specific numerical problems arise in parallel programming, including use of halos in computation, parallel linear algebra, long range forces, and random number generation.

Parallel Numerical Methods Notes

An introduction to efficient sequential programming using C.