-
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
Implement downscaling for the almost-infinite scenarios #278
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## main #278 +/- ##
==========================================
- Coverage 15.59% 15.39% -0.20%
==========================================
Files 296 299 +3
Lines 21469 21454 -15
==========================================
- Hits 3348 3303 -45
- Misses 18121 18151 +30 ☔ View full report in Codecov by Sentry. |
necsim/impls/no-std/src/cogs/dispersal_sampler/almost_infinite_downscaled.rs
Outdated
Show resolved
Hide resolved
Let's follow the path of least resistance / easiest implementation for now
|
@NicoFirbas I've now got a minimal prototype that ... sort of works |
Here's the Python script to orchestrate the gradual downscaling of the habitat https://gist.github.com/juntyr/4e98b3cb7e30e30c8a20ef27ad0c0ba1 |
The issue is that even though the event-skipping algorithm is fast and can speed up the simulation tail, it also needs a fast dispersal sampler. In particular, it needs fast non-self-dispersal. A version based on rejection sampling was just far too slow, so this current code just cheats and switches to nearest-neighbour dispersal when in downsampled mode ... yeah. What could be done is to precompute the non-self-dispersal target distribution and to then just use that. However, that would be not fully accurate (but then again we're already simplifying in major ways) but most importantly probably not target all possible locations, since a finite pre-computation might only learn about a few. |
Improvement ideas
|
maybe a very hacky habitat-dependent pre-processing and post-processing hook?could only downscale internally and then remap to fake upscaled coords before and afterdefault impl for habitats would do nothing