-
Notifications
You must be signed in to change notification settings - Fork 1
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
Improve interactive OME-Zarr viewing performance in napari #45
Comments
I compared our performance with that for a test dataset that the ome-zarr devs use here: It opens faster (lower-res pyramids available), but browsing is fairly similar to our performance, so I would say that our OME hierarchy probably isn't the major factor slowing us down, it may come down mostly to the speed of the connection and the aggressiveness with which napari loads pyramid levels (and the apparently very limited caching of such levels it seems to do, e.g. zooming out typically needs to load the layers freshly). |
Having more pyramids should make initial loading faster, right? No! |
Improved chunking (see here: #32) massively improves interactive performance. We went from a chunking scheme where every original field of view had its own pyramid, thus there were the same number of files on every pyramid level. This took some 3+ minutes to load the plate and zooming was quite slow. Now we have rechunked pyramids, such that the chunks stay approximately constant in size and thus there are fewer and fewer files, the lower the resolution of the pyramid becomes. This loads the 23 well plate in ~15s! Learnings: |
We just talked with Kevin Yamauchi today (napari core dev). There is actually a large restructuring of the whole lazy-loading process currently in the works in the napari team, with Andy Sweet in the lead apparently. We'll try to attend some relevant napari community meetings to show our use case and get some ideas on whether they already work on things that will make our life easier :) |
Yes, the PR implementing these changes improves visualization performance quite a bit. It doesn't change the actual loading speeds that much, but makes the interface fully responsive during all movement and thus improves the experience of browsing the dataset. Had a few rounds of tests & improvements with Andy Sweets to get rid of some bugs, very optimistic about this implementation now. I think it's worth using that PR when we want to test performance and it may make for better demos :) I'd say we can close this for the time being. Let's wait for the PR to make its way into napari and for sharding to come to Zarr to improve the performance further :) |
…s_for_web_client Various updates for web client
Loading large, multi-well OME-Zarr projects into napari and browsing them interactively is still on the slower side. Here is an overview of what we're doing to improve that and what we can still try.
Things that we have already found to improve this:
NAPARI_ASYNC=1
before launching napari: Loading still a bit slow, but interface doesn't freeze while loadingThings we are working on:
Remaining issues:
Potentially contributing:
The text was updated successfully, but these errors were encountered: