Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
D6.9: Shared persistent Memoisation Library for Python / Sage #143
Persistent memoisation is the computational process of storing a program's outputs and retrieving them later, instead of re-running programs that are guaranteed to return the same answer. This approach may be useful in a wide range of fields but is particularly relevant to mathematicians: indeed, it's common for them to face compute intensive exact problems with small inputs and small outputs.
Results can be stored for future calls to a function in the present program session, in later sessions, or even for other users in different parts of the world. Beside the advantages of recalling old results instead of repeating work, a human-readable cache could also be used by researchers to create a reproducible record of computed results that can be used outside the context of the memoisation system itself.
The aim of D6.9 is to establish a persistent memoisation framework to cache results in Python and GAP across sessions, in a way that is easy to deploy and configure, and allows for results to be shared reliably between different researchers. D6.9 requires a "shared persistent memoisation library for Python/Sage", which is fulfilled by
In this report, we present a review of some existing tools for memoisation, describe the two new packages, show an example of their use together, and give an overview of the future direction of this project.
I have just edited the top comment in this thread with an abstract for the deliverable.
Thanks! I imported it in the repo (by running `make WP6/D6.9/github-issue-description.tex` from the main directory), so it will appear in the report next time you compile it. Thanks for the other improvements to the repo. Did you get a chance to add "support for methods" in the comparison table? Other than this, that sounds ready to submit, right?