The Australian National University
Mathematical Sciences Institute (MSI)
Events - APAC Summer School 2005
document location: http://wwwmaths.anu.edu.au/events/apacss05/program.html

[APAC logo]

Australian Partnership for Advanced Computing Summer School
Australian National University   10 - 21 January 2005


Program

(updated 5 January 2005)

The program will consist of talks by experienced computational scientists and extensive hands-on experience on the APAC supercomputers. The topics are grouped into the following six streams; click on the titles for more details.

    Special events
    Super computing
    Applications of HPC
    HPC using Problem Solving Environments
    Finite Volume Methods
  Numerical linear algebra


The main venue is the CSIT building (#108) on North Road. Lectures will be in Rm N101 and lab sessions in Rms N112 and N113.

There will be a welcome reception from 5pm on Monday 10 in the foyer of the Manning Clark Centre (#26). This will be joint with the ICE-EM/AMSI Summer School. There will also be an APAC barbecue on the evening of Tuesday 11, and (tentatively) a final social event on the evening of Wednesday 19. Further details will be available on arrival at the Summer School.

Anyone who is not officially registered in the Summer School will be welcome to attend the lectures in Rm N101 - please contact apacss05@maths.anu.edu.au if you plan to attend any of these. All other events, including the tour of the APAC facility, are for participants only.

The schedule is below. For a printable version, click here.


Week 1 M 10 T 11 W 12 T 13 F 14
9-10 Registration and Welcome

N101
Introductory MPI

Labs N112-3
Intro to Numerical Methods

N101
Finite Volume Methods

N101
Conjugate Gradient method and Krylov Methods

N101
10-11 Finite Volume Methods

N101
11-12 Finite Volume Methods

N101
Parrallelizing with PETSc

N101
Finite Volume Methods

N101
12-1 Tour of APAC facility

Meet in N101
Least Squares

N101
1-2 Lunch Lunch Lunch Lunch Lunch
2-5 Intro to APAC super-computers

Labs N112-3
Introductory MPI

Labs N112-3
MPI Applications, Optimisation and Tools

Labs N112-3
Least Squares tutorial

Labs N112-3
Finite Volume Methods tutorial

Labs N112-113
5 + Welcome reception

MCC foyer
BBQ

outside CSIT
 
 
 
Week 2 M 17 T 18 W 19 T 20 F 21
9-11 Numerical Linear Algebra: Multigrid

N101
Load Balancing

Labs N112-3
Solving PDEs with Python

Labs N112-3
Access Grid Event

N101
Computational Fluid Dynamics

N101
11-12 Finite Volume Methods

N101
Finite Volume Methods

N101
Ocean Modelling

N101
12-1 Lunch
1-2 Lunch Load Balancing

Labs N112-3
Lunch Lunch Lunch
2-5 Iterative methods tutorial

Labs N112-3
StGermain & Snark

Labs N112-3
Finite Volume Methods tutorial

Labs N112-3
Optimizing Serial Programs

Labs N112-3
5 +   Social event

TBA
 





Title: Introduction to MPI Programming
Presenters:Margaret Kahn, David Singleton, Stuart Midgley and Ben Evans
Content:
  • Introduction and overview of message passing and MPI
  • MPI program structure
  • Messages
  • Point-to-point communication
  • Non-blocking communication
  • Collective communication
  • Miscellaneous (derived datatypes, MPI IO, topologies, MPI2, ...)
  • Debugging and Profiling
Prerequisites: Familiarity with Unix, a Unix editor such as vi or emacs and either Fortran or C. Programming exercises will involve writing either Fortran or C.
Aims:
  • To provide a reasonably comprehensive overview of message passing and MPI concepts, terms and functionality.
  • To give attendees confidence that they can write working MPI parallel programs.
Overview:The course involves a mixture of short lectures followed by hands-on exercises that illustrate that lecture material.
Resources: http://nf.apac.edu.au/training/MPIProg/
Return



Title: MPI Applications, Optimisation and Tools
Presenters:David Singleton, Stuart Midgley, Margaret Kahn and Ben Evans
Content:
  • Introduction
  • Basic performance concepts
  • MPI performance issues
  • Tools
  • Parallel Decomposition
  • Example Applications
Prerequisites:Familiarity with Unix, a Unix editor such as vi or emacs and either Fortran or C. Programming exercises will involve writing either Fortran or C. Some knowledge of basic numerical methods will help.
Aims:
  • To make attendees aware of the main issues in developing scalable distributed parallel applications.
  • To allow attendees to become familiar with parallel profiling tools and understand what those tools show about parallel program efficiency
  • To provide an introduction to parallel decomposition techniques for common scientific computng problems.
Overview:The course involves a mixture of short lectures followed by hands-on exercises that illustrate that lecture material.
Resources: http://nf.apac.edu.au/training/MPIAppOpt/
Return



Title: Optimizing Serial Programs
Presenters: David Singleton, Alistair Rendell and Stuart Midgley
Content:
  • Basic hardware overview
  • Arithmetic units and instructions
  • Cache and memory
  • Program execution
  • Profiling
  • Example: strided memory and indirect addressing
  • Example: matrix multiply, loop orders and cache blocking
  • Example: finite difference, cache reuse
Prerequisites:Familiarity with Unix, a Unix editor such as vi or emacs and either Fortran or C. Programming exercises will involve writing either Fortran or C.
Aims:
  • To provide an introduction to the main issues in sequential program performance
  • To provide an introduction to basic hardware concepts and their relevance to sequential program performance
  • To use, and understand the output of, program profilers.
Overview:The course involves a mixture of short lectures followed by hands-on exercises that illustrate that lecture material.
Resources:
Return



Title:Parallel Load Balancing with Python
Presenter:Ole Nielsen
Content: Computations of the Mandelbrot set using a combination of Python and C. Experiments with different load balancing strategies.
Prerequisites:MPI, Python, C, complex numbers
Aims: Through hands-on exercises to give students a real feel for common load balancing strategies and their relative merits.
Overview: Using the Mandelbrot fractal as an example, we will develop an efficient sequential application using the Python programming language with computationally critical parts written in C.

Armed with a well performing sequential algorithm we will then experiment with different strategies for distributing the work evenly across multiple processors. This is known as 'load balancing' and, as we shall see, the parallel performance depends heavily on the load balancing strategy.

Finally, we will touch on the other two main requirements for good parallel performance, namely the ratio between computation and communication as well as the amount of inherently sequential work (Amdahl's law).

Resources: http://datamining.anu.edu.au/~ole/teaching/summerschool2005
Return



Title:StGermain & Snark - frameworks for enabling HPC computational modelling
Presenter:Patrick Sunter
Content: A 3-4 hour hands on workshop presenting VPAC's HPC computational modelling frameworks StGermain and Snark, including worked examples of applied code. This workshop should be of interest to those who either use or develop modelling software on HPC platforms.
Prerequisites:Reasonable programming fluency in C, basic understanding of numerical methods such as FEM and FD. Optionally, some knowledge of Python.
Aims: The aim of the workshop will be for students to become familiar with what StGermain and Snark provide, and how they may help overcome issues with writing codes on HPC platforms. They should also leave with an outline of some of the main linear algebra and meshing tools available to them, and the pros and cons of each.
Overview: The workshop would begin with an outline of StGermain's philosophy: where we sit in terms of helping bring together HPC tools and algorithms to help with the hard work of actually building a HPC modelling application that performs well, but is also easy to use and can grow to handle changing research interests elegantly.

The following sections will involve hands-on code examples, in conjunction with presented material on a projector:

Refactoring existing programs for greater ease-of-use & extensibility:

  • Parallel I/O and journalling: making it easier to get information in & out of your program
  • Allowing run-time extensibility through plugins and extensible data structures: cutting down the continual recompile cycle
  • Real-time visualisation: using Monash's gLucifer package to do the grunt work of visualising your models.
Developing new applications, or when major re-engineering required:
  • Handling parallel domain decomposition of meshes and particles: what we provide, including interfaces to other meshing packages.
  • The Snark FEM/PIC toolkit: rapidly building a custom numerical method by composing modules from the framework.
Overviews of related projects/software:
  • Superstructure frameworks: Pyre
  • Solver toolkits: PETSc (and NAG)
  • eScript interface
  • Meshing libraries, such as Triangle, Qhull, LaGrit etc.
For the last part of the workshop (1/2 hour to an hour), we could discuss the projects the students are working on and how StGermain might be applicable/useful to them.
Resources: http://csd.vpac.org, the VPAC CSD portal, has links for you to download and read more about all our software developments
Return



Title:Solving PDEs with Python
Presenter:Lutz Gross
Content:
  • introduction to PDE solving in escript
  • data visualization in escript
  • solution of non-linear, time-dependent and coupled PDEs
Prerequisites: Python, some basic knowledge on ODEs and PDEs
Aims:Students are able to solve PDEs using Python/escript
Overview: escript is a python-based language to reduce general, non-linear, time-dependent, coupled PDEs in a sequence of solutions of linear PDEs, which the can be solved by using standard finite element or finite differences schemes. We will show how escript is used to solve a time-dependent temperature diffusion problem and then how to couple this problem with a linear-elastic deformation problem. We will also discussing the implementation of explicit time integration schemes to solve wave propagation equations. We will also show the results can be visualize.
Resources: http://www.esscc.uq.edu.au/Research/EscriptFinley/index.html
Return



Title: Iterative solutions of large matrix systems
Presenter:Linda Stals
Content: Conjugate gradient methods, multigrid and domain decomposition
Prerequisites: The prerequisites are a good understanding of introductory linear algebra (eg. what is the range and null space of a matrix). We shall, for example, assume that the students have covered material similar to the first 4-5 chapters of Lay; Linear Algebra and Its Applications. A basic knowledge of matrix and vector norms is also a prerequisite.
Aims: The aim is to introduce some of the more modern techniques for solving large sparse system of equations, particularly those arising from the solution of the partial differential equations.
Overview: The finite element and finite volume methods covered in this course produce a large sparse systems of equations. The techniques that we are most familiar with can not be applied to these large systems. For example, suppose it takes 1 second to solve a 100 × 100 sized matrix by using Gaussian Elimination, then a quick analysis based on the number of operations implies that it would take about 11.5 days to solve a 10000 × 10000 sized matrix. It is not unrealistic to want to solve problems with millions of unknowns.

In this course we will introduce new solution techniques to deal with these large scale problems. We shall define and develop the theoretical properties of the algorithms and then explore their practical use.

Resources:
  • Numerical Linear Algebra by Lloyd N. Trefethen and David Bau III (SIAM, 1997).
  • Applied Numerical Linear Algebra by James W. Demmel (SIAM, 1997).
  • A multigrid Tutorial by William L Briggs, Van Emden Henson and Steve F. McCormick (SIAM 2000)
  • An Introduction to the Conjugate Gradient Method Without the Agonizing Pain by Jonathan Richard Shewchuk (http://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.ps)
Return



Title:Linear Least Squares and Linear Algebra
Presenter:Linda Stals
Content:Normal equations, condition number, QR factorisation, Householder methods, implementation issues (row v's column storage)
Prerequisites:The prerequisites are a good understanding of introductory linear algebra (eg. what is the range and null space of a matrix). We shall, for example, assume that the students have covered material similar to the first 4-5 chapters of Lay; Linear Algebra and Its Applications. A basic knowledge of matrix and vector norms is also a prerequisite.
Aims:The aim is two fold; to introduce the standard techniques for the solution of linear least squares problems as well as introduce some of the important concepts in numerical linear algebra, such condition number, stability and, backward and forward error analysis.
Overview:Least squares fitting has a diverse number of applications including; economics, data mining, statistical analysis, image processing, adaptive optics, signal processing and surveying. We shall introduce some of the standard techniques for solving these problems by covering the theoretical basis in a lecture style setting and then exploring more practical issues in computer laboratories. One of the important aspects we want to focus on is when do these techniques fail and why.
Resources:
  • Numerical Linear Algebra by Lloyd N. Trefethen and David Bau III (SIAM, 1997).
  • Applied Numerical Linear Algebra by James W. Demmel (SIAM, 1997).
Return



Title:An Introduction to Finite Volume Methods
Presenter:Ian Turner
Content:
  • Introduction to conservation equations
  • Analytical solutions for the benchmark problems
  • Introduction to the Finite Volume method
  • Implementing boundary condition information into the model
  • Treatment of nonlinearity using an inexact Newton method
  • The treatment of advection within the framework of the FVM
Prerequisites:Linear Algebra, Introduction to Differential/Partial Differential Equations, Introduction to Scientific Computation and Matlab.
Aims:Obtain an understanding of state of the art methods for modelling diffusion and advection using finite volume methods.

Produce prototype FVM code which can solve model diffusion and advection problems.

Overview:Module 1: Introduction and the Generalised Transport Equation A brief discussion of the conservation equations that describe fluid motion. The notion of a generalised transport equation. Discussion of boundary and initial conditions. Derivation of analytical solutions for the benchmark problems considered in throughout the lectures.

Module 2: Introduction to Finite Volume Methods (FVM) Basic concepts and rules of the finite volume method. Application to the Generalised one-dimensional Diffusion Equation. Cell-centred and vertex-centred schemes. Treatment of diffusion coefficients at control volume faces and source/sink terms. Incorporating boundary condition information into the model. Inexact-Newton methods for solving no n-linear transport equations.

Module 3: FVM for Advection-Diffusion Equations The treatment of advection and the inclusion of these schemes within the framework of the FVM. Monotonicity arguments, TVD schemes, upstream averaging, other averaging methods. A brief discussion of flux limiting.

Module 4: Specialised Topics FVM for radially symmetric problems. Brief introduction to FVM in higher dimensions and implementation details for arbitrary grids.

Resources:
Return



Title:Ocean Modelling in Parallel
Presenter:Jason Roberts
Prerequisites:Knowledge of MPI
Aims:Raise awareness about potential performance impacts of parallelising serial code.
Overview:Broad overview of ocean modelling, issues specific to parallel operation.
Resources:Copy of presentation (15MB!) pdf file
Return



Title:Parallelizing PDE based large sequential numerical simulation code with PETSc
Presenter: Zhongze Li
Abstract:Many numerical simulations are related to partial differential equations (PDEs). The discretization of partial differential equations (PDEs) leads to large sparse linear systems. The solution of large sparse linear systems is the most time-consuming part of the computation. Therefore, it is central to many numerical simulations in science and engineering. Traditionally, direct methods are used to solve sparse linear systems with moderate size. However, iterative methods are only option available for solving very large sparse linear systems because of memory limits of parallel computers and unacceptable operation counts of direct methods. PETSc is a portable library for solving large sparse linear systems in parallel using iterative methods. In this talk, I will introduce how to parallelize a large sequential numerical simulation code with PETSc in detail.
Resources:Copy of presentation pdf file
Return































Contact us: apacss05@maths.anu.edu.au