asQ is a python package for developing parallel-in-time ParaDiag methods for finite element models. asQ is designed to allow fast prototyping of new ParaDiag methods, while still being scalable to large HPC systems with parallelism in both time and space.
This is achieved using the Firedrake and PETSc libraries. The finite element models are defined by specifying the weak form using Firedrake, "an automated system for the portable solution of partial differential equations using the finite element method", and the linear and nonlinear solvers required are provided by PETSc, "the Portable, Extensible Toolkit for Scientific Computation".
ParaDiag is a parallel-in-time method, meaning that is solves for multiple timesteps of a timeseries simultaneously, rather than one at a time like traditional serial-in-time methods. This review article provides a good introduction to the method. asQ implements the ParaDiag-II family of methods based on creating a block-circulant approximation to the all-at-once system which can be block-diagonalised with the FFT and solved efficiently in parallel.
asQ can be installed as part of a Firedrake installation. You can find instructions for installing Firedrake here: (download instructions).
To install asQ, pass the arguments --install asQ
to the firedrake-install
script.
The best place to start is the examples directory. Annotated scripts for the linear advection equation and the heat equation show how to set up a problem with asQ and solve the timeseries using ParaDiag.
More advanced scripts can be found in the case studies directory, including scripts for the shallow water equations and a model for stratigraphic evolution of the sea floor.
If you would like help setting up and using asQ, please get in touch and raise an issue.
Werner Bauer (University of Surrey)
Colin Cotter (Imperial College London)
Abdalaziz Hamdan (Imperial College London)
Joshua Hope-Collins (Imperial College London)
Lawrence Mitchell (Nvidia)
Development of asQ has been supported by the following funders and grants:
EPSRC (EP/W015439/1 & EP/R029628/1)
NERC (NE/R008795/1)
ExCALIBUR & UK Met Office (SPF EX20-8 Exposing Parallelism: Parallel-in-Time)