Skip to content
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

Feature/multilevel #378

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

Conversation

ArneBouillon
Copy link

@ArneBouillon ArneBouillon commented May 17, 2024

Purpose

Add multilevel Monte Carlo simulation to EKI.

This technique uses a hierarchy of accuracy levels to the forward model. Most EKI particles will use coarse, cheap models, while only a few need to simulate the full-resolution model.

To-do

This PR is a proof of concept. I have attempted an implementation that is as non-intrusive as possible, but there are many ways to implement our MLMC algorithm, so I can adapt to feedback by the maintainers. This draft PR serves to gauge whether EKP.jl is interested in multilevel particle methods, while at the same time showing that implementing this is feasible. The implementation is not documented yet; if the maintainers decide that MLMC is desirable, I will of course add documentation.

MLMC, as proposed in the paper linked above, also applies to other particle methods such as EKS. This proof of concept is purposefully limited to EKI.

Content

  • A LevelScheduler object assigns levels to each particle in the ensemble. When evaluating the forward model in a particle, the corresponding level determines the minimum accuracy for the forward-model evaluation.
  • The random noise used throughout EKI needs to be correlated for specific particles in the ensemble (see paper). This is also dictated by the LevelScheduler.

Summary

I would like to contribute an implementation of the MLMC approach to simulation particle methods, which is detailed in our recent paper. This draft PR

  • asks whether EKP.jl is interested in this feature, and
  • provides a proof-of-concept implementation to demonstrate the feasibility of MLMC within the existing codebase.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant