Compiling NWChem with VampirTrace on Titan


Click here for full thread
Forum Regular
Hi Heike,

There are a few things to consider here:

1. VampirTrace is designed to work with MPI. There is also an interface that can be used to instrument code with VampirTrace (I build that into the Global Arrays years ago) but that interface has changed dramatically in recent years. So the current instrumentation in the Global Arrays no longer works. Therefore you need to build a pure MPI version of the Global Arrays, i.e. set ARMCI_NETWORK to MPI-TS.

2. NWChem uses the name of the compiler to choose a number of compilation flags. So if you do something like "make FC='compiler -a-bunch-of-flags' " then the Makefiles get hopelessly confused.

The way VampirTrace worked years ago was that you compiled your code, then at the link stage you inserted the VampirTrace library before -lpmpi. That way VampirTrace would provide the normal MPI interface and then call the internal MPI routines (this was a mechanism specified in MPI for supporting performance monitoring tools). So assuming that this still works you should be able to compile NWChem as usual, then edit the link-line and relink the code. That should give you a VampirTrace instrumented code which can measure performance at the MPI level.

Huub