MPI profiling

Dear all,

Have anyone done the MPI profiling in LAMMPS? If yes, what tool did you use? I want to know how long a specific fix and function should take in one timestep.

Thanks,
Lynn

Dear all,

Have anyone done the MPI profiling in LAMMPS? If yes, what tool did you use?
I want to know how long a specific fix and function should take in one
timestep.

please note, that MPI profiling (i.e. measuring how much time is spent
in particular (kinds of) MPI calls) and function profiling (i.e.
measuring how much time is spent in a particular function) are two
different things.

a crude kind of function profiling already exists in LAMMPS. all time
spent in fixes and computes will be added to the "Modify" section of
the output times. so if you enable/disable that particular fix, you
will see the impact on simulation time. please also see the "timer"
command for options to make that information more accurate.

if you google around, you will find a variety of profiling tools for
MPI. some require instrumentation, some can be added after the fact
with LD_PRELOAD. some are easy to use, some require some learning
effort.

a simple alternative for collecting information about a specific fix
would be to bracket the function calls with calls to MPI_Wtime() and
compute the difference and then accumulate/analyze this time inside
the fix. this requires some programming, but you don't have to deal
with learning how to use a library or tool.
on the other hand, profiling tools like TAU (out of the university of
oregon) provide in-depth and detailed performance analysis of the code
and message passing (with the associated learning curve).

personally, i have not had the case of performance issues due to MPI
call patterns, so i have gotten away with the LAMMPS timing info,
using the Linux kernel assisted "perf" tool, or hacking MPI_Wtime()
calls into subroutines.

axel

Hi Axel,

Many thanks for your explanation. I will have a try. Hope it can work.

Best,
Lynn