Computer Systems and High-Performance Computing
Course options and guidance for the Computer Systems and High-Performance Computing topic area
What will I learn from courses in this topic?
This topic embraces both the theory and the practice of designing, optimising and programming computer systems, with topics ranging from advanced programming concepts to the design of computer systems. Developing such systems requires understanding of a broad range of fundamental concepts as well as the engineering methods used to design and optimised them.
The Computer Systems and High Performance specialist area aims to provide students with the conceptual knowledge and practical skills needed for entry into PhD programmes or employment focussed on research or development of computer systems and systems software.
How can I best prepare for these courses?
If you haven't programmed in a variety of programming languages (e.g. C/C++, Java) before, we recommend you start to learn these before you arrive.
What courses are available?
Edinburgh has strong programmes in both Computer Systems and High-Performance Computer. You can take courses in one or both of these areas. Depending on your background and interests, you can also choose to supplement these with courses on Programming Languages, Software Engineering, or Databases and Data Management.
Level 11 (MSc) courses
- Parallel Programming Languages and Systems (10 credits)
Level 11 (MSc courses) offered by EPCC
The Edinburgh Parallel Computing Centre (EPCC) is affiliated with the School of Informatics but runs its own MSc programmes. These courses are part of the EPCC MSc programmes, which tend to have a more applied focus than the Informatics MSc programmes, providing training in particular parallel programming languages and techniques. Several of these are meant to be taken together as part of their MSc programmes, so check the prerequisites and corequisites carefully before registering. These courses may have quotas, so register as early as possible.
Design and Analysis of Parallel Algorithms (10 credits)
HPC Architectures (10 credits)
Message-passing Programming (10 credits)
Numerical Algorithms for High Performance Computing (10 credits)
Threaded Programming (10 credits)
- Advanced Message-passing Programming (10 credits)
- Advanced Parallel Techniques(10 credits)
- Data Analytics with High Performance Computing (10 credits)
- Parallel Design Patterns (10 credits)
- Performance Programming(10 credits)
Level 10 courses
These courses are mainly intended for undergraduates, but may also be taken by MSc students. As such, they tend to provide a broader introduction to the topic than a Level 11 course. Many students on the Computer Science MSc will have done similar courses elsewhere, but if you have not, it may be worth registering for one of these courses. Students on other degrees are also welcome to take them if you have the prerequisites.
- Compiling Techniques (20 credits, Semester 2)
- Computer Architecture and Design (20 credits, Semester 1)
- Computer Communications and Networks (20 credits, Semester 1)
- Operating Systems(20 credits, Semester 2)
The most relevant related course topics are listed below. Many of these include courses that involve a computer system or a high-performance computing component. Machine learning is now used in many areas of computer systems, so if you are considering taking a machine learning course, please read the guidance on that page.