-
Notifications
You must be signed in to change notification settings - Fork 634
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
Materialization of DFT field data on the master only #1797
Comments
(As much as possible, it would be nice to avoid collecting the DFT field data on any single process—which ultimately won't scale, because all the DFT fields will overwhelm the memory available on any single process if the problem gets big enough—but rather to leave it distributed and to compute with it in that form, e.g. as we do for the near-to-far transformation.) |
In particular, the adjoint solver should never call get_dft — it should compute a distributed dot product of the forward and adjoint fields. |
The outline I have in mind is:
|
DFT fields returned to the user are gathered in full on each process. This can result in massive memory allocations, especially when multiple Meep processes are running on the same physical node.
In many scenarios, the DFT field data is not needed on each worker/process but only on the master. Being able to materialize DFT fields on the master only could alleviate many out-of-memory situations.
The text was updated successfully, but these errors were encountered: