annotate README.Cray @ 7948:af10baa63915 ss-3-1-50

3.1.50 snapshot
author John W. Eaton <jwe@octave.org>
date Fri, 18 Jul 2008 17:42:48 -0400
parents 5eb3db6e4042
children 1052a66078cf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4680
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
1 It should now be possible to compile and link Octave on the Cray SV1
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
2 and perhaps other similar Cray systems using the following procedure.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
3 It even runs and seems to work, at least for the few small things I
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
4 tried.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
5
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
6 * Run
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
7
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
8 configure \
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
9 F77=ftn FFLAGS="-dp -O0" \
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
10 CC=cc CFLAGS=-O0 CXX=CC \
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
11 CXXFLAGS="-O0 -h new_for_init -h nomessage=76" \
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
12 --without-blas --without-lapack --disable-readline
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
13
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
14 The last to arguments tell Octave to use the reference blas and
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
15 lapack implmentation in Fortran and to not require the readline
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
16 library. If you have the readline library, you can omit the last
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
17 option. You can also try to use a vendor library for LAPACK and
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
18 BLAS, but how are those compiled? You will need a version of the
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
19 library that is compiled for 64-bit double precision values, but
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
20 that uses the D and Z names (I'm not sure that this is the case
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
21 with the Cray librararies).
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
22
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
23 I'm using -O0 in an effort to speed up compilation. If you want
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
24 an optimized version and have time to wait for the build to
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
25 complete, then use whatever -On option you like.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
26
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
27 * Edit the generated Makeconf file and make sure that you have
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
28
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
29 FFLAGS = -dp -O0
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
30 CFLAGS = -O0
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
31 CXXFLAGS = -O0 -h new_for_init -h nomessage=76
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
32 FPICFLAG =
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
33 CPICFLAG =
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
34 CXXPICFLAG =
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
35
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
36 The first three should be handled automatically by the configure
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
37 arguments, but the others are not (yet).
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
38
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
39 * Edit liboctave/data-conv.h and force the definitions of
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
40 TWO_BYTE_INT and FOUR_BYTE_INT to be int. These will have to be
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
41 fixed correctly later, but this fix will allow Octave to compile
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
42 and even run, though some things like saving and loading data with
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
43 some binary file formats will be broken. Suggestions for a good
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
44 way to fix this are welcome.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
45
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
46 * If building from CVS, you will need to have gperf installed, or
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
47 you can generate src/oct-gperf.h on some other machine and copy to
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
48 the src subdirectory in the Cray build tree.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
49
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
50 * If you don't have TeX installed on your SV1, then edit the
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
51 generated octMakefile and remove doc from the SUBDIRS variable so
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
52 you won't try to run make in the doc subdirectory. Otherwise, it
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
53 will fail because you don't have TeX installed (and why would
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
54 you?). This is only a problem when building from CVS or if you
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
55 build from a distribution and configure with something other than
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
56 --prefix=/usr/local.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
57
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
58 * Run
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
59
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
60 gmake -k omit_deps=true
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
61
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
62 and it should run all the way to creating an octave executable
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
63 (see below for why omit_deps=true is needed).
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
64
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
65
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
66 REMAINING PROBLEMS
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
67 ------------------
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
68
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
69 * I tried to get dependency generation to work, but it seems there is
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
70 a bug in the C++ compiler because it keeps crashing with errors like
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
71 this:
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
72
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
73 making pathsearch.d from pathsearch.cc
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
74 CC-1353 CC: INTERNAL File = CColVector.cc, Line = 38
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
75
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
76 #include "oct-cmplx.h"
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
77 ^
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
78
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
79 CC-2202 CC: ERROR
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
80 "/opt/ctl/CC_sv1/CC_sv1/lib/ccom" (pid 69504) was terminated
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
81 due to receipt of signal 06: Abort (core dumped).
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
82
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
83 when I try to use the -M option. Dependency generation is
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
84 relatively slow, so maybe it would be worth trying to speed it up
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
85 by using a simpler tool. We are currently using the compilers to
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
86 build lists of dependencies that include system header files, but
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
87 maybe it would be good enough if we only listed the header files
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
88 that are included with the Octave sources. In that case, we could
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
89 probably write a simple script that could do the job and that
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
90 could run much faster than the compiler.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
91
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
92 * IEEE Inf and NaN (and Octave's NA value, which is a particular NaN
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
93 value) are all currently set to DBL_MAX since the SV1 doesn't
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
94 support IEEE floating point numbers. Will this be true of future
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
95 machines from Cray? I don't think it is possible to have a fully
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
96 functional version of Octave (or Matlab) on a system without IEEE
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
97 numbers.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
98
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
99 * TWO_BYTE_INT and FOUR_BYTE_INT types, mostly used in load-save.cc.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
100 This can probably be solved by using arrays of char values and
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
101 some masking, but it will probably be a bit tricky. The problem
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
102 is that various binary data file formats are specified using
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
103 integer values of specific sizes, so we need to be able to read
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
104 and write integer values in 16 and 32 bit formats.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
105
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
106 * The code in liboctave/mach-info.cc that determines the floating
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
107 point format used by the system assumes that a double is exactly
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
108 twice as wide as an int. This should be fixed, since the Cray has
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
109
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
110 sizeof (char) == 1
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
111 sizeof (short) == 8
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
112 sizeof (int) == 8
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
113 sizeof (long) == 8
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
114 sizeof (double) == 8
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
115
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
116 For now, I forced the floating point format based on an #ifdef CRAY.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
117
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
118 * Build a working readline library. Probably not too hard but I
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
119 didn't think it was worth the effort yet. I can't run Octave
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
120 interactively on the SV1 I have access to anyway, so command line
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
121 editing doesn't matter much.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
122
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
123 * Build the FFTW library for better fft performance. Without this,
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
124 we still have fft and ifft functions using FFTPACK.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
125
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
126 * Build the HDF5 library to support loading and saving of HDF
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
127 files. This is not necessary unless you need to access Octave
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
128 data files that have been stored in the HDF file format.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
129
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
130 * Link with fast BLAS and LAPACK libraries for better performance.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
131 There is a Cray library, but I'm not sure whether we can use it
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
132 directly. Does DGEMM in the Cray BLAS library use double
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
133 precision, or is it compiled with the equivalent of -dp? If it
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
134 uses double precision (i.e., 128-bit floating point values) then
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
135 it will take some work to make this functional for Octave, since
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
136 Octave uses the D and Z names and we would presumably need the S
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
137 and C names instead.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
138
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
139 * Shared libraries. Apparently this is not supported on the SV1, so
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
140 dynamically linked functions (.oct files) will not work on this
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
141 system.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
142
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
143 * There are a few warnings when compiling glob/glob.c that should
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
144 probably be fixed.
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
145
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
146
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
147 John W. Eaton
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
148 jwe@bevo.che.wisc.edu
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
149 University of Wisconsin-Madison
7088
5eb3db6e4042 [project @ 2007-10-31 20:35:10 by jwe]
jwe
parents: 4680
diff changeset
150 Department of Chemical & Biological Engineering
4680
493ff0643644 [project @ 2003-12-17 21:18:18 by jwe]
jwe
parents:
diff changeset
151
7088
5eb3db6e4042 [project @ 2007-10-31 20:35:10 by jwe]
jwe
parents: 4680
diff changeset
152 Last updated: Wed Dec 17 15:17:29 2003