Skip to main navigationSkip to main content
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. Co-requisite/s - FEEG6002 Advanced Computational Methods I (or existing C programming skills).

Aims and Objectives

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 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.

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 35%
Coursework 30%
Coursework 35%


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

Repeat Information

Repeat type: Internal

Linked modules


To study this module, you will need to also study the following module(s):

FEEG6002Advanced Computational Methods I
Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings