IPM (https://github.com/nerscadmin/IPM) is a lightweight MPI profiler. IPM itself is great and very easy to use, but the post-processing of profiling results is a bit cumbersome: the original Perl-based script ipm_parse
is not easy to extend; plots are generated by the legacy ploticus
tool and look too old to publish on modern journals.
I wrote some Python scripts to parse IPM's XML log file into Pandas Dataframes, to allow easy exploration & visualization of profiling results in Python.
Install:
$ pip install git+https://github.com/JiaweiZhuang/ipm_util.git
Demo: See ./examples
Currently assumes IPM_LOG=terse
(per-rank, per MPI function type). Not tested with IPM_LOG=full
yet (per MPI function call, per message size).