History of ScaLAPACK releases VERSION 1.0 : February 28, 1995 PATCHES: VERSION 1.1 : March 20, 1995 VERSION 1.2 : May 10, 1996 PATCHES: VERSION 1.3 : June 5, 1996 VERSION 1.4 : November 17, 1996 VERSION 1.5 : May 1, 1997 PATCHES: VERSION 1.6 : November 15, 1997 VERSION 1.7 : August 31, 2001
To better address the needs of our ScaLAPACK users, we have created this Errata webpage. Users will be able to download updates/patches to ScaLAPACK in a variety of ways (Unix patch, tar-gzip file), and will no longer need to wait for an update/release, or make the changes by-hand. Errata in the documentation are also noted, as well as a list of known deficiencies in the ScaLAPACK software.
This file contains:
ScaLAPACK has been tested on a variety of architectures.
Note to PGF77 and NAGF90 compiler users: We have unconfirmed reports of Fortran/C interoperability problems (string handling) with ScaLAPACK on the nagf90 and pg77 compilers. Until this is resolved, the user will have to avoid using these two compilers in conjunction with ScaLAPACK and the BLACS.
page ---- 8: Change to netlib format ( .tar.gz --> .tgz ) Section 1.7 change scalapack.tar.gz -> scalapack.tgz 9: Change to netlib format ( .tar.gz --> .tgz ) Section 1.8 change manpages.tar.gz -> manpages.tgz 13-14: Change to netlib format ( .tar.gz --> .tgz ) Section 2.1, numerous references to .tar.gz files must be replaced by .tgz 14: Change to netlib format ( .shar -> .tgz ) http://www.netlib.org/blas/blas.shar should be changed to http://www.netilb.org/blas/blas.tgz and sh blas.shar should be changed to gunzip -c blas.tgz | tar xvf - 20: Typographical error in the 8th row of the coefficient matrix A. The 8th row is listed as -s -c -a -l -a -p -a c k and should be replaced by: -s +c -a -l -a -p -a c k Likewise, this correction must be propogated to the 8th row of Figure 2.1. -s +c -a -l -a -p -a c k 72: Section 4.4.2 In the text beginning "Table 4.10 illustrates ...", it erroneously says NB=3. This should be NB=8, as noted in the caption of Table 4.10. 90: Section 4.6.7, third paragraph inherit --> inherent 116: Erroneous use of BLAS instead of BLACS in the first sentence of Section 5.4.1. The first sentence should say: "Users should choose vendor-supplied BLACS optimized for their computer; these BLACS will be the fastest BLACS implementation."
The following bug fixes have NOT yet been incorporated in a release/update of ScaLAPACK.
DIRECTORY/ROUTINE | DATE POSTED (M/D/Y) | DESCRIPTION OF CHANGE |
SCALAPACK/PBLAS/SRC/PBtools.h | 3/12/2002 | Comment out CSYMM reference (line 57) |
SCALAPACK/PBLAS/SRC/pblas.h | 3/15/2002 | Added missing crot define |
SCALAPACK/SRC/psdbtrf.f | 3/12/2002 | Typo (DLACPY->SLACPY) in EXTERNAL declaration (line 374) |
SCALAPACK/SRC/pcheevd.f | 3/25/2002 | Correction to LRWORK (lines 117, 248) and INFO=0 return |
SCALAPACK/SRC/pzheevd.f | ||
SCALAPACK/TESTING/EIG/pcseptst.f | 3/15/2002 | Correction to LHEEVDSIZE calculation (line 1064) |
SCALAPACK/TESTING/EIG/pzseptst.f |
The following outstanding bugs exist in the ScaLAPACK code and hope to be fixed in an upcoming patch or release.
Floating Exception p1_1604757: p4_error: interrupt SIGFPE: 8 rm_l_1_1615487: p4_error: interrupt SIGINT: 2 Abort
Subscript out of range on file line 188, procedure psbmatgen. Attempt to access the 0-th element of variable ?.
Subscript out of range on file line 188, procedure psbmatgen. Attempt to access the 0-th element of variable ?.
Subscript out of range on file line 188, procedure psbmatgen. Attempt to access the 0-th element of variable ?.
WALL 10 6 1 1 0.00 4.61 PASSED Process 1296014 (xsnep) stopped on signal SIGFPE: Floating point exception (handler sig_err_handler) at [PSLAHQR:1086 +0x294,0x1005b29c] 1086 SUM = SMALLA( J, 3, KI ) + (dbx) print SUM 0.015993516892194748 (dbx) print J 6 (dbx) print KI 1 (dbx) print SMALLA(J,3,KI) nan0x0000000007fffffff
inside pssepsubtst index MYIL-1 = 0 Subscript out of range on file line 707, procedure pssepsubtst. Attempt to access the 0-th element of variable ?. IF( .NOT.LSAME( RANGE, 'V' ) .OR. $ ( MYIL.EQ.1 .OR. ( WIN( MYIL-1 ).LT.VL+NORMWIN*FIVE* $ THRESH*EPS ) ) ) THEN IF( .NOT.LSAME( RANGE, 'V' ) .OR. $ ( MYIL.EQ.N-M+1 .OR. ( WIN( MYIL+M ).GT.VU- $ NORMWIN*FIVE*THRESH*EPS ) ) ) THEN
Subscript out of range on file line 491, procedure psstein. Attempt to access the 0-th element of variable ?. *** Execution Terminated (99) *** Line 491 is: ONENRM = MAX( ONENRM, ABS( D( BN ) )+ABS( E( BN-1 ) ) )
Occurs inside psgesvd before first call to PSLASET, M > LDA ! Subscript out of range on file line 106, procedure slaset. Attempt to access the 0-th element of variable ?. *** Execution Terminated (99) ***
WALL 10 6 1 1 0.01 1.54 PASSED Process 1626569 (xcnep) stopped on signal SIGFPE: Floating point exception (handler sig_err_handler) at [PCLAHQR:900 +0x300,0x1007d544] 900 SUM = T1*SMALLA( J, 3, KI ) + (dbx) print SMALLA(J,3,KI) (nan0x0000000007fffffff, nan0x0000000007fffffff) (dbx) print SMALLA(J,4,KI) (nan0x0000000007fffffff, nan0x0000000007fffffff) (dbx) print SMALLA(J,5,KI) (nan0x0000000007fffffff, nan0x0000000007fffffff)
/usr/local/mpich/bin/mpirun[139]: 1365679 Memory fault
The following "suspicious" test failures have been witnessed with xcevc/xzevc.
This is the output from "xcevc" (sp complex): TIME N NB P Q NEP Time MFLOPS CHECK ---- ----- --- ---- ---- -------- -------- ------ ||H*Z - Z*D|| / (||T|| * N * eps) = 0.1116899E-01 max_j(max|Z(j)| - 1) / ( N * eps ) 116659.8 WALL 100 8 1 1 0.22 0.09 FAILED ||H*Z - Z*D|| / (||T|| * N * eps) = 0.1055064E-01 max_j(max|Z(j)| - 1) / ( N * eps ) 116659.8 WALL 100 8 2 2 32.73 0.00 FAILED
And this is the output from "xzevc" (dp complex): TIME N NB P Q NEP Time MFLOPS CHECK ---- ----- --- ---- ---- -------- -------- ------ ||H*Z - Z*D|| / (||T|| * N * eps) = 0.1121204E-01 max_j(max|Z(j)| - 1) / ( N * eps ) 0.6263127E+14 WALL 100 8 1 1 0.10 0.19 FAILED ||H*Z - Z*D|| / (||T|| * N * eps) = 0.1268131E-01 max_j(max|Z(j)| - 1) / ( N * eps ) 0.6263127E+14 WALL 100 8 2 2 16.94 0.00 FAILED
The following "suspected" bugs may exist in the ScaLAPACK code, but have not been verified.
The following deficiencies exist in the ScaLAPACK code and hope to be incorporated in an upcoming patch or release.
For Cray T3E, the user must modify SCALAPACK/SRC/pslabad.f and pdlabad.f to remove the IF-conditional and always take the square root. And, you must include the -DNOIEEE flag in the CDEFS definition in the SLmake.inc.
Also for the Cray T3E ONLY, the user must reset the defined size of an integer and a real in the ScaLAPACK Test Suite. Set the variable INTGSZ = 8, REALSZ = 8, and CPLXSZ = 16 in all SCALAPACK/TESTING/LIN/p*driver.f, SCALAPACK/TESTING/EIG/p*driver.f, SCALAPACK/TESTING/EIG/p*sepreq.f, SCALAPACK/TESTING/EIG/p*gsepreq.f, SCALAPACK/PBLAS/TESTING/p*tst.f, and SCALAPACK/PBLAS/TIMING/p*tim.f testing/timing programs! By default, INTGSZ = 4, REALSZ = 4, and CPLXSZ = 8 for all other architectures.
Specifically, the following changes are required:
SCALAPACK/PBLAS/SRC/pblas.h Change "void fortran" to "void" and "int fortran" to "int". ?? SCALAPACK/SLmake.inc: add -DNO_IEEE to CDEFS add -dp to compilation flags SCALAPACK/SRC/p?stein.f: as first executable line, add: onenrm = 0.0E0 SCALAPACK/SRC/p?latrz.f: add AII = ZERO right after quick return so it is initialized on nodes that do not do stuff in P_LARFG SCALAPACK/SRC/p?labad.f: comment out IF( LOG10( LARGE ).GT.2000.D0 ) THEN because T3E has IEEE hardware, but not arithmetic SCALAPACK/SRC/pslaiect.c as first line, add: #define float double SCALAPACK/PBLAS/SRC/pblas.h in original file, move lines 92 and 93 to line 119 (:92,93mo119) this moves the typedef for complex below the #define float double . . at line 27, add: #ifdef T3E #define _MACH_ _T3D_ #endif SCALAPACK/PBLAS/TESTING/p*tst.f: Set REALSZ = 8 and CPLXSZ = 16!! SCALAPACK/PBLAS/TIMING/p*tim.f: Set REALSZ = 8 and CPLXSZ = 16!! SCALAPACK/TESTING/LIN/p*driver.f: Set INTGSZ = 8, REALSZ = 8, and CPLXSZ = 16!! SCALAPACK/TESTING/EIG/p*driver.f: Set INTGSZ = 8, REALSZ = 8, and CPLXSZ = 16!! SCALAPACK/TESTING/EIG/p*sepreq.f: Set INTGSZ = 8, REALSZ = 8, and CPLXSZ = 16!! SCALAPACK/TESTING/EIG/p*gsepreq.f: Set INTGSZ = 8, REALSZ = 8, and CPLXSZ = 16!! SCALAPACK/TESTING/EIG/p[c,z]sepsubtst.f: change line 737 from: IF( MISSSMALLEST .AND. ( WIN( MYIL-1 ).LT.VL+NORMWIN* $ FIVE*THRESH*EPS ) )MISSSMALLEST = .FALSE. to: if (misssmallest) $ misssmallest = win(myil-1) .ge. $ vl+normwin*five*thresh*eps SCALAPACK/TESTING/EIG/p[d,s]sepsubtst.f: change line 714 from: IF( MISSSMALLEST .AND. ( WIN( MYIL-1 ).LT.VL+NORMWIN* $ FIVE*THRESH*EPS ) )MISSSMALLEST = .FALSE. to: if (misssmallest) $ misssmallest = win(myil-1) .ge. $ vl+normwin*five*thresh*eps SCALAPACK/TESTING/EIG/p*gsepsubtst.f: Same change as for p*sepsubtst.f.
Unresolved issues remain in heterogeneous computing. As a result, the ScaLAPACK library is not as robust in a heterogeneous environment as it is in a homogeneous environment. The following is a list of known problems when ScaLAPACK is run on a heterogeneous network of computers. For further details, please refer to LAPACK Working Note 112.