-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
113 lines (91 loc) · 4.19 KB
/
README
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
SciDAC QLA C interface -- Level 1 linear algebra routines
This package uses the standard GNU configuration script. See the file
INSTALL for datails on compiling and installing. It is recommended that
QLA be compiled with a C99 compliant compiler (or at least one that
understands the restrict keyword). Check your compiler documentation to
find the appropriate option (for gcc try -std=c99 or for xlc try
-qlanglvl=stdc99).
**** BG/L config notes ****
The recommended configure line for BG/L is
./configure \
--prefix=$INSTALL_DIR \
--enable-nc=3 \
--enable-440d \
--enable-xlc \
--enable-temp-precision=D \
--enable-backend-test-cmd="$RUN_COMMAND" \
--host=blrts --build=none \
CC=blrts_c99 \
CFLAGS="-O3 -qarch=440d" \
TEST_CFLAGS="-O2"
Where $INSTALL_DIR is the directory you want it installed in and
$RUN_COMMAND is a command that can be used to run an executable on the
backend. For cobalt this can simply be "cqsub -t 5 -n 1 -c 1 -m co".
If you can run mpirun directly to submit jobs on the backend then
something like "mpirun -np 1" might work depending on the setup.
Otherwise for loadleveler you need to make a script like the one
below, make sure it is executable and in your path and then pass that
as the run command.
#!/bin/sh
llsubmit - <<EOF
# @ job_type = parallel
# @ executable = /bgl/BlueLight/ppcfloor/bglsys/bin/mpirun
# @ arguments = -np 1 -connect MESH -mode CO -cwd `pwd` -exe $1
# @ wall_clock_limit = 10
# @ queue
EOF
If all goes well then you can do the usual "make && make install" then
"cd test" and do "make check". This should start the tests running on
the backend. When all the tests are finished you can do "make check-TESTS"
from the same directory (test) and that will give a summary of the tests.
You can also look at the various */*.result files directly.
**** below are the original notes ****
Some configuration options to be aware of are:
--enable-sse uses optimized SSE routines for some functions (single)
--enable-sse2 uses optimized SSE2 routines for some functions (double)
--enable-sse3 uses optimized SSE3 routines for some functions
--enable-440 uses optimized 440 routines for some functions (QCDOC/BGL)
--enable-nc=[2,3,n] build only the 2, 3, or arbitrary (n) color libraries
leave this out to build all libraries
The sse options are cumulative so that sse2 also includes sse and sse3
includes sse and sse2.
The sse (not sse2) code now works with both gcc and icc. It will just
use the same compiler as used for the rest of the code. You may have
to give it the appropriate commands (like -msse or -msse2) for it to
compile the sse code.
The sse2 code still requires gcc. If the main compiler is gcc then it
will use that otherwise it will default to just using the 'gcc'
command found in the path. You can specify the correct location of
the needed gcc compiler by setting the GNUCC environment variable.
This will only be used for the sse2 code. Note however that icc can
emulate gcc in some cases and may actually be able to compile this
code fine.
There are now variables TEST_CC and TEST_CFLAGS which are used only
for compiling the test suite. Since the test sources are very large
you may want to disable optimizations here to reduce compile time.
An example configure command is:
configure \
--prefix=$HOME/scidac/install/qla \
--enable-nc=3 \
--enable-sse3 \
CC=icc \
CFLAGS="-c99 -O2 -xN -fno-alias -unroll -fp-model fast" \
TEST_CFLAGS="-c99 -O0 -xN" \
LDFLAGS="-static"
Documentation is included in the doc directory. This is not included in
the installation. See the README file in the doc directory for details.
Contents of directories in src
doc Documentation - Postscript and HTML
examples A simple benchmark routine for a few functions. (make check)
include Predefined headers and generated headers
lib/cmath Complex arithmetic sources
lib/perl Perl script for building the libraries
lib/random Random number utilities
lib/c99 c99 functions for non-c99 compliant compilers.
lib/optimized Various optimized routines for different platforms.
lib/qla_* Contains makefile for each library.
tests Test suite. This is run with 'make check'.
Bugs and suggestions:
James C. Osborn
Boston University
josborn at physics.bu.edu