ERRATA webpage for ScaLAPACK


 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

This errata file lists errata for the ScaLAPACK Users' Guide and errata for the ScaLAPACK code itself. It also lists machine-specific installation hints, details of the updates, and any outstanding bugs to be fixed in the upcoming release.

This file contains:

ScaLAPACK has been tested on a variety of architectures. However, keep in mind that we do not have access to every possible type of machine, and the regrettable bug report will appear. We apologize for any inconvenience this may cause to our users, and strongly encourage users to contact us if you suspect an abnormality. Please contribute "machine-specific installation hints" for architectures that we do not have listed. These "hints" are of great benefit to many users.


Errata in ScaLAPACK Users' Guide, First Edition

 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."

Machine-Specific Installation Hints

We have tested ScaLAPACK on heterogeneous clusters of workstations using pvm3.4 and mpich version 1.1, and on the IBM SP-2, Intel Paragon, SGI Power Challenge, SGI Origin 2000, and Cray T3E. We tested on the IBM SP-2 using IBM MPI, on the SGI Power Challenge and Origin 2000 using SGI MPI v3.0, and on the Cray T3E using Cray MPI (mpt.1.2.0.0.6beta). The workstations used were AIX46K, ALPHA, HPPA, LINUX, SGI64, SUN4, and SUN4SOL2.

*** !! IMPORTANT !! *********************************************
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.
*** !! IMPORTANT !! *********************************************

  1. For HPPA, you may need to compile all routines in SCALAPACK/PBLAS/SRC/INTERNAL/PBBLAS/ with NO optimization. And, the user must modify SCALAPACK/SRC/pslabad.f and pdlabad.f to remove the IF-conditional and always take the square root.
  2. For NEC SX-4, 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.
  3. 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.


Errata in ScaLAPACK, version 1.7

UPDATED: March 12, 2002

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/SRC/psdbtrf.f 3/12/2002 Typo (DLACPY->SLACPY) in EXTERNAL declaration (line 374)


Changes to ScaLAPACK code to make it run on T3E

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.


Heterogeneous Networks of Computers

  1. 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:
    lawn112.ps
  2. Because the ALPHA handles denormalized numbers differently than other architectures, the least squares executables SCALAPACK/TESTING/x_ls will fail when run on a heterogeneous network. However, the least squares executables will run homogeneously on ALPHAs.
  3. The symmetric eigensolvers may have trouble on heterogeneous networks when a subset of eigenvalues is chosen by value (i.e. RANGE='V') and one of the limits of that range (VL or VU) is within a couple ulps of an actual eigenvalue. This is not a problem on homogeneous systems. When this happens, some processes will return INFO <> 0. This can happen when running the test code. In every case that we have seen, the answer is correct despite the spurious error message.
  4. The symmetric eigensolver test will often hang on a heterogeneous system which includes an ALPHA. The symmetric eigensolver test will occasionally hang on a network of heterogeneous computers which does not include an ALPHA, such as a network which includes an HPPA and an RS6K.