Profiling with Paraver

Basilisk can be compiled to generate execution traces which can be analyzed with Paraver.

Extrae installation

Traces are generated using the Extrae library which needs to be installed on the system. See the Extrae documentation for a detailed description of installation. On a Debian-like system, the following can help you.

sudo apt-get install libunwind-dev libboost-dev libpapi-dev \
     libxml2-dev binutils-dev libiberty-dev
./configure --prefix=$HOME/local --with-mpi=/usr/lib/openmpi \
	    --with-unwind=/usr --without-dyninst --with-papi=/usr \
	    --with-binutils=/usr --enable-instrument-io
make install

Extrae configuration and usage

Add to e.g. .bashrc

export EXTRAE_HOME=$HOME/local
source $EXTRAE_HOME/etc/

To profile a sequential test case (e.g. bump2D.tst), you can use

export EXTRAE_CONFIG_FILE=$BASILISK/paraver/extrae.xml
	LIBS="-L$EXTRAE_HOME/lib -lseqtrace" make bump2D.tst

For an MPI test case, use -lmpitrace instead. See the Extrae documentation for detailed explanations. The doc is also in $EXTRAE_HOME/share/doc/user-guide.pdf.

After the run, several files are generated (e.g. bump2D/bump2D.prv, bump2D/bump2D.pcf etc…) which can be displayed with Paraver.

To get you started with Paraver, several configuration files are provided in $BASILISK/paraver. You should also install and do the useful tutorials.

Paraver installation

Paraver should be installable from source, however it does not seem to work with recent versions of wxwidget (see below). Binaries for various operating systems are available for download.

This is the script which eventually fails on Debian 8.

sudo apt-get install libwxgtk3.0-dev libboost-serialization-dev
cd paraver-toolset
./configure --prefix=$HOME/local
make && make install
cd ../ptools_common_files
./configure --prefix=$HOME/local
make && make install
cd ../paraver-kernel
./configure --prefix=$HOME/local \
	    --with-boost-serialization=boost_serialization \
make && make install
cd ../wxparaver
./configure --prefix=$HOME/local \
	    --with-boost-serialization=boost_serialization \
	    --with-paraver=$HOME/local \
make && make install

Unfortunately this does not work. Seems to be a problem with WxPropertyGrid.