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.
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.
Computer Packages and Libraries
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.
Project Maintenance and Portability
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.