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

Significant memory consumption increase during merge seismograms after simulation #16

Open
dmitry-kabanov opened this issue Sep 12, 2018 · 1 comment

Comments

@dmitry-kabanov
Copy link
Collaborator

ASOFI3D uses int types everywhere, which does not allow seismogram files larger than 4(?) GB.
This occurs, at least I believe so, because on Intel Xeon machines ints are 32-bit, hence upper bound for int is 2 billion.

Possible solutions:

  • Switch to using 64-bit integers using stdint.h header and type int64_t.

How to reproduce:

  • Prepare a config that induces very large seismograms: long time and large number of receivers
  • Simulate
  • Observe that the simulation crashes at some point.
@dmitry-kabanov
Copy link
Collaborator Author

Investigation together with @vkazei proved tha the problem does not have anything to do with the overflow in 32-bit ints as we successfully ran a simulation with 5 GB seismograms (which, for 32-bit single-precision floats, are the arrays with 10^20 elements).

Studying how seismograms are written to disk, it was found that the procedure is not very memory-efficient, as each MPI process allocates memory for the full seismograms, that leads to ~2x memory requirements during the dumping stage comparing to the simulation stage.

So, probably, the error is due to the very high memory requirements and the seismograms writing should be more memory friendly.

@vkazei vkazei changed the title Apparently seismograms larger than 4 GB in size cannot be created Significant memory consumption increase during merge seismograms after simulation Sep 20, 2018
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

No branches or pull requests

1 participant