INSTALL 3.51 KB
Newer Older
1
2
3
NOTE: Please visit the following web site for more thorough documentation:
http://www.mcs.anl.gov/research/projects/darshan/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
12
./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
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
installed.

--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
36

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.
darshan-mk-log-dirs.pl

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

Use one of darshan-gen-cc.pl, darshan-gen-fortran.pl, or darshan-gen-cxx.pl
to create new compiler scripts for C, FORTRAN, or C++.  For example:

./darshan-gen-cc.pl `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.

Example:

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 "./darshan-aggregate-stats.pl" 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.
82

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
make
cp libz.a $PREFIX/lib/
98