Summary
- Look at package documentation for tested examples, tutorials, and information. The package documentation is the one true canonical source on the state of the package and its versioned.
- We are still in the middle of redoing some of our documentation (SciML: Open Source Software for Scientific Machine Learning with Julia · Overview of Julia's SciML). I know some of the examples from this repo are missing from those docs, that’s why I haven’t fully deprecated it, I’m just looking for the time to do it.
- The examples run if you use the version of Julia that matches the manifests. Julia manifests from v1.7 onward (and in later v1.6-LTS patches). This means that the very old manifests do not self-document their version. Sorry, but it’s also pre-LTS so the best thing is to just update those examples.
- That entire repo is in the process of being removed with the examples being part of tested packages. So it’s not the best source anymore. The package documentation is what will show you update to date documentation and tutorials on the packages.
- We know that repo is very old. In fact, with the
highdim_pde
PDE example in there not having been updated since 2019, that code actually pre-dates the existence of the SciML organization and our use of the term in general.
- In 2020 when the SciML organization was founded, we had a multi-year goal set to define an all encompassing differentiable simulation interface for modeling and simulation. By summer of 2022 we are now at the state you see in SciML: Open Source Software for Scientific Machine Learning with Julia · Overview of Julia's SciML. Importantly, this means that the big backlog of package renames, interface expansions, and compilation handling is completed. In other words, the interfaces have stabilized. One of our upcoming ecosystem blog posts will go into detail on this, so I’ll refer to SciML Scientific Machine Learning Blog as the source for more information.
In other words, yes, example scripts like highdim_pde
that were written before SciML existed need an update. They are so old that Julia didn’t even version the manifests back then. But things are very different now. SciML has already completed its “v1.0” event and now things are stabilizing around a brand new organization wide documentation system. That said, not all tutorials have made it into the new documentation, these ones are definitely on the list, and more information on this process will come from the standard source SciML Scientific Machine Learning Blog shortly.
Point by Point
Yes, but those scripts are not in tests. I suggest you use the tutorials in the packages. For example:
https://docs.sciml.ai/SciMLSensitivity/stable/neural_ode/neural_ode_flux/
It shows the package version. And this is an up-to-date tutorial that is used within the unit tests so if it fails then it will alert the developers who then either need to ensure the tutorial gets updated or that any breaks are reversed. That kind of treatment does not happen on repos of random scripts from a few years ago: I highly recommend using the packaged tutorials.
That is a lower bound. See how the designations in Pkg.jl are read:
https://pkgdocs.julialang.org/dev/compatibility/
SciML supports the LTS onwards:
The examples in the package documentation are tested, synchronized, and updated with the packages. Hence, refer to the package tutorials for updated code. Anything outside of that are demos with a manifest that show how something could be done at one point in the past, but won’t necessarily be updated.
Just use the documentation in the packages? That’s literally just tested by adding the packages and running the code. There’s nothing else extra.
I don’t understand. There’s 3 packages in there. Let’s take a look at:
Most are standard libraries. The things which are not standard libraries are:
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
NeuralNetDiffEq = "8faf48c0-8b73-11e9-0e63-2155955bfa4d"
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
3 packages. This example puts neural networks (Flux) inside of a stochastic differential equation (StochasticDiffEq) with the connection being the package NeuralNetDiffEq.jl back in 2020. In 2022 we have split NeuralNetDiffEq.jl into the Physics-Informed Neural Network (PINN) functionality (NeuralPDE.jl), and the high dimensional PDE solver functionality (HighDimPDE.jl), which is where we then refer to this stuff today. We are still in the middle of handling some of the last parts of HighDimPDE.jl, and when that’s done I’d just refer to there to its tested examples instead of the demo repo.