1) How to determine the ranks of each process that generated each trace file? Each trace file name contains the name of the machine and the pid of the process. If you look at the timing file, it maps ranks to machines for the timing job that we run before and after the traced job. We use the same machine file for both the timing jobs and the real job. So, we know for a certainty that the same ranks that were on machine N in the timing jobs will be on that same machine in the real job. However, we don't know for sure which pid in the real job is which of the two ranks that ran on that machine. This is where I think it is a safe assumption that the lower pid is the lower rank. 2) How do we determine the values of the parameters in the MPI calls? Unfortunately, you can't. Th trace of the MPI_ calls shows just the address of the pointer arguments which (since the memory is long gone) is pretty close to worthless. I think it's still interesting to include the MPI_ calls bec you can still figure out what they are doing by looking at the nested system calls.