-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy loading for rust #97
Comments
as you already said: i. or ii. seem to be likely candidates ... |
Yes, but unfortunately no one of them is very much maintained, so we have to be ready to fix them ourselves (if needed). We might want to have a look to the code, |
maybe we should provide the possibility to do the |
@alecandido can you please remind me what you meant by "operators headers syncer" above? |
It's more than two years ago, but I guess it was: Lines 186 to 203 in 3bfc89d
and friends (e.g. __iter__ )
The idea was that the inventory is partly in memory, and you can change it in memory without dumping on disk. But, every now and then, you want to persist to disk (even right before losing what you've done so far). |
ok I see - so for the moment I'm not keeping a copy in memory in Rust: i.e. there is no |
Well, I guess your main concern is not much the cache implementation, which could be kept in Python, or wherever is needed, but the write operation. |
We'd like PineAPPL as well to be able to consume an EKO one
Q2
at a time, since evolving grids requesting a huge number ofQ2
points would require splitting the grid otherwise.In order to do this, the easiest is to directly provide and maintain a Rust crate that is able to manage the EKO output format.
Indeed, PyO3 would make it possible to run Python code from Rust, but it is more a handle on the interpreter itself, rather than proper bindings in this direction (even though it might be used for this, but it can be painful).
So, the easiest thing it's to make a standalone crate in this repository (unfortunately
eko
is already lost as a name, but we can still use something like get eko, i.e.geko
).In order to do this, we don't really need many ingredients:
tar
library, for which the one linked is an obvious candidateayaml
library, that is another easy choiceserde-yaml
npy
library, and here it becomes difficult; the alternatives arenpyz
not much maintained, but should be complete enoughndarray-npy
, slightly more maintained in the recent future, but it does not seem to have a complete feature setnpy
, that is mentioned by the previous, and the number 1. claims to be its fork, but it looks untouched from 2018#242 loader
In light of the release of the new runner, and the associated new internal format, I'd speed up the implementation of a first version of the loader.
First iteration (strictly required):
sync
erSecond iteration (nice-to-have):
The text was updated successfully, but these errors were encountered: