forked from jdevinney/bale_old
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALL
120 lines (119 loc) · 5.69 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
# Copyright(C) 2019, Institute for Defense Analyses
# 4850 Mark Center Drive, Alexandria, VA; 703-845-2500
# This material may be reproduced by or for the US Government
# pursuant to the copyright license under the clauses at DFARS
# 252.227-7013 and 252.227-7014.
#
#
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the copyright holder nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT HOLDER NOR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
#
# See the bale documentation for more information about what bale is.
#
# The main components are :
# INSTALL # This file
# libgetput # parallel programming utility lib
# exstack # the exstack and exstack2 libraries
# convey-0.5.0 # directory containing the conveyor buffering model
# spmat # the sparse matrix library
# apps # the applications directory, includes histogram, indexgather, toposort, and others
# install.sh # an install script
# runall.sh # a test script
# Doxyfile # A key to building the documentation with doxygen (see more below).
# mainpage.h # The main documentation page.
#
# The codes are in C and all except conveyors use the libgetput library for a parallel API.
# Everything can be built on UPC or SHMEM. We have tested with Cray UPC (cce 8.7.3). We have
# done some testing with Cray SHMEM (7.7.2), Berkeley UPC (with CLANG UPC compiler bupc/2.24.2.5201)
# and OpenShmem (2.1.0).
#
# The models used are:
# agi : standard PGAS model that uses puts, gets, and atomics
# exstack : a bulk synchronous buffering model
# exstack2 : a asynchronous variant of exstack
# conveyors: a asynchronous model that is independent of exstack and exstack2.
# The user interface is similar to exstack2.
#
#
# ENVIRONMENT CONFIGURATION ###########################################
#
# For this document, let BALEDIR = the directory containing this file.
# We handle building on multiple architectures by setting an environment variable PLATFORM and then
# building in the directory BALEDIR/build_$PLATFORM.
# If you don't set this, your platform will be set to "unknown".
#
# You can build bale on top of UPC or SHMEM.
#
# UPC: You should set the UPC environment variable to point to the UPC compiler and
# the UPCFLAGS variable to whatever options you pass to the compiler (for example:
# UPCFLAGS="-gupc -network=ibv".
# SHMEM: If you are using openshmem, set CC=oshcc (the openshmem compiler).
#
#
# BUILD AND INSTALL ###################################################
#
# bale uses autotools. To make building and
# installing easier, we have included the install.sh script. Simply run
# the install.sh script. This script visits each subpackage in bale and
# runs configure, make, and make install. You could of course do this
# yourself. The default build and install directory is
# $BALEDIR/build_$PLATFORM. There are several important options for the
# script...
#
# -u OR -s : specify you would like to build libgetput on top of UPC or SHMEM. default: UPC
# -p : specify an alternate install dir
# -f : run autoreconf steps also
# -c : specify options to configure step
# -m : just make, don't configure
#
# We use a separate build directory for each architecture.
# The configure process creates architecture depend files (e.g. Makefile)
# it also creates symbolic links back to the source. This allows us to
# rename files to satisfy various compilers (e.g.
# some compilers require that UPC programs end in .upc)
#
# If you are interested in optimizing the conveyor code, after running install.sh
# once (or otherwise building the subpackages) go into build_$PLATFORM/convey
# and run 'make tune' with the LAUNCH variable set to a command prefix for
# launching a parallel job of a size you care about. For example:
#
# make tune LAUNCH="srun -n512"
#
# The tuning should take a few minutes. After it finishes, you can return to
# this directory and run ./install.sh with the -m option (in addition to any
# previously used options) to rebuild everything without reconfiguring. See
# also the AUTOTUNING section of convey/INSTALL.
#
#
# DOCUMENTATION #####################################################
#
# Bale is documented using Doxygen. To generate the html documentation you must have
# doxygen on your system (I recommend version 1.8.6). To generate the docs, simply change
# to the $BALEDIR directory and type:
#
# doxygen
#
# Then navigate your browser to $BALEDIR/html/index.html.