SHPC5002 High Performance Scientific Computing

6 points
Not available in 2019UWA (Perth)Face to face
The academic objectives of this unit are to apply concepts of high performance and scientific computing learned in the SHPC4001 Principles of Scientific Computation and SHPC4002 High Performance Computing and SHPC5001 Advanced Scientific Computation to solve large-scale scientific problems on modern clusters using a parallel computing methodology. Students learn to move beyond serial thinking toward parallel approaches of scientific computing problem solving, particularly in the choice, design and parallel implementation of algorithms. Students understand and apply techniques for solving, and verifying the solutions of, common multidimensional and multivariate physical problems, and learn computational techniques for handling computer intensive and 'big data' scenarios. Through multidisciplinary case studies, programming assignments and a term project, students attain a mastery of parallel programming (i.e. OpenMP and MPI) in high performance scientific computing applications for both shared and distributed computing environments, and have an exposure to accelerating scientific problem solving through general purpose graphics processing unit (GPU) computing.
Students are able to (1) design a parallel solution to a scientific computing problem, including the selection, design and parallel implementation of appropriate numerical algorithms; (2) achieve a high skill level in parallel programming (i.e. OpenMP and MPI); (3) understand the utility of general purpose GPU computing and program basic scientific algorithms on GPUs (e.g. through OpenACC, CUDA); (4) understand the challenges of 'big computation' and 'big data' and learn modern techniques used to handle these situations (accelerators, real-time processing, etc.); (5) better understand the state of the art and frontiers of high performance scientific computing through case studies drawn from physics (heat flow, Schrodinger Equation, gravitational wave), geophysics (3D wave-equation), astrophysics (N-body problem) and chemistry (molecular dynamics, two-electron integrals, 3D quadrature); (6) learn how to verify scientific computing data output through solving canonical problems and multidimensional data visualisation; and (7) demonstrate mastery of parallel programming concepts by solving scientific computing problems in the student's core discipline.
Indicative assessments in this unit are as follows: (1) computer laboratory assignments and (2) term project. Further information is available in the unit outline.

Supplementary assessment is not available in this unit.
Unit Coordinator(s)
Professor Jingbo Wang
Unit rules
SHPC4001 Principles of Scientific Computation
or equivalent as approved by the Faculty
Advisable prior study:
introduction to programming offered by iVEC@UWA
Contact hours
lectures: 2 hours per week; computer-based labs: 2 hours per week; project: 60 hours
  • The availability of units in Semester 1, 2, etc. was correct at the time of publication but may be subject to change.
  • All students are responsible for identifying when they need assistance to improve their academic learning, research, English language and numeracy skills; seeking out the services and resources available to help them; and applying what they learn. Students are encouraged to register for free online support through GETSmart; to help themselves to the extensive range of resources on UWA's STUDYSmarter website; and to participate in WRITESmart and (ma+hs)Smart drop-ins and workshops.
  • Books and other material wherever listed may be subject to change. Book lists relating to 'Preliminary reading', 'Recommended reading' and 'Textbooks' are, in most cases, available at the University Co-operative Bookshop (from early January) and appropriate administrative offices for students to consult. Where texts are listed in the unit description above, an asterisk (*) indicates that the book is available in paperback.