-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALL
131 lines (113 loc) · 5.8 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Installing STAT
__________________________________________________________
Table of Contents
Dependent Packages
Installation
__________________________________________________________
Dependent Packages
STAT has several dependencies
Table 1. STAT Dependent Packages
Package What It Does
Package Web Page
Graphlib version 2.0 or greater Graph creation, merging, and
export
https://github.com/lee218llnl/STAT/
Launchmon Scalable daemon co-location
http://sourceforge.net/projects/launchmon/
Libdwarf Debug information parsing (Required by StackWalker)
http://reality.sgiweb.org/davea/dwarf.html
MRNet version 3.0 or greater Scalable multicast and reduction
network
http://www.paradyn.org/mrnet/
StackWalker Lightweight stack trace sampling
http://www.paradyn.org/html/downloads.html
In addition, the STAT GUI requires Python with PyGTK, both of
which are commonly preinstalled with many Linux operating
systems. The Pygments Python module can optionally be installed
to allow the STAT GUI to perform syntax highlighting of source
code.
STAT can also be optionally built with the Fast Global File
Status (FGFS) library. This library helps STAT identify when a
file (target binary) resides on a shared file system that may
become a bottleneck if all STAT daemons try to access that file
at the same time. If so, STAT will access the file from the
STAT frontend and distribute its contents to the daemons via
the MRNet communication tree. The two necessary components of
FGFS can be downloaded from
https://github.com/dongahn/MountPointAttributes and
https://github.com/dongahn/FastGlobalFileStatus
__________________________________________________________
Installation
A script that downloads and install STAT and all its
dependencies for BlueGene/Q has been created and can be
downloaded at
https://github.com/lee218llnl/STAT/blob/master/script-stat-inst
all or can be found in the top-level directory of the STAT
source. Note this script was developed for BlueGene/Q systems,
but can be used as guidance for other systems as well.
When building STAT itself, first run configure. You will need
to use the --with-package options to specify the install prefix
for mrnet, graphlib, launchmon, libdwarf, and stackwalker.
These options will add the necessary include and library search
paths to the compile options. Refer to configure --help for
exact options. You may also wish to specify the maximum number
of communication processes to launch per node with the option
--with-procspernode=number, generally set to the number of
cores per node.
STAT creates wrapper scripts for the stat-cl and stat-gui
commands. These wrappers set appropriate paths for the
launchmon and mrnet_commnode executables, based on the the
--with-launchmon and --with-mrnet configure options, thus it is
important to specify both of these even if they share a prefix.
STAT will try to build the GUI by default. If you need to
modify your PYTHONPATH envirnment variable to search for side
installed site-packages, you can do this by specifying
STAT_PYTHONPATH=path during configure. This will add the
appropriate directory to the $PYTHONPATH environment variable
within the stat-gui script. To disable the building of the GUI,
use the --enable-gui=no configure option.
On BlueGene systems, be sure to configure --with-bluegene. This
will enable the BGL macro for BlueGene specific compilation. It
is important to note that on BlueGene systems, you may need to
use an alternate hostname for the front-end node in order to
get MRNet to bind to the appropriate network interface that can
communicate with the I/O nodes. By default, STAT will append
"-io" to the hostname. Alternatively, you can specify the
hostname with the STAT_FE_HOSTNAME environment variable. A
script that downloads and install STAT and all its dependencies
for BlueGene/Q has been created and can be downloaded at
https://github.com/lee218llnl/STAT/blob/master/script-stat-inst
all or can be found in the top-level directory of the STAT
source. Due to system configurations, this may not completely
work out of the box, but it provides good guidance on the steps
required.
To compile on Cray systems, specify --with-cray-xt. An example
configure line for Cray:
./configure --with-launchmon=/tmp/work/lee218/install \
--with-mrnet=/tmp/work/lee218/install \
--with-graphlib==/tmp/work/lee218/install \
--with-stackwalker=/tmp/work/lee218/install \
--with-libdwarf=/tmp/work/lee218/install \
--prefix=/tmp/work/lee218/install --with-cray-xt \
MPICC=cc MPICXX=CC MPIF77=ftn --enable-shared LD=/usr/bin/ld
Note that specifying LD=/usr/bin/ld may be required on Cray
systems to avoid using the compute node linker. It is also
worth noting that Cray includes a build of STAT as part of
their system software stack. It is typically installed in
/opt/cray/stat and can be loaded via modules.
After running configure you just need to run:
make
make install
Note that STAT hardcodes the paths to its daemon and filter
shared object, assuming that they are in $prefix/bin and
$prefix/lib respectively, thus testing should be done in the
install prefix after running "make install" and the
installation directory should not be moved. The path to these
components can, however, be overridden with the --daemon and
--filter arguments. Further, the STAT_PREFIX environment
variable can be defined to override the hardcoded paths in
STAT. STAT will also, by default, add rpaths to dependent
libraries. This behavior can be disabled by specifying
"--with-rpath=no". However, when doing so, you must be sure to
set LD_LIBRARY_PATH to point to the directories containing the
dependent libraries.