checkpoint_schedules provides schedules for step-based incremental checkpointing of the adjoints to computer models. The schedules contain instructions indicating the sequence of forward and adjoint steps to be executed, and the data storage and retrieval to be performed.
The schedule instructions are independent of the model implementation, which enables the model authors to switch between checkpointing algorithms without recoding their adjoint solvers. Conversely, checkpoint_schedules provides developers of checkpointing algorithms with a direct mechanism to convey their work to model authors.
checkpoint_schedules is a Python package and can be installed using pip
pip install checkpoint-schedules
The usage guide of checkpoint_schedules is available here.
We welcome contributions to checkpoint_schedules! To contribute please consider the following steps:
- Fork the repository.
- Make your changes.
- Make sure that the tests pass by running
pytest test
andpytest --nbval-lax docs/notebooks/
- Add tests for your changes (if applicable).
- Add documentation for your changes that follows the Sphinx format.
- Submit your pull request.
Please report bugs on the issue tracker.
The complete documentation for checkpoint_schedules is available at Firedrake project website.
checkpoint_schedules is licensed under the GNU LGPL version 3. See the LICENSE file for details.
If you use checkpoint_schedules in your research, please cite this paper .