pySDC - Prototyping spectral deferred corrections

In this paper we present the Python framework pySDC for solving collocation problems with spectral deferred correction methods (SDC) and their time-parallel variant PFASST, the parallel full approximation scheme in space and time. pySDC features many implementations of SDC and PFASST, from simple implicit time-stepping to high-order implicit-explicit or multi-implicit splitting and multi-level spectral deferred corrections. It comes with many different, pre-implemented examples and has seven tutorials to help new users with their first steps. Time-parallelism is implemented either in an emulated way for debugging and prototyping as well as using MPI for benchmarking. The code is fully documented and tested using continuous integration, including most results of previous publications. Here, we describe the structure of the code by taking two different perspectives: the user's and the developer's perspective. While the first sheds light on the front-end, the examples and the tutorials, the second is used to describe the underlying implementation and the data structures. We show three different examples to highlight various aspects of the implementation, the capabilities and the usage of pySDC. Also, couplings to the FEniCS framework and PETSc, the latter including spatial parallelism with MPI, are described.

[1]  Arjen Doelman,et al.  Pattern formation in the one-dimensional Gray - Scott model , 1997 .

[2]  Lisandro Dalcin,et al.  Parallel distributed computing using Python , 2011 .

[3]  Tao Tang,et al.  Long Time Numerical Simulations for Phase-Field Problems Using p-Adaptive Spectral Deferred Correction Methods , 2015, SIAM J. Sci. Comput..

[4]  Michael L. Minion,et al.  Conservative multi-implicit spectral deferred correction methods for reacting gas dynamics , 2004 .

[5]  Michael L. Minion,et al.  TOWARD AN EFFICIENT PARALLEL IN TIME METHOD FOR PARTIAL DIFFERENTIAL EQUATIONS , 2012 .

[6]  Martin Weiser,et al.  Faster SDC convergence on non-equidistant grids by DIRK sweeps , 2015 .

[7]  Michael L. Minion,et al.  A HYBRID PARAREAL SPECTRAL DEFERRED CORRECTIONS METHOD , 2010 .

[8]  et al.,et al.  Jupyter Notebooks - a publishing format for reproducible computational workflows , 2016, ELPUB.

[9]  Anders Logg,et al.  Automated Solution of Differential Equations by the Finite Element Method: The FEniCS Book , 2012 .

[10]  Samantha S. Foley,et al.  A dependency-driven formulation of parareal: parallel-in-time solution of PDEs as a many-task application , 2011, MTAGS '11.

[11]  Anders Logg,et al.  DOLFIN: Automated finite element computing , 2010, TOMS.

[12]  John D. Hunter,et al.  Matplotlib: A 2D Graphics Environment , 2007, Computing in Science & Engineering.

[13]  Rolf Krause,et al.  A multi-level spectral deferred correction method , 2013, BIT Numerical Mathematics.

[14]  Matthias Bolten,et al.  Asymptotic convergence of the parallel full approximation scheme in space and time for linear problems , 2017, Numer. Linear Algebra Appl..

[15]  Martin J. Gander,et al.  50 Years of Time Parallel Time Integration , 2015 .

[16]  Rolf Krause,et al.  Inexact spectral deferred corrections , 2016 .

[17]  Martin Weiser,et al.  Theoretically optimal inexact SDC methods , 2016 .

[18]  P. Houwen,et al.  Parallel iteration of high-order Runge-Kutta methods with stepsize control , 1990 .

[19]  Dorian Krause,et al.  JURECA: General-purpose supercomputer at Jülich Supercomputing Centre , 2016 .

[20]  Kevin Burrage Parallel methods for ODEs , 1997, Adv. Comput. Math..

[21]  Andrew T. T. McRae,et al.  Firedrake: automating the finite element method by composing abstractions , 2015, ACM Trans. Math. Softw..

[22]  Elizabeth L. Bouzarth,et al.  A multirate time integrator for regularized Stokeslets , 2010, J. Comput. Phys..

[23]  L. Greengard,et al.  Spectral Deferred Correction Methods for Ordinary Differential Equations , 2000 .

[24]  Colin B. Macdonald,et al.  Parallel High-Order Integrators , 2010, SIAM J. Sci. Comput..

[25]  Ralf Kornhuber,et al.  Time discretizations of anisotropic Allen–Cahn equations , 2013 .

[26]  Daniel Ruprecht,et al.  Toward transient finite element simulation of thermal deformation of machine tools in real-time , 2017, ArXiv.

[27]  Rolf Krause,et al.  A massively space-time parallel N-body solver , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[28]  Jingfang Huang,et al.  Accelerating the convergence of spectral deferred correction methods , 2006, J. Comput. Phys..

[29]  Matthias Bolten,et al.  Interweaving PFASST and Parallel Multigrid , 2015, SIAM J. Sci. Comput..

[30]  Katherine J. Evans,et al.  A Spectral Deferred Correction Method Applied to the Shallow Water Equations on a Sphere , 2013 .

[31]  Robert Speck,et al.  A high-order Boris integrator , 2014, J. Comput. Phys..

[32]  M. Minion Semi-implicit spectral deferred correction methods for ordinary differential equations , 2003 .

[33]  Gaël Varoquaux,et al.  The NumPy Array: A Structure for Efficient Numerical Computation , 2011, Computing in Science & Engineering.

[34]  Robert Speck,et al.  Parallelizing spectral deferred corrections across the method , 2017, Comput. Vis. Sci..

[35]  Robert Speck,et al.  Spectral deferred corrections with fast-wave slow-wave splitting , 2016, SIAM J. Sci. Comput..

[36]  Michael L. Minion,et al.  Semi-implicit projection methods for incompressible flow based on spectral deferred corrections , 2004 .

[37]  Tao Tang,et al.  High-Order Convergence of Spectral Deferred Correction Methods on General Quadrature Nodes , 2013, J. Sci. Comput..

[38]  A. Bourlioux,et al.  High-order multi-implicit spectral deferred correction methods for problems of reactive flow , 2003 .

[39]  Stephen K. Scott,et al.  Autocatalytic reactions in the isothermal, continuous stirred tank reactor: Isolas and other forms of multistability , 1983 .

[40]  Martin J. Gander,et al.  PARAEXP: A Parallel Integrator for Linear Initial-Value Problems , 2013, SIAM J. Sci. Comput..

[41]  Matthias Bolten,et al.  A multigrid perspective on the parallel full approximation scheme in space and time , 2016, Numer. Linear Algebra Appl..

[42]  Robert Speck,et al.  Fault-tolerant parallel-in-time integration with PFASST , 2015, Parallel Comput..

[43]  Matthew G. Knepley,et al.  PyClaw: Accessible, Extensible, Scalable Tools for Wave Propagation Problems , 2011, SIAM J. Sci. Comput..

[44]  Eric Jones,et al.  SciPy: Open Source Scientific Tools for Python , 2001 .

[45]  Yinhua Xia,et al.  Efficient time discretization for local discontinuous Galerkin methods , 2007 .

[46]  Alexander Schnurpfeil,et al.  Flexible and Generic Workflow Management , 2015, PARCO.