Report memory use of SWIFT
Fixes #414 (closed)
Adds a simple mechanism for getting reports of the main memory use in SWIFT. When not chosen the calls become no-ops. Each report is formatted like:
[0002] [00107.8] :memuse: 0:parts engine.c:engine_exchange_strays:1806 2052274
Where :memuse:
is a parsing label for extracting the records, 0:parts
shows
that this is step 0 and a report of the memory used by parts, the next field
is where the report originates and the final number the number of KBs in use.
These can be processed to give sums of each report per step by the process_memuse.py
script.
Note that we report particle use, whether or not a reallocation has occurred during
rebuild/repartition steps and the special label :step
is used to report the
memory in use by the process (i.e. resident set size) so that the fractions are
clear and how much memory in actually used.
Changes to consider:
- write output to a file not stdout.
Merge request reports
Activity
added 27 commits
-
2ba32d06...d6c10934 - 26 commits from branch
master
- 96b84400 - Merge remote-tracking branch 'origin/master' into memreport-test
-
2ba32d06...d6c10934 - 26 commits from branch
mentioned in issue #414 (closed)
added 1 commit
- edc2ac85 - Add protection against garbled lines, that happens when sharing output with other ranks
added 1 commit
- 017c570d - Always report the task memory use when rebuilding, not just when reallocating
added 54 commits
-
01673dd9...c08467a4 - 53 commits from branch
master
- 889b1ed8 - Merge remote-tracking branch 'origin/master' into memreport-test
-
01673dd9...c08467a4 - 53 commits from branch
added 974 commits
-
889b1ed8...1311f784 - 973 commits from branch
master
- d12d05d5 - Merge branch 'master' into memreport-test
-
889b1ed8...1311f784 - 973 commits from branch
added 2130 commits
-
60502af8...a0f68fd8 - 2129 commits from branch
master
- 635f2f70 - Merge branch 'master' into memreport-test
-
60502af8...a0f68fd8 - 2129 commits from branch
I've completely revisited this topic and created the new branch
memreport-swift
, which replaces all theposix_memalign
and associatedfree
calls withswift
versions that include a label, so we know what the memory is for. The information is gathered using a logger that you can dump, so we can build up a timeline of allocations and frees and the cumulative memory in these calls.See !757 (merged) which supersedes this work.