The University of Southampton

FEEG6003 Advanced Computational Methods II

Module Overview

The module provides an introduction to parallel programming as is widely used on supercomputers (OpenMP and MPI), combined with an introduction to tools and practices that underpin state-of-the-art computational modelling research and software engineering.

Aims and Objectives

Module Aims

- Provide students with a sound understanding of high performance computing on modern architectures, and - Familiarise the students with common techniques of high performance computing and - Show links to high level languages such as Python where appropriate - Provide an overview of enabling tools, techniques and best practice for computational research and research software engineering

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Software development processes
  • Parallel programming with OpenMP and MPI
  • Writing parallel algorithms using industry-standard programming techniques
  • A variety of numerical and computational methods relevant to parallel programs
  • Systematic approach to computational research
Subject Specific Intellectual and Research Skills

Having successfully completed this module you will be able to:

  • Analyse problems to identify potential parallelism
  • Decompose a problem into smaller tasks that can be solved in parallel by a computer
  • Write parallel software
  • Use a range of parallel programming paradigms
  • Exploit multi-core CPUs and clusters
  • Use the Linux Clusters such as Southampton’s Lyceum and Iridis, and the UK’s HPC machine Archer
  • Design and develop software relevant to scientific simulation and modelling processes
  • Plan, design and implement software projects


- Computational environment and tools, HPC architectures - Parallel programming - Shared memory programming, OpenMP - Parallel programming of distributed systems, MPI - Software engineering and computational methods for research, including topics such as o Version control o Testing o Visualisation o Data reproducibility and data rigour o Collaborative projects

Learning and Teaching

Teaching and learning methods

The course will be primarily delivered in two intensive blocks, each lasting three days, provided by the Edinburgh Parallel Computing Centre (HPCx Ltd) via a mixture of lectures and supervised practical computing laboratories. These will cover central parallel programming topics such as MPI and OpenMP. Additional topics will be covered via reading groups and seminar discussions. Learning activities include - Presentation and discussion in lectures to introduce new materials. - Problem-based learning in individual programming practices to enhance breadth of understanding. - Problem solving in assignments relating to parallel programming. - Self study in preparation of reading group and seminar discussions. - Preparation and delivery of learning materials for others.

Independent Study190
Total study time250

Resources & Reading list

All material to be given online by course tutors.. 



MethodPercentage contribution
Coursework 30%
Coursework 35%
Coursework 35%


MethodPercentage contribution
Coursework assignment(s) 50%
Coursework assignment(s) 50%

Repeat Information

Repeat type: Internal

Linked modules

Teaching of the 2 x three day blocks (on OpenMP and MPI) is timetabled in the first and last week of the Easter teaching term break. Co-requisite/s - FEEG6002 Advanced Computational Methods I (or existing C programming skills).


Costs associated with this module

Students are responsible for meeting the cost of essential textbooks, and of producing such essays, assignments, laboratory reports and dissertations as are required to fulfil the academic requirements for each programme of study.

In addition to this, students registered for this module typically also have to pay for:

Please also ensure you read the section on additional costs in the University’s Fees, Charges and Expenses Regulations in the University Calendar available at

Share this module Share this on Facebook Share this on Google+ Share this on Twitter Share this on Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.