First draft of explanation_performance guide - #2705
Conversation
| | | The fieldset data can't be changed after it is loaded, as dask operations are not supported on the raw zarr data. | | ||
|
|
||
| ```{note} | ||
| In our performance testing, we have found that using zarr files saved without any compression can be considerably faster than using compressed zarr files. However, we are working on an upstream fix in to make caching compressed zarr files faster, so this may change in the future. |
There was a problem hiding this comment.
Not sure what you're referring to here by 'working on an upstream fix'?
There was a problem hiding this comment.
Oh, I thought you mentioned that the issue was a repeated/inefficient uncompressing logic in zarr. And that we could try patch/fix this issue in the zarr library itself?
If that's not in the planning; then better to remove this statement
|
Looks good to far! Some comments above |
Co-authored-by: Nick Hodgskin <36369090+VeckoTheGecko@users.noreply.github.com>
Co-authored-by: Nick Hodgskin <36369090+VeckoTheGecko@users.noreply.github.com>
for more information, see https://pre-commit.ci
…ebille/Parcels into explanation_performance
| | | The fieldset data can't be changed after it is loaded, as dask operations are not supported on the raw zarr data. | | ||
|
|
||
| ```{note} | ||
| In our performance testing, we have found that using zarr files saved without any compression can be considerably faster than using compressed zarr files. However, we are working on an upstream fix in to make caching compressed zarr files faster, so this may change in the future. |
| | Works out-of-the-box | Only performs well for very small ParticleSets | | ||
|
|
||
| ```{note} | ||
| The long-term plan for Parcels development is to make this Option 4 work well for all cases. However, this will require significant work on Dask indexing. |
There was a problem hiding this comment.
This is correct, right?
| source_store = zarr.storage.LocalStore(filenames) | ||
| cache_store = zarr.storage.MemoryStore() | ||
|
|
||
| store = CacheStore( | ||
| store=source_store, cache_store=cache_store, max_size=MAX_CACHE_SIZE | ||
| ) |
There was a problem hiding this comment.
Should/can we put some of this under the hood in the parcels.open_raw_zarr() method?
| | | The fieldset data can't be changed after it is loaded, as dask operations are not supported on the raw zarr data. | | ||
|
|
||
| ```{note} | ||
| In our performance testing, we have found that using zarr files saved without any compression can be considerably faster than using compressed zarr files. However, we are working on an upstream fix in to make caching compressed zarr files faster, so this may change in the future. |
There was a problem hiding this comment.
Oh, I thought you mentioned that the issue was a repeated/inefficient uncompressing logic in zarr. And that we could try patch/fix this issue in the zarr library itself?
If that's not in the planning; then better to remove this statement
Description
This PR adds an explanation_performance.md guide to the documentation, detailing the four options for loading fieldsets
Note that this PR is blocked by the implementation of
windowed_arrays(#2656)Checklist
mainfor normal development,v3-supportfor v3 support)AI Disclosure