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

TST, BENCH: memory profiling/testing #817

Open
tylerjereddy opened this issue Sep 22, 2022 · 0 comments · May be fixed by #821
Open

TST, BENCH: memory profiling/testing #817

tylerjereddy opened this issue Sep 22, 2022 · 0 comments · May be fixed by #821

Comments

@tylerjereddy
Copy link
Collaborator

This is just a reminder to check if our current asv suite is sufficient to detect the memory footprint improvements related to fixing gh-811, and if not we should add a peak memory benchmark or two that are sensitive to that suite.

That said, it is quite common not to have CI tests for memory leaks, even in quite large projects, so we can probably delay the actual mem profiling code for a little bit as long as we fix soon-ish.

tylerjereddy added a commit to tylerjereddy/darshan that referenced this issue Sep 27, 2022
* add some `asv` peak memory benchmarks as regression guards
against darshan-hpcgh-811; the only thing missing (IMO) here to completely
close darshan-hpcgh-817 is a version of the log file with `HEATMAP` in it (see
the diff comments for why I don't have this for `asv` suite at the moment)

* although this won't automatically run in CI because it takes
too long and too much memory, it still seems to do an excellent
job of being sensitive to the patched leaks over the recent
history of our project:

- `asv continuous -e -b "peakmem.*" b6c8599 main`

```
       before           after         ratio
     [b6c8599]       [3fb2c36]
     <treddy_memleak_cffi_only_pt2~1>       <main>
-            239M              76M     0.32  cffi_backend.RetrieveLogData.peakmem_log_get_record('LUSTRE')
-            241M              76M     0.32  cffi_backend.RetrieveLogData.peakmem_log_get_record('H5F')
-            257M            75.8M     0.30  cffi_backend.RetrieveLogData.peakmem_log_get_record('STDIO')
-            289M              76M     0.26  cffi_backend.RetrieveLogData.peakmem_log_get_record('MPI-IO')
-            303M              76M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('POSIX')
-            304M            75.4M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('DXT_POSIX')
-            304M            75.3M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('DXT_MPIIO')
-            324M            75.8M     0.23  cffi_backend.RetrieveLogData.peakmem_log_get_record('H5D')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('DXT_POSIX')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('H5F')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('H5D')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('STDIO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('MPI-IO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('DXT_MPIIO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('LUSTRE')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('POSIX')

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.
```
@tylerjereddy tylerjereddy linked a pull request Sep 27, 2022 that will close this issue
tylerjereddy added a commit to tylerjereddy/darshan that referenced this issue Oct 19, 2022
* add some `asv` peak memory benchmarks as regression guards
against darshan-hpcgh-811; the only thing missing (IMO) here to completely
close darshan-hpcgh-817 is a version of the log file with `HEATMAP` in it (see
the diff comments for why I don't have this for `asv` suite at the moment)

* although this won't automatically run in CI because it takes
too long and too much memory, it still seems to do an excellent
job of being sensitive to the patched leaks over the recent
history of our project:

- `asv continuous -e -b "peakmem.*" b6c8599 main`

```
       before           after         ratio
     [b6c8599]       [3fb2c36]
     <treddy_memleak_cffi_only_pt2~1>       <main>
-            239M              76M     0.32  cffi_backend.RetrieveLogData.peakmem_log_get_record('LUSTRE')
-            241M              76M     0.32  cffi_backend.RetrieveLogData.peakmem_log_get_record('H5F')
-            257M            75.8M     0.30  cffi_backend.RetrieveLogData.peakmem_log_get_record('STDIO')
-            289M              76M     0.26  cffi_backend.RetrieveLogData.peakmem_log_get_record('MPI-IO')
-            303M              76M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('POSIX')
-            304M            75.4M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('DXT_POSIX')
-            304M            75.3M     0.25  cffi_backend.RetrieveLogData.peakmem_log_get_record('DXT_MPIIO')
-            324M            75.8M     0.23  cffi_backend.RetrieveLogData.peakmem_log_get_record('H5D')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('DXT_POSIX')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('H5F')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('H5D')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('STDIO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('MPI-IO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('DXT_MPIIO')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('LUSTRE')
-           23.7G            75.4M     0.00  cffi_backend.RetrieveLogData.peakmem_log_get_mounts('POSIX')

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
PERFORMANCE INCREASED.
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant