forked from Reference-ScaLAPACK/scalapack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
168 lines (116 loc) · 6.49 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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
=====================
ScaLAPACK README FILE
=====================
VERSION 1.0 : February 28, 1995
VERSION 1.1 : March 20, 1995
VERSION 1.2 : May 10, 1996
VERSION 1.3 : June 5, 1996
VERSION 1.4 : November 17, 1996
VERSION 1.5 : May 1, 1997
VERSION 1.6 : November 15, 1997
VERSION 1.7 : August, 2001
VERSION 1.8 : April 2007
VERSION 2.0 : November, 2011
VERSION 2.0.1 : January, 2012
VERSION 2.0.2 : May, 2012
VERSION 2.1 : Nov, 2019
VERSION 2.2 : Feb 2022
ScaLAPACK, or Scalable LAPACK, is a library of high performance linear
algebra routines for distributed memory computers supporting MPI.
The complete ScaLAPACK package is freely available on netlib and
can be obtained via the World Wide Web or anonymous ftp.
http://www.netlib.org/scalapack/
=============== GitHub Repository ================
https://github.com/Reference-ScaLAPACK/scalapack/
==================================================
ScaLAPACK, version 2.0, includes routines for the solution of dense,
band, and tridiagonal linear systems of equations, condition estimation and
iterative refinement, for LU and Cholesky factorization, matrix inversion,
full-rank linear least squares problems, orthogonal and generalized orthogonal
factorizations, orthogonal transformation routines, reductions to upper
Hessenberg, bidiagonal and tridiagonal form, reduction of a symmetric-definite/
Hermitian-definite generalized eigenproblem to standard form, the
symmetric/Hermitian, divide-and-conquer symmetric/Hermitian, generalized
symmetric/Hermitian and the nonsymmetric eigenproblem, and the singular value
decomposition. With the exception of the singular value decomposition,
most routines are available in four types: single precision real, double
precision real, single precision complex, and double precision complex.
New in version 2.0:
- ScaLAPACK now only supports MPI.
- The BLACS is now part of ScaLAPACK, and is compiled into the ScaLAPACK
library. It is no longer necessary to link against BLACS libraries.
- Building ScaLAPACK using cmake is now supported.
- New MRRR Symmetric Eigenvalue Problem routines are included:
pssyevr, pdsyevr, pcheevr and pzheevr.
- New Nonsymmetric Eigenvalue Problem QR routines for computing
eigenvalues of a Hessenberg matrix are included for real matrices:
pshseqr and pdhseqr.
Unless otherwise noted, the current scalapack.tgz on netlib contains
all available updates.
Errata for ScaLAPACK (source code and documentation) can be found at:
http://www.netlib.org/scalapack/errata.html
ScaLAPACK example programs can be found at:
http://www.netlib.org/scalapack/examples/
A basic example is included in the EXAMPLE directory.
The ScaLAPACK User's Guide for ScaLAPACK version 1.5 is available
from SIAM at:
http://www.ec-securehost.com/SIAM/SE04.html
To view an HTML version of the Users' Guide for version 1.5, see:
http://www.netlib.org/scalapack/slug/
A number of technical reports were written during the development of
ScaLAPACK and published as LAPACK Working Notes by the University
of Tennessee. These working notes are available at:
http://www.netlib.org/lapack/lawns/
All questions/comments should be directed to [email protected].
----------------------------------------------------------------------
The Makefiles in ScaLAPACK and its support libraries assume the basic
directory structure below:
SCALAPACK/
_____________________________/ | \______________________________________
/ | | | <library.a> | SLmake.inc | | | \
| | | | | | |
| | | | | | |
BLACS/ EXAMPLE/ PBLAS/ REDIST/ SRC/ TESTING/ TOOLS/
/ Input \
/ Files & \
/Executables\
NOTE: It is assumed that the BLAS and LAPACK libraries (and MPI)
are available on your machine. These libraries are NOT included
with this distribution, and may be obtained at the sites below.
http://www.netlib.org/blas/
http://www.netlib.org/lapack/
http://www.mcs.anl.gov/mpi/mpich/
http://www.lam-mpi.org/
http://www.open-mpi.org/
All ScaLAPACK routines -- driver, computational, and auxiliary -- can be
found in the SRC/ directory. Testing routines and input files can be found
in the TESTING/ directory. All machine-specific parameters and the locations
of BLAS and LAPACK libraries are specified in the SCALAPACK/SLmake.inc file.
This include file is then referenced in all subdirectory Makefiles. Once
the include file has been modified, the entire installation process (including
the building of testing executables) can be performed by typing ``make''
in the top-level ScaLAPACK directory.
ScaLAPACK uses the default (typically 4-byte) integers. With compilers that
support it, the library can be compiled with long (8-byte) integers instead.
This can be achived by providing the flag "-DInt=long" to the C compiler
(or with another corresponding C type) and, simultaneously, the appropriate
integer promotion flag (e.g. "-fdefault-integer-8" or "-i8") to the Fortran
compiler. It is expected that the BLAS/LAPACK library linked to ScaLAPACK uses
the 8-byte integers as well. Note that in order to run the test suite with long
integers, it is necessary to replace the hardcoded byte sizes in the tests
before the compilation using
sed -i 's/INTSZ = 4/INTSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
sed -i 's/INTGSZ = 4/INTGSZ = 8/g' TESTING/EIG/* TESTING/LIN/*
Even then, the tests "xssep", "xsgsep" and "xssyevr" will fail, because they
are already written with the assumption that an integer fits into memory
occupied by a real number, which is mostly not true for combination of default
Fortran real numbers and long integers.
ScaLAPACK Library Versioning
----------------------
From v2.2.1, the ScaLAPACK library is generated with a versioned name
(i.e. with a shared library ABI soname) according to the following pattern:
- We assume that the ABI updates with each MINOR release.
- An API update (and therefore an ABI update) will be expected with any MAJOR release.
- No ABI update should occur between PATCH releases.
Hence with the full version in triplet form as MAJOR.MINOR.PATCH,
the shared library soname will be libscalapack.so.MAJOR.MINOR.