MPI Strace Analyzer
I work a great deal in HPC (High Performance Computing) which means that I work with applications that are MPI based. MPI codes are basically individual processes that can run on different nodes but work together and communicate data (ans possibly instructions). However, if you strace an MPI application you will get an strace file for each process. For example, if you run on 96 cores with 1 MPI process per code, then you will get 96 strace files.
The strace analyzer tool allows you to examine each strace file in turn but you have no way of taking the data from each strace analysis and examining the statistics across the MPI application run. So I modified the strace analyzer tool to produce what is called a “pickle” which allows me to store arrays and other information from a Python application in a simple text file. Then I wrote an application that reads each “pickle” and performs a statistical analysis across the set of files.
This allows me to examine the overall statistical behavior of the application even though the data is spread across several strace files.