PSPASES Home
- Software
- Publications
- People
- Feedback
PSPASES Usage Notes
Contents:
Section 1 : General Usage Notes (To resolve some FAQs)
Section 2 : Notations
Section 3 : Format for .fcc files
Section 4 : Format for .bin files
Section 5 : Format for .rsa files
*******************************************************************************
SECTION 1 : GENERAL USAGE NOTES (To resolve some FAQs).
*******************************************************************************
1. Numbering of row and column indices must start at 0.
2. PSPASES is a purely parallel code. Hence, it can be used only on more than
one processors. Its behavior for nproc = 1, is not tested.
3. Recommended range of system dimensions to see benefits of using PSPASES
is >= 5000.
4. For large matrices, it might be a good idea to get the memory estimate
of the code first, by calling PSPACEO followed by PSPACEY. If your machine
has the required memory available, then you can use either the DPSPACEF
followed by DPSPACET combination, or the PSPACEO -> PSPACEY -> DPSPACEN
-> DPSPACET combination, to solve the system.
5. PSPASES performance depends on the performance of the BLAS library
being used. If vanilla BLAS (provided via Netlib) are used, the performance
can be very poor. It is advisable to use BLAS tuned for the machine
you are using.
6. PSPASES makes it easier for the user to do multiple numerical factorizations
for given symbolic factor, or multiple solves for given numerical factor.
The concept of communicator (explained in the manual), allows user to
easily pass information from one PSPASES subroutine to another
(such as passing symbolic factor information from PSPACEY to DPSPACEN, or
passing numerical factor information from DPSPACEN/DPSPACEF to DPSPACET).
The internal memory space associated with communicators can be freed with
PSPACEC calls. It is recommended that you keep only the required
communicators in memory and free the rest. For example, if you are doing
7. The driver code supplied with PSPASES (in TEST subdirectory) supports four
different formats of input matrix files: .fcc, .bin, .rsa (HB), and
.rsa (RB). Following sections describe each of these formats.
*******************************************************************************
SECTION 2 : Notations (Read this BEFORE next sections!)
*******************************************************************************
= dimension of the matrix.
= number of nonzeros in a full row "i" ( 0 <= i < N ).
= - 1.
= column index for j'th nonzero in "i"th row/column ( 0 <= j < ki ).
= real value of the nonzero corresponding to .
= total number of nonzeros in full A (not the lower/upper triangular
part only).
*******************************************************************************
SECTION 3 : Format for .fcc files :
*******************************************************************************
NOTE :
1. fort50.fcc is in this format.
-------------- .fcc file format --------------------------------------------
....
....
.
.
.
..
----------------------------------------------------------------------------
example :
matrix
(Note: this is only an artificially contrived matrix, it need not be
positive definite.)
0 1 2 3 4 5
------------------------------
0 | 5.0 0.1 0.2 0.3
1 | 5.0 0.4
2 | 0.1 5.0 0.6
3 | 5.0
4 | 0.2 0.4 5.0
5 | 0.3 0.6 5.0
------------- matrix.fcc (must be a Full Symmetric Format)
6
4 5.0 0 0.1 2 0.2 4 0.3 5
2 5.0 1 0.4 4
3 0.1 0 5.0 2 0.6 5
1 5.0 3
3 0.2 0 0.4 1 5.0 4
3 0.3 0 0.6 2 5.0 5
-------------
aptrs, ainds, avals arrays (refer to PSPASES manual for definitions) :
(given here for single processor for better understanding of the binary
format, but PSPASES should not be used for a single processor).
nnzA = 16
i 0 1 2 3 4 5
aptrs_1_i 1 5 7 10 11 14
aptrs_2_i 4 2 3 1 3 3
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
ainds_i 0 2 4 5 1 4 0 2 5 3 0 1 4 0 2 5
avals_i 5.0 0.1 0.2 0.3 5.0 0.4 0.1 5.0 0.6 5.0 0.2 0.4 5.0 0.3 0.6 5.0
*******************************************************************************
SECTION 4 : Format for .bin files :
*******************************************************************************
NOTES :
1. This format is recommended for fast reading of the matrix on machines where
overall execution time (including the read time) is critical, and when you
are planning to use the same matrix in more than one runs.
2. Converting a .fcc file to .bin file is very easy, once aptrs, ainds, and
avals arrays are well understood. Utility code fcc2bin.c is provided for
this conversion purpose.
3. fort50.bin is in this format. It is a binary data file and hence cannot be
viewed directly.
4. Make sure that the size of the type "int4", defined in the beginning of
pspases_testc.c driver, is the same as the size of integers written into the
.bin file. This is required for the driver to read in correct values. If it
is not the case, then make appropriate changes to the "int4" type.
Currently, the use of INT8 macro definition is used to read a .bin file
written using 4-byte integers, on a Cray machine which has sizeof(int)=8
and sizeof(short) = 4.
This problem should not arise for reading and writing double precision
values, because most of the platforms use 8-bytes for double precision
floating point numbers.
-------------- .bin file format --------------------------------------------
N
aptrs_1_0 aptrs_2_0
aptrs_1_1 aptrs_2_1
aptrs_1_2 aptrs_2_2
aptrs_1_3 aptrs_2_3
.........
aptrs_1_N-1 aptrs_2_N-1
ainds_1 ainds_2 ainds_3 .... ainds_nnzA
avals_1 avals_2 avals_3 .... avals_nnzA
----------------------------------------------------------------------------
example :
For the example matrix of pervious section :
(shown in ascii here, but actual file will be binary data corresponding to
the numbers shown):
------------- matrix.bin
6
1 4
5 2
7 3
10 1
11 3
14 3
0 2 4 5 1 4 0 2 5 3 0 1 4 0 2 5
5.0 0.1 0.2 0.3 5.0 0.4 0.1 5.0 0.6 5.0 0.2 0.4 5.0 0.3 0.6 5.0
-------------
*******************************************************************************
SECTION 5 : Format for .rsa files :
*******************************************************************************
Most of the sparse matrices available today can be found in one of the
two popular formats: Harwell-Boeing Format (HB) or Rutherford-Boeing (RB)
Format. The PSPASES home page (http://www.cs.umn.edu/~mjoshi/pspases) has
links to the postscript documents specifying these formats. Please read
those documents. The driver code (pspases_testfr.f) provided with this
distribution reads matrices in these formats. It accepts matrices in the
Real Symmetric Assmbled (RSA/rsa) compressed column format.
*******************************************************************************
C/*****************************************************************************/
C/* */
C/* (C) Copyright IBM Corporation, 1997 */
C/* (C) Copyright Regents of the University of Minnesota, 1997 */
C/* */
C/* README.USAGE (for PSPASES) */
C/* */
C/* Written by Mahesh Joshi, U of MN. */
C/* */
C/*****************************************************************************/
C/* $Id: README.USAGE,v 1.2 1999/05/09 19:23:25 mjoshi Exp $ */
C/*****************************************************************************/
PSPASES Home
- Software
- Publications
- People
- Feedback