********************************************************************** * * * This directory contains information about the tests performed * * with LAPACK's symmetric tridiagonal eigensolvers on different * * computer architectures and a large number of test cases. * * * * Subdirectories: * * * * ARCH : results of the tests (see details below) * * DATA : (explicit) test matrices used in the tests and * * plots of their eigenvalue distributions (jpeg) * * INPUT : input files used by the tester * * * ********************************************************************** Architectures ============= Results are given for the following machines, : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PLAT CPU System Compiler BLAS hostname ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ATHL 1.2 GHz AMD Linux gfortran native niche Athlon, 2GB RedHat memory ---------------------------------------------------------------------- ITN2 1.4 GHz Itanium Linux ifort mkl davinci 2 SuSE ---------------------------------------------------------------------- PIII 1.2 GHz Pentium Linux ifort native londrina III, 512 RAM RedHat ---------------------------------------------------------------------- P4 4.0 GHz Pentium Linux ifort mkl deltaflyer 4, 1 GB RAM SuSE ---------------------------------------------------------------------- SP3 375 MHz PWR 3+ AIX xlf90 essl seaborg ---------------------------------------------------------------------- SP5 1.9 GHz PWR 5 AIX xlf90 essl bassi ---------------------------------------------------------------------- SGI 600 MHz IP35 IRIX64 f90 scs judgedee SGI Onyx 3400 24 GB RAM ---------------------------------------------------------------------- SUN 650 MHz sparcv9 SunOS58 f90 sunperf nsun4 Sun Blade 100 512 MB RAM ---------------------------------------------------------------------- X1 - UNICOS/mp ftn libsci sn702 ---------------------------------------------------------------------- XD1 2.2 Ghz Opteron Linux pathscale acml thunder 4 GB RAM ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Results in tabular form and corresponding plots =============================================== The files in ARCH/ are named ..tabular.. where is listed above, means double/single precision, can be A, for eigenvalues will be found. V, for eigenvalues in the half-open interval (VL,VU] I, for the IL-th through IU-th eigenvalues and can be orth, for the orthogonality level resd, for the residual norms tmng, for the timings ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ In these files, 'case' is just a pointer so that a matrix of interest can be easily identified and _STEGR indicates the version of STEGR used in the tests. On the SUN, i=1 for LAPACK 3.0's, i=2 for for Parlett and Voemel's. On all other machines, i=1 for Parlett and Voemel's. The results given in ..tabular.. are plotted in the files ....jpeg where can be orth, for the orthogonality level resd, for the residual norms tmng, for the timings, absolute values, RANGE=I/V. tmng-abs, for the timings, absolute values, RANGE=A tmng-nrm, for the timings, normalized w.r.t STEGR_PV, range=A tmng-rel, for the timings, relative to n^2, RANGE=A Note that the plots tmng-abs, tmng-nrm and tmng-rel show timings for LAPACK-style matrices and matrices related to real applications separately. In these plots, the cases are ordered accordingly to the matrices dimensions (increasing dimensions). In addition to the above plots, reltmng-dstedc.jpeg reltmng-dsteqr.jpeg reltmng-dstevx.jpeg show the relative performance between dstegr and the other three eigensolvers, on different architectures. Meaning of 'form', 'type', 'cond', 'dist' and 'sign' ==================================================== form = 1: built-in eigenvalue distribution type description (1) EIG( 1 ) = 1 and EIG( 2:N ) = 1.0/COND; (2) EIG( 1:N-1 ) = 1 and EIG( N ) = 1.0/COND; (3) EIG( I ) = COND**(-(I-1)/(N-1)); (4) EIG( I ) = 1-(I-1)/(N-1)*(1-1/COND); (5) Eigenvalue distribution set to random numbers in the range (1/COND,1), their logarithms are uniformly distributed; (6) Eigenvalue distribution set to random numbers from the same distribution as of the rest of the matrix; (7) EIG( I ) = ULP*I, I = 1,2,...N-1, and EIG( N ) = 1.0. (8) EIG( 1 ) = ULP, EIG( I ) = 1+SQRT(ULP)*I, I=2,3,...N-1, and EIG( N )=2 (9) EIG( 1 ) = 1, EIG( I ) = EIG( I-1 )+100*ULP, I=1,2,...n-1. form = 2: built-in matrix type description (0) The zero matrix. (1) The identity matrix. (2) (1,2,1) tridiagonal matrix. (3) Wilkinson-type tridiagonal matrix. (4) Clement-type tridiagonal matrix. form = 3: eigenvalue distribution read from file (type=1, always) form = 4: tridiagonal matrix read from file (type=1, always) form = 9: glued matrix (type=9). Only glued Wilkinson matrices are used in the tests, although the tester can glue any of the types implemented for forms 1 and 2. cond = condition number used in the generation of built-in eigenvalue distributions (form=1) 1, condition number = 1 / SQRT(ULP), default 2, condition number = 1 / (N*SQRT(ULP)), 3, condition number = 1 / (10*N*SQRT(ULP)), 4, condition number = 1 / ULP, 5, condition number = 1 / (N*ULP), 6, condition number = 1 / (10*N*ULP) dist = distribution used to generate random numbers 1, uniform distribution (-1,1), default 2, uniform distribution ( 0,1) 3, normal distribution ( 0,1) sign = assigns signs to the eigenvalues 0, the eigenvalues will not be negative, default 1, the eigenvalues may be positive, negative, or zero Input files =========== Control parameters for the tester are given in the directory INPUT, in the files , which are input.1-2-1.big input.Fann input.HB input.HB.big input.UFSMC.big input.Wilk input.Wilk.big input.eigdist.1 input.eigdist.2 input.eigdist.3 input.inder.1 input.inder.2 input.inder.3 input.random input.range Each gives additional information about the matrices used in the tests. The (jpeg) files in the directory INPUT show the eigenvalue distributions of most matrices used in the tests. Test cases ========== In ..tabular.. the cases are: 1 - 20 : a) W(1) = 1, W( 2:N ) = 1.0/COND b) W(1:N-1) = 1, W(N) = 1.0/COND c) W(I) = COND**(-(I-1)/(N-1)) d) W(I) = 1-(I-1)/(N-1)*(1-1/COND) where COND = 1/ULP, the eigenvalues will not be negative, and N = 125,250,500,1000,2000 for each distribution. 21 - 40 : Similar to cases 1-20 with the difference that the eigenvalues have random signs. 41 - 60 : a) W(I) = random number from the distribution used for the matrix b) W(I) = ULP*I, I = 1,2,...N-1, W(N) = 1.0 c) W(1) = ULP, W(N)=2, W(I) = 1+SQRT(ULP)*I d) (1,2,1) matrix and N = 125,250,500,1000,2000 for each matrix. 61 - 105 : a) W(1) = 1, W( 2:N ) = 1.0/COND b) W(1:N-1) = 1, W(N) = 1.0/COND c) W(I) = COND**(-(I-1)/(N-1)) d) W(I) = 1-(I-1)/(N-1)*(1-1/COND) e) W(I) = random number in the range (1/COND,1) f) W(I) = random number from the distribution used for the matrix g) W(I) = ULP*I h) W(1) = ULP, W(I) = 1+SQRT(ULP)*I, and W(N)=2 i) W(1) = 1, W(I) = W(I-1)+100*ULP where COND = 1/SQRT(ULP), the eigenvalues will not be negative, and N = 125,250,500,1000,2000 for each matrix. 106 - 150 : Similar to cases 61-105 with the difference that the eigenvalues have random signs. 151 - 158 : Tridiagonals generated from combinations of known eigenvalue distributions (George Fann, Harwell-Boeing). 159 - 168 : A = randn(n); A = A + A'; T = hess(A). 169 - 178 : A = rand(n) - 0.5; A = A + A'; T = hess(A). 179 - 188 : Wilkinson and glued Wilkinson matrices. 189 - 200 : George Fann matrices 201 - 241 : Harwell-Boeing matrices. 242 - 349 : large (1,2,1) matrices 250 - 261 : large Harwell-Boeing matrices. 262 - 278 : large matrices from the University of Florida Collection. 279 - 291 : large Wilkinson matrices. Note: The large cases are not available on all archictetures.