~ubuntu-branches/ubuntu/saucy/nwchem/saucy

« back to all changes in this revision

Viewing changes to src/tools/ga-5-1/README

  • Committer: Package Import Robot
  • Author(s): Michael Banck, Michael Banck, Daniel Leidert
  • Date: 2012-02-09 20:02:41 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120209200241-jgk03qfsphal4ug2
Tags: 6.1-1
* New upstream release.

[ Michael Banck ]
* debian/patches/02_makefile_flags.patch: Updated.
* debian/patches/02_makefile_flags.patch: Use internal blas and lapack code.
* debian/patches/02_makefile_flags.patch: Define GCC4 for LINUX and LINUX64
  (Closes: #632611 and LP: #791308).
* debian/control (Build-Depends): Added openssh-client.
* debian/rules (USE_SCALAPACK, SCALAPACK): Removed variables (Closes:
  #654658).
* debian/rules (LIBDIR, USE_MPIF4, ARMCI_NETWORK): New variables.
* debian/TODO: New file.
* debian/control (Build-Depends): Removed libblas-dev, liblapack-dev and
  libscalapack-mpi-dev.
* debian/patches/04_show_testsuite_diff_output.patch: New patch, shows the
  diff output for failed tests.
* debian/patches/series: Adjusted.
* debian/testsuite: Optionally run all tests if "all" is passed as option.
* debian/rules: Run debian/testsuite with "all" if DEB_BUILD_OPTIONS
  contains "checkall".

[ Daniel Leidert ]
* debian/control: Used wrap-and-sort. Added Vcs-Svn and Vcs-Browser fields.
  (Priority): Moved to extra according to policy section 2.5.
  (Standards-Version): Bumped to 3.9.2.
  (Description): Fixed a typo.
* debian/watch: Added.
* debian/patches/03_hurd-i386_define_path_max.patch: Added.
  - Define MAX_PATH if not defines to fix FTBFS on hurd.
* debian/patches/series: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
GLOBAL ARRAYS
 
2
~~~~~~~~~~~~~
 
3
 
 
4
DISCLAIMER
 
5
==========
 
6
 
 
7
This material was prepared as an account of work sponsored by an
 
8
agency of the United States Government.  Neither the United States
 
9
Government nor the United States Department of Energy, nor Battelle,
 
10
nor any of their employees, MAKES ANY WARRANTY, EXPRESS OR IMPLIED,
 
11
OR ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE ACCURACY,
 
12
COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, APPARATUS, PRODUCT,
 
13
SOFTWARE, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT
 
14
INFRINGE PRIVATELY OWNED RIGHTS.
 
15
 
 
16
ACKNOWLEDGMENT
 
17
==============
 
18
 
 
19
This software and its documentation were produced with United States
 
20
Government support under Contract Number DE-AC06-76RLO-1830 awarded
 
21
by the United States Department of Energy. The United States
 
22
Government retains a paid-up non-exclusive, irrevocable worldwide
 
23
license to reproduce, prepare derivative works, perform publicly and
 
24
display publicly by or for the US Government, including the right to
 
25
distribute to other US Government contractors.
 
26
 
 
27
The primary current source of funding for development of GA is the DoE-2000
 
28
ACTS project. GA is a part of the ACTS toolkit:
 
29
 
 
30
    http://acts.nersc.gov 
 
31
 
 
32
FOR THE IMPATIENT
 
33
=================
 
34
 
 
35
The command::
 
36
 
 
37
    ./configure && make && make install
 
38
 
 
39
should compile the static GA library (libga.a) to use sockets and install
 
40
headers and libraries to /usr/local/include and /usr/local/lib, respectively.
 
41
 
 
42
Please refer to the INSTALL file for generic build instructions.  That is a
 
43
good place to start if you are new to using "configure; make; make install"
 
44
types of builds.  Detailed instructions are covered later in this file.
 
45
 
 
46
QUESTIONS/HELP/SUPPORT/BUG-REPORT
 
47
=================================
 
48
 
 
49
email: hpctools@pnl.gov
 
50
 
 
51
If you encounter any problems, please first refer to the file NOTES located in
 
52
the same directory and see the GA support webpage:
 
53
 
 
54
    http://www.emsl.pnl.gov/docs/global/support.html
 
55
 
 
56
Please don't hesitate to send us an email.  An archive of emails is available
 
57
at:
 
58
 
 
59
    http://groups.google.com/group/hpctools
 
60
 
 
61
WHERE IS THE DOCUMENTATION?
 
62
===========================
 
63
 
 
64
The GA webpage has the most current versions of the Fortran and C documentation
 
65
and the User's Manual in the HTML format:
 
66
 
 
67
    http://www.emsl.pnl.gov/docs/global/
 
68
 
 
69
ABOUT THIS SOFTWARE
 
70
===================
 
71
 
 
72
This directory contains the Global Arrays (GA), Aggregate Remote Memory Copy
 
73
Interface (ARMCI) run-time library, and Memory Allocator (MA), parallel I/O
 
74
libraries (DRA,EAF,SF), TCGMSG, and TCGMSG-MPI packages bundled together. 
 
75
 
 
76
Global Arrays is a portable Non-Uniform Memory Access (NUMA) shared-memory
 
77
programming environment for distributed and shared memory computers. It
 
78
augments the message-passing model by providing a shared-memory like access to
 
79
distributed dense arrays.
 
80
 
 
81
ARMCI provides one-sided remote memory operations used by GA.
 
82
 
 
83
DRA (Disk Resident Arrays) is a parallel I/O library that maintains dense 2-dim
 
84
arrays on disk. 
 
85
 
 
86
SF (Shared Files) is a parallel I/O library that allows noncollective I/O to a
 
87
parallel file.
 
88
 
 
89
EAF (Exclusive Access Files) is parallel I/O library that supports I/O to
 
90
private files.
 
91
 
 
92
TCGMSG is a simple, efficient, but becoming obsolete message-passing library.
 
93
 
 
94
TCGMSG-MPI is a TCGMSG interface implementation on top of MPI and ARMCI. 
 
95
 
 
96
MA is a dynamic memory allocator/manager for Fortran and C programs.
 
97
 
 
98
GA++ is a C++ binding for global arrays.
 
99
 
 
100
See file 'COPYRIGHT' for copying conditions.
 
101
See file 'INSTALL' for compilation and installation instructions (generic).
 
102
See file 'NEWS' for a list of major changes in the current release.
 
103
See file 'AUTHORS' for the names of anyone who has contributed to GA.
 
104
See file 'NOTES' for a few platform-specific symptoms and fixes.
 
105
 
 
106
DIRECTORY STRUCTURE (ALPHABETICALLY)
 
107
====================================
 
108
 
 
109
- armci
 
110
    + config        (configuration makefile includes)
 
111
    + doc           (documentation for ARMCI library)
 
112
    + lib           (compatibility source files for missing system features)
 
113
    + src           (source code for ARMCI library)
 
114
- build-aux         (autotools support scripts)
 
115
- cca               (common component architecture)
 
116
- compat            (compatibility source files for missing system features)
 
117
- doc               (documentation)
 
118
- ga++              (C++ Bindings for Global Arrays)
 
119
    + doc           (contains sample Doxyfile for Doxygen doc generator)
 
120
    + src           (source code for GA C++ bindings)
 
121
    + testing       (test programs)
 
122
- gaf2c             (Fortran-to-C compatibility library and tests)
 
123
- global
 
124
    + doc           (paper & documentation in PostScript, HTML & plain text)
 
125
    + src           (source code for GA library)
 
126
    + testing       (GA test programs and performance results)
 
127
    + trace         (library and programs to generate and process tracefiles)
 
128
    + X             (xregion visualization program for GA)
 
129
- LinAlg            (linear algebra software used by GA)
 
130
    + lapack+blas
 
131
- m4                (autoconf macros)
 
132
- ma                (Memory Allocator) 
 
133
    + man
 
134
- pario
 
135
    + dra           (Disk Resident Array Library code)
 
136
    + eaf           (Exclusive Access Files Library code)
 
137
    + elio          ("device" layer for other parallel I/O models)
 
138
    + sf            (Shared Files Library code)
 
139
- tcgmsg            (simple, legacy message-passing library)
 
140
    + ipcv4.0    
 
141
    + ipcv5.0    
 
142
    + tcgmsg-mpi    (TCGMSG on top of MPI)
 
143
 
 
144
HOW TO BUILD THE PACKAGE?
 
145
=========================
 
146
 
 
147
Please refer to the INSTALL file for generic build instructions.  That is a
 
148
good place to start if you are new to using "configure; make; make install"
 
149
types of builds.  The following will cover platform-specific considerations as
 
150
well as the various optional features of GA.  Customizations to the GA build
 
151
via the configure script are discussed next.
 
152
 
 
153
Configuration Options
 
154
---------------------
 
155
 
 
156
There are many options available when configuring GA.  Although configure can
 
157
be safely run within this distributions' root folder, we recommend performing
 
158
an out-of-source (aka VPATH) build.  This will cleanly separate the generated
 
159
Makefiles and compiled object files and libraries from the source code.  This
 
160
will allow, for example, one build using sockets versus another build using
 
161
OpenIB for the communication layer to use the same source tree e.g.::
 
162
 
 
163
    mkdir bld_mpi_sockets && cd bld_mpi_sockets && ../configure
 
164
    mkdir bld_mpi_openib  && cd bld_mpi_openib  && ../configure --with-openib
 
165
 
 
166
Regardless of your choice to perform a VPATH build, the following should
 
167
hopefully elucidate the myriad options to configure.  Only the options
 
168
requiring additional details are documented here.  ./configure --help will
 
169
certainly list more options in addition to limited documentation.
 
170
 
 
171
--disable-f77           Disable Fortran code. This used to be the old
 
172
                        GA_C_CORE or NOFORT environment variables which
 
173
                        enabled the C++ bindings. However, it is severely
 
174
                        broken. There are certain cases where Fortran code is
 
175
                        required but this will not inhibit the building of the
 
176
                        C++ bindings.  In the future we may be able to
 
177
                        eliminate the need for the Fortran compiler/linker.
 
178
                        Use at your own risk (of missing symbols at link-time.)
 
179
--enable-cxx            Build C++ interface. This will require the C++ linker
 
180
                        to locate the Fortran libraries (handled
 
181
                        automatically) but user C++ code will require the same
 
182
                        considerations (C++ linker, Fortran libraries.)
 
183
--disable-opt           Don't use hard-coded optimization flags. GA is a
 
184
                        highly-optimized piece of software. There are certain
 
185
                        optimization levels or flags that are known to break
 
186
                        the software. If you experience mysterious faults,
 
187
                        consider rebuilding without optimization by using this
 
188
                        option.
 
189
--enable-peigs          Enable Parallel Eigensystem Solver interface. This
 
190
                        will build the stubs required to call into the peigs
 
191
                        library (external). 
 
192
--enable-checkpoint     Enable checkpointing.  Untested.  For use with old
 
193
                        X-based visualization tool.
 
194
--enable-profile        Enable profiling. Not sure what this does, sorry.
 
195
--enable-trace          Enable tracing. Not sure what this does, sorry.
 
196
--enable-thread-safety  **unsupported** Turn on thread safety.
 
197
--enable-underscoring   Force single underscore for all external Fortran
 
198
                        symbols. Usually, configure is able to detect the name
 
199
                        mangling scheme of the detected Fortran compiler and
 
200
                        will default to using what is detected. This includes
 
201
                        any variation of zero, one, or two underscores or
 
202
                        whether UPPERCASE or lowercase symbols are used. If
 
203
                        you want to force a single underscore which was the
 
204
                        default of older GA builds, use this option.
 
205
                        Otherwise, you can use the FFLAGS environment variable
 
206
                        to override the Fortran compiler's or platform's
 
207
                        defaults e.g. configure FFLAGS=-fno-underscoring.
 
208
--enable-i4             Use 4 bytes for Fortran INTEGER size. Otherwise, the
 
209
                        default INTEGER size is set to the results of the C
 
210
                        sizeof(void*) operator.
 
211
--enable-i8             Use 8 bytes for Fortran INTEGER size. Otherwise, the
 
212
                        default INTEGER size is set to the results of the C
 
213
                        sizeof(void*) operator.
 
214
--enable-shared         Build shared libraries [default=no]. Useful, for
 
215
                        example, if you plan on wrapping GA with an
 
216
                        interpreted language such as Python. Otherwise, some
 
217
                        systems only support static libraries (or vice versa)
 
218
                        but static libraries are the default.
 
219
 
 
220
For most of the external software packages an optional argument is allowed
 
221
(represented as ARG below.) **ARG can be omitted** or can be one or more
 
222
whitespace-separated directories, linker or preprocessor directives.  For
 
223
example::
 
224
 
 
225
    --with-mpi="/path/to/mpi -lmylib -I/mydir"
 
226
    --with-mpi=/path/to/mpi/base
 
227
    --with-mpi=-lmpich
 
228
 
 
229
The messaging libraries supported include MPI, TCGMSG, and TCGMSG over MPI.  If
 
230
you omit their respective --with-* option, MPI is the default.  GA can be built
 
231
to work with MPI or TCGMSG. Since the TCGMSG package is small (comparing to
 
232
portable MPI implementations), compiles fast, it is still bundled with the GA
 
233
package.
 
234
 
 
235
--with-mpi=ARG          Select MPI as the messaging library (default). If you
 
236
                        omit ARG, we attempt to locate the MPI compiler
 
237
                        wrappers. If you supply anything for ARG, we will
 
238
                        parse ARG as indicated above.
 
239
--with-tcgmsg           Select TCGMSG as the messaging library; if
 
240
                        --with-mpi is also specified then TCGMSG over MPI is
 
241
                        used.
 
242
--with-vampir=ARG       Enable VAMPIR performance tracing.
 
243
                        http://www.vampir.eu
 
244
--with-blas=ARG         Use external BLAS library; attempt to detect
 
245
                        sizeof(INTEGER) used to compile BLAS; if not found, an
 
246
                        internal BLAS is built
 
247
--with-blas4=ARG        Use external BLAS library compiled with
 
248
                        sizeof(INTEGER)==4
 
249
--with-blas8=ARG        Use external BLAS library compiled with
 
250
                        sizeof(INTEGER)==8
 
251
--with-lapack=ARG       Use external LAPACK library. If not found, an internal
 
252
                        one is built.
 
253
--with-scalapack=ARG    Use external ScaLAPACK library.
 
254
 
 
255
The ARMCI networks supported are listed next.  Our ability to automatically
 
256
locate required headers libraries is currently inadequate.  Therefore, you will
 
257
likely need to specify the optional ARG pointing to the necessary directories
 
258
and/or libraries. sockets is the default ARMCI network if nothing else is
 
259
specified.
 
260
 
 
261
--with-bgml=ARG         select armci network as IBM BG/L
 
262
--with-cray-shmem=ARG   select armci network as Cray XT shmem
 
263
--with-dcmf=ARG         select armci network as IBM BG/P Deep Computing
 
264
                        Message Framework
 
265
--with-lapi=ARG         select armci network as IBM LAPI
 
266
--with-mpi-spawn=ARG    select armci network as MPI-2 dynamic process mgmt
 
267
--with-openib=ARG       select armci network as Infiniband OpenIB
 
268
--with-portals=ARG      select armci network as Cray XT portals
 
269
--with-sockets=ARG      select armci network as Ethernet TCP/IP (default)
 
270
 
 
271
There are some influential environment variables as documented in configure
 
272
--help, however there are a few that are special to GA.
 
273
 
 
274
- THREAD_LIBRARY
 
275
  See --enable-thread-safety. I don't know what this does, sorry.
 
276
 
 
277
- F77_INT_FLAG
 
278
  Fortran compiler flag to set the default INTEGER size. We know about certain
 
279
  Fortran flags that set the default INTEGER size, but there will certainly be
 
280
  some new (or old) ones that we don't know about. If the configure test to
 
281
  determine the correct flag fails, please try setting this variable and
 
282
  rerunning configure.
 
283
 
 
284
- F2C_HIDDEN_STRING_LENGTH_AFTER_ARGS
 
285
  If cross compiling, set to either "yes" (default) or "no" (after string).
 
286
  For compatibility between Fortran and C, a Fortran subroutine written in C
 
287
  that takes a character string must take an additional argument (one per
 
288
  character string) indicating the length of the string. This 'hidden'
 
289
  argument appears either immediately after the string in the argument list
 
290
  or after all other arguments to the function. This is compiler dependent. We
 
291
  attempt to detect this behavior automatically, but in the case of
 
292
  cross-compiled systems it may be necessary to specify the less usual after
 
293
  string convention the gaf2c/testarg program crashes.
 
294
 
 
295
Special Notes for BLAS
 
296
----------------------
 
297
 
 
298
BLAS, being a Fortran library, can be compiled with a default INTEGER size of
 
299
4 or a promoted INTEGER size of 8.  Experience has shown us that most of the
 
300
time the default size of INTEGER used is 4.  In some cases, however, you may
 
301
have an external BLAS library which is using 8-byte INTEGERs.  In order to
 
302
correctly interface with an external BLAS library, GA must know the size of
 
303
INTEGER used by the BLAS library.
 
304
 
 
305
configure has the following BLAS-related options: --with-blas, --with-blas4,
 
306
and --with-blas8.  The latter two will force the INTEGER size to 4- or
 
307
8-bytes, respectively.  The first option, --with-blas, defaults to 4-byte
 
308
INTEGERS *however* in the two special cases of using ACML or MKL, it is
 
309
possible to detect 8-byte INTEGERs automatically.  As documented in the ACML
 
310
manual, if the path to the library has "_int64" then 8-byte INTEGERs are used.
 
311
As documented in the MKL manual, if the library is "ilp64", then 8-byte
 
312
INTEGERs are used.
 
313
 
 
314
You may always override --with-blas by specifying the INTEGER size using one
 
315
of the two more specific options.
 
316
 
 
317
Cross-Compilation Issues
 
318
------------------------
 
319
 
 
320
Certain platforms cross-compile from a login node for a compute node, or one
 
321
might choose to cross-compile for other reasons. Cross-compiling requires the
 
322
use of the --host option to configure which indicates to configure that certain
 
323
run-time tests should not be executed. See INSTALL for details on use of the
 
324
--host option.
 
325
 
 
326
Two of our target platforms are known to require cross-compilation, Cray XT and
 
327
IBM Blue Gene.
 
328
 
 
329
Cray XT
 
330
+++++++
 
331
 
 
332
It has been noted that configure still succeeds without the use of the --host
 
333
flag.  If you experience problems without --host, we recommend::
 
334
 
 
335
    configure --host=x86_64-unknown-linux-gnu
 
336
 
 
337
And if that doesn't work (cross-compilation is not detected) you must then
 
338
*force* cross-compilation using both --host and --build together::
 
339
 
 
340
    configure --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
 
341
 
 
342
BlueGene/P
 
343
++++++++++
 
344
 
 
345
Currently the only way to detect the BGP platform and compile correctly is to
 
346
use::
 
347
 
 
348
    configure --host=powerpc-bgp-linux
 
349
 
 
350
The rest of the configure options apply as usual e.g. --with-dcmf in this case.
 
351
 
 
352
Compiler Selection 
 
353
------------------
 
354
 
 
355
Unless otherwise noted you can try to overwrite the default compiler names
 
356
detected by configure by defining F77, CC, and CXX for Fortran (77), C, and C++
 
357
compilers, respectively.  Or when using the MPI compilers MPIF77, MPICC, and
 
358
MPICXX for MPI Fortran (77), C, and C++ compilers, respectively::
 
359
 
 
360
    configure F77=f90 CC=gcc
 
361
    configure MPIF77=mpif90 MPICC=mpicc
 
362
 
 
363
Although you can change the compiler at make-time it will likely fail.  Many
 
364
platform-specific compiler flags are detected at configure-time based on the
 
365
compiler selection. If changing compilers, we recommend rerunning configure as
 
366
above.
 
367
 
 
368
After Configuration
 
369
-------------------
 
370
 
 
371
By this point we assume you have successfully run configure either from the
 
372
base distribution directory or from a separate build directory (aka VPATH
 
373
build.)  You are now ready to run 'make'.  You can optionally run parallel
 
374
make using the "-j" option which significantly speeds up the build.  If using
 
375
the MPI compiler wrappers, occasionally using "-j" will cause build failures
 
376
because the MPI compiler wrapper creates a temporary symlink to the mpif.h
 
377
header.  In that case, you won't be able to use the "-j" option.  Further, the
 
378
influential environment variables used at configure-time can be overridden at
 
379
make-time in case problems are encountered.  For example::
 
380
 
 
381
    ./configure CFLAGS=-Wimplicit
 
382
    ...
 
383
    make CFLAGS="-Wimplicit -g -O0"
 
384
 
 
385
One particularly influential make variable is "V" which controls the verbosity
 
386
of the make output. This variable corresponds to the --dis/enable-silent-riles
 
387
configure-time option, but I often prefer the make-time variable::
 
388
 
 
389
    make V=0 (configure  --enable-silent-rules)
 
390
    make V=1 (configure --disable-silent-rules)
 
391
 
 
392
Test Programs
 
393
-------------
 
394
 
 
395
Running "make checkprogs" will build most test and example programs.  Note that
 
396
not all tests are built -- some tests depend on certain features being
 
397
detected or enabled during configure.  These programs are not intented to be
 
398
examples of good GA coding practices because they often include private
 
399
headers.  However, they help us debug or time our GA library.
 
400
 
 
401
Test Suite
 
402
++++++++++
 
403
 
 
404
Running "make check" will build most test and example programs (See "make
 
405
checkprogs" notes above) in addition to running the test suite.  The test
 
406
suite runs both the serial and parallel tests.  The test suite must know how
 
407
to launch the parallel tests via the MPIEXEC variable.  Please read your MPI
 
408
flavor's documentation on how to launch, or if using TCGMSG you will use the
 
409
"parallel" tool.  For example, the following is the command to launch the test
 
410
suite when compiled with OpenMPI::
 
411
 
 
412
    make check MPIEXEC="mpiexec -np 4"
 
413
 
 
414
All tests have a per-test log file containing the output of the test.  So if
 
415
the test is global/testing/test.x, the log file would be
 
416
global/testing/test.log.  The output of failed tests is collected in the
 
417
top-level log summary test-suite.log.
 
418
 
 
419
The test suite will recurse into the ARMCI directory and run the ARMCI test
 
420
suite first.  If the ARMCI test suite fails, the GA test suite will not run
 
421
(the assumption here is that you should fix bugs in the dependent library
 
422
first.)  To run only the GA test suite, type "make check-ga" with the
 
423
appropriate MPIEXEC variable.
 
424
 
 
425
How to Run GA Test Programs?  
 
426
----------------------------
 
427
 
 
428
Depends on the system. MPPs like Intel iPSC/860, Delta, Paragon, IBM SPx, Cray
 
429
T3/E have their own commands for submitting parallel jobs.
 
430
 
 
431
On workstations and clusters, GA are run like ordinary message-passing
 
432
programs::
 
433
 
 
434
  To run GA programs with MPI, you need to built the package to be compatible
 
435
  with MPI (see README in ./global and documentation in ./global/doc/ ) and
 
436
  run it as any other MPI program.  The GA package has been tested only with a
 
437
  limited number of MPI implementations (MPICH, and vendor's: Intel, IBM, Sun,
 
438
  HP, and SGI).
 
439
 
 
440
  TCGMSG `parallel' command (built automaticaly in ./tcgmsg/ipcv4.0/parallel
 
441
  if needed) is used to start a job on clusters if you are using TCGMSG as
 
442
  your message-passing library. On the workstations, GA-based programs that
 
443
  use TCGMSG can be run with a single process without the `parallel' command
 
444
  -- just by typing program name -- useful for debugging. 
 
445
 
 
446
Other Issues 
 
447
============
 
448
 
 
449
a. LINUX64 supports ALPHA, Itanium, Opteron, and Em64T processors only. 
 
450
 
 
451
b. The SGI_N32 version is recommended on all newer SGI boxes including
 
452
   the O2, Octane, Origin, Indigo2, and PowerChallenge systems
 
453
   unless the system has lots of memory and your program uses 
 
454
   huge arrays (>4GB) in which case 64-bit addressing is required
 
455
   (SGITFP version). In addition, TARGET_CPU environment
 
456
   variable can be used to choose the optimal compiler flags 
 
457
   for R8000 and R10000 processors.
 
458
 
 
459
c. In 64 bit platforms, if you are using blas libraries that takes
 
460
   integer as 8 bytes, then set the following environment variables:
 
461
   setenv BLAS_I8 yes
 
462
   setenv BLAS_LIB specify_your_blas_library
 
463
   e.g.setenv BLAS_LIB -L/usr/lib/libblas.a
 
464
 
 
465
d. To turn Async I/O on under Linux, set environment variable USE_LINUXAIO=y
 
466
 
 
467
Performance Tuning
 
468
------------------
 
469
 
 
470
global/src/gaconfig.h has a varible called AVOID_MA_STORAGE. If defined, this
 
471
variable forces GA to use ARMCI memory which can lead to better performance on
 
472
platforms on which memory needs to be registered for fast communication.
 
473
 
 
474
Setting an environment variable MA_USE_ARMCI_MEM forces MA library to use
 
475
ARMCI memory, communication via which can be faster on networks like GM, VIA
 
476
and InfiniBand.