Newer Older
1 2 3
NOTE: Please visit the following web site for more thorough documentation:

4 5 6 7 8 9 10 11
Compile and install example for BG/P:

# adjust these paths to suit
export PREFIX=/home/carns/demo/install
export LOGPATH=/home/carns/demo

# configuring, compiling, and installing darshan
Philip Carns's avatar
Philip Carns committed
./configure --with-mem-align=16 --with-log-path=$LOGPATH --prefix=$PREFIX --with-zlib-for-mpi=/soft/apps/zlib-1.2.3/ --with-jobid-env=COBALT_JOBID CFLAGS="-O2"
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
make install

Explanation of configure arguments:

--with-log-path (manditory): specifies the directory where all of the
application log files will be written.  

--prefix (manditory): where compiler scripts and darshan libraries will be

--with-mem-align (manditory): memory alignment for the architecture you are
building for; 16 is an interesting value on BG/P because that is the optimal
alignment for tree network communication.

Philip Carns's avatar
Philip Carns committed
29 30 31 32
--with-jobid-env (manditory): name of environment variable to use for
determining the job id at runtime.  If this environment variable is not set,
then Darshan will use the process pid instead.

33 34 35
--with-zlib-for-mpi (optional): path to a zlib build that is cross compiled
for use with mpi processes

Philip Carns's avatar
Philip Carns committed

37 38 39 40 41 42 43 44 45 46 47 48 49
Setting up the log directory

# create the directory that you specified in the --with-log-path argument to
# configure (if it does not already exist)
mkdir $LOGPATH
# run a darshan script (no arguments needed) that will create subdirectories
# for darshan to place output in.  The subdirectories are structured in
# <year>/<month>/<day> format.  The last subdirectories will have the sticky 
# bit set (1777 permissions, like /tmp) so that multiple users can write log
# files to the same directories.

Philip Carns's avatar
Philip Carns committed
50 51 52 53 54 55 56 57 58 59 60
Generating compiler scripts

Use one of,, or
to create new compiler scripts for C, FORTRAN, or C++.  For example:

./ `which mpicc` --output $PREFIX/bin/mpicc

The resulting scripts can be placed in your path to be used as the default
compilers (if desired).

61 62
Using darshan:
Philip Carns's avatar
Philip Carns committed
63 64
Compile your application using one of the compiler scripts genrated in the
previous step.  If you have a previously compiled application you can simply
65 66 67 68 69 70 71
relink it using the darshan compilers rather than recompiling from scratch.


install/bin/mpicc mpi-io-test.c -o mpi-io-test

The log files that darshan generates at run time will be in
Philip Carns's avatar
Philip Carns committed
72 73 74 75 76 77 78 79 80 81
a binary format with native gzip compression.  

To get a human readable version of the log file, use the
"$PREFIX/bin/darshan-parser $LOGPATH/<log_file_name>" utility from the
bin directory.

To generate key summary graphs, go to the "utils" directory of the
source tree and run "./" on the log file.  This
tool requires pdflatex and a version of gnuplot with pdf support.  It will
generate a pdf file with graphs summarizing the behavior of the application.

83 84 85
You can also compare two different log files by using
$PREFIX/bin/darshan-diff <log1> <log2> to see what fields are different.

86 87 88 89 90 91 92 93 94 95 96 97
compiling libz for the compute nodes

NOTE: This is not necessary (there is a libz build already available for
compute nodes). The instructions are included for archival purposes.

cd extern
tar -vxzf zlib-1.2.3.tar.gz
cd zlib-1.2.3
CC=/bgsys/drivers/ppcfloor/gnu-linux/bin/powerpc-bgp-linux-gcc CFLAGS="-O2" ./configure
cp libz.a $PREFIX/lib/