FEEG6003 Advanced Computational Methods II
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
- 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
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.
|Total study time||250|
Resources & Reading list
All material to be given online by course tutors..
Repeat type: Internal
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 www.calendar.soton.ac.uk.