For information on winter intensives that are being delivered partially or fully on campus, please refer to the COVID-19 page.
|Fees||Look up fees|
The use of physics-based computer simulation is a powerful tool in the scientific and engineering fields that allows for the investigation of phenomena that are often inaccessible by other means. As modern compute architectures continue to increase in terms of parallelism and power, so too can these simulations increase in scale and fidelity, but only when equipped with an understanding of the mathematics and underlying hardware, necessary to leverage this power. This subject will aim to develop such an understanding by tying together key tools and techniques used in the design of scientific software targeted at High Performance Computing (HPC) resources.
This subject will introduce several numerical methods that are ubiquitous in the solution of ordinary differential equations (e.g. Euler and Runge-Kutta methods), partial differential equations (e.g. finite difference and finite element methods), linear systems (e.g. conjugate gradient method), and apply these tools to solve governing equations commonly found in areas such as fluid dynamics and thermodynamics. This subject will investigate the development of software targeting shared memory multicore architectures with OpenMP, distributed memory architectures with MPI, and GPU accelerators with CUDA.
Intended learning outcomes
Having completed this subject the student is expected to:
- 1. Have an understanding of when and how parallelism can be exploited in an algorithm and determine the appropriate approach for implementation
- 2. Be able to apply an appropriate numerical method to solve a partial differential equation and write a program implementing this method
- 3. Have a basic foundational knowledge of the Application Programming Interfaces (APIs) provided by OpenMP, MPI, and CUDA
- 4. Be capable of connecting, compiling, and executing jobs on the University of Melbourne's HPC resource Spartan.
- Ability to apply knowledge of basic science and engineering fundamentals
- Ability to undertake problem identification, formulation and solution
- Capacity for independent critical thought, rational inquiry and self-directed learning.
Last updated: 29 May 2020