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

Online generation of large realizations #403

Open
juliohm opened this issue Feb 27, 2024 · 0 comments
Open

Online generation of large realizations #403

juliohm opened this issue Feb 27, 2024 · 0 comments

Comments

@juliohm
Copy link
Member

juliohm commented Feb 27, 2024

We are working on projects where each realization has more than 200 million geometries. Assuming that values are stored as Float64, we have ~0.5Gb per realization. If we request 10 parallel processes, we can consume up to 5Gb of RAM.

Given these RAM constraints, it would be useful to introduce an OnlineEnsemble or some other mechanism to consume realizations in an online fashion. The pseudo-code for this could look something like the following:

# request N realizations with P processes
reals = rand(proc, domain, N, pool = 1:P, async = true)

while !isempty(reals)
  real = pop!(reals)
  # do work
  # save to disk
end

In this case the rand call would return immediately, and the N realizations would be consumed on batches by P parallel processes. At any single point in time, the maximum RAM required will be a function of P as opposed to N.

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

No branches or pull requests

1 participant