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

BatchedInverseProblem with asynchronous, device-aware forward_map + concatenation #232

Open
glwagner opened this issue Mar 14, 2022 · 1 comment
Labels
🤥 enhancement New feature or request 🎮 gpu

Comments

@glwagner
Copy link
Member

We need a way to run batches of forward simulations asynchronously, and then to concatenate the forward maps deterministically for EnsembleKalmanInversion. One way to do this is to develop a BatchedInverseProblem that consists of

  1. A tuple / array of InverseProblems, each either their own observations and simulation;
  2. A utility that concatenates the forward_map / inverting_forward_map from each individual InverseProblem to pass to EnsembleKalmanInversion.
  3. The ability to extract each inverting_forward_map asynchronously: https://docs.julialang.org/en/v1/manual/asynchronous-programming/

We probably also want to make inverting_forward_map "device aware", so that we can run simulations on different GPUs on the same node (for example). This won't be hard, since it's just a matter of "switching" to the appropriate device before running any GPU code. We can copy data to the CPU in FieldTimeSeriesCollector while the simulations are running, so none of the rest of the code needs to care about this. See CUDA.jl docs or here: https://juliagpu.org/post/2020-07-18-cuda_1.3/index.html.

All of this is relatively simple to implement in that it won't take many lines of code once we know what to write.

@glwagner glwagner added the 🤥 enhancement New feature or request label Mar 14, 2022
@glwagner
Copy link
Member Author

glwagner commented Apr 8, 2022

@sandreza and @simone-silvestri this is the feature we discussed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🤥 enhancement New feature or request 🎮 gpu
Projects
None yet
Development

No branches or pull requests

2 participants