patrick-kidger / patrick-kidger/diffrax
Recommendation for real-time publishing of vector field
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.1k
- Forks
- 189
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 1
Description
As far as I understand, there are two main ways of inspecting the progress of a diffeqsolve:
progress_meterthis is called every timestep with the ability to use jax conditionals to do everyntimesteps instead but uses thesolver_staterather than the vector field as an argument and therefore, unless a custom solver is defined that saves a copy of vector field in its internal state then we are limited with the information we can save.saveathere diffrax stores the relevant data in memory and returns asolutionvariable containing all this data after the solve completes.
What I would like to do is instead push (and potentially postprocess) data at eachsaveattimestep to a file or external server (such as mlflow) immediately (or potentially asynchronously) so that I can monitor how the simulation is progressing in real-time.
Do you have any recommendations on how to achieve this with the current API? Or a laundry list of required PR's to make something like this possible?
Thanks again! 🙏🏻
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the current diffeqsolve API around progress_meter, saveat, solver_state, and solution. Clarify whether the desired outcome is an API change, documentation, or a defined integration approach for streaming or asynchronous saveat data; the issue is done when those requirements and supported behavior are agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100