Hello,
I encountered the following problem using PDSYEVD:
The test program in SCALAPACK/TESTING/EIG/pdsepdriver.f (and its
executable xdsep) fails with the input file "SEP.dat" enclosed below.
The output file SEP.out produced is also enclosed below.
It seems that PDSYEVD calls PDORMTR with insufficient work space
(argument 16: LWORK), although PDSYEVD itself does not complain about
insufficient work space. I suspect that the value of LIWORK computed in
PDSYEVD is not large enough for the call to PDORMTR.
Note that the problem does arise on a 2x2 process grid but not on a 1x1
process grid.
Thanks for your help.
Francois
===============================
SEP.dat
===============================
'ScaLAPACK Symmetric Eigensolver Test File'
' '
'sep.out' output file name (if any)
6 device out (13 & 14 reserved for
internal testing)
4 maximum number of processes
'N' disable pxsyev tests, recommended for
heterogeneous systems.
' '
'TEST 1 - test one 256x256 matrix'
1 number of matrices
256
1 number of uplo choices
'U' uplo choices
1 number of processor configurations (P,
Q, NB)
2 values of P (NPROW)
2 values of Q (NPCOL)
128 values of NB
1 number of matrix types
8 matrix types (see pdseptst.f)
'N' perform subset tests?
20.0 Threshold (* 5 for generalized tests)
-1 Absolute Tolerance
' '
'End of tests'
-1
====================================
SEP.out
====================================
SCALAPACK symmetric Eigendecomposition routines.
' '
Running tests of the parallel symmetric eigenvalue routine: PDSYEVX &
PDSYEV & PDSYEVD.
The following scaled residual checks will be computed:
||AQ - QL|| / ((abstol + ||A|| * eps) * N)
||Q^T*Q - I|| / (N * eps)
An explanation of the input/output parameters follows:
RESULT : passed; or an indication of which eigen request test failed
N : The number of rows and columns of the matrix A.
P : The number of process rows.
Q : The number of process columns.
NB : The size of the square blocks the matrix A is split into.
THRESH : If a residual value is less than THRESH, RESULT is flagged as
PASSED.
: the QTQ norm is allowed to exceed THRESH for those eigenvectors
: which could not be reorthogonalized for lack of workspace.
TYP : matrix type (see PDSEPtst.f).
SUB : Subtests (see PDSEPtst).f
CHK : ||AQ - QL|| / ((abstol + ||A|| * eps) * N)
QTQ : ||Q^T*Q - I||/ (N * eps)
: when the adjusted QTQ exceeds THRESH
the adjusted QTQ norm is printed
: otherwise the true QTQ norm is printed
If NT>1, CHK and QTQ are the max over all eigen request tests
TEST : EVX - testing PDSYEVX, EV - testing PDSYEV, EVD - testing PDSYEVD
N NB P Q TYP SUB WALL CPU CHK QTQ
CHECK TEST
----- --- --- --- --- --- -------- -------- --------- ---------
----- ----
'TEST 1 - test one 256x256 matrix'
256 128 2 2 8 N 2.09 -1.00 0.35E-02 0.96
PASSED EVX
256 128 2 2 8 N 3.75 -1.00 0.35E-02 0.96 PASSED EV
{ 1, 0}: On entry to PDORMTR parameter number 16 had an illegal
value
{ 1, 1}: On entry to PDORMTR parameter number 16 had an illegal
value
{ 0, 0}: On entry to PDORMTR parameter number 16 had an illegal
value
{ 0, 1}: On entry to PDORMTR parameter number 16 had an illegal
value
startio: illegal unit number
apparent state: unit 6 (unnamed)
lately writing sequential formatted external IO
startio: illegal unit number
startio: illegal unit number
apparent state: unit 6 (unnamed)
lately writing sequential formatted external IO
apparent state: unit 6 (unnamed)
lately writing sequential formatted external IO
PDSYEVD failed the |AQ -QE| test
--
=================================
Francois Gygi
Professor
Department of Applied Science
University of California, Davis
One Shields Avenue
Davis, CA 95616-8254
phone: 530-752-4042
fgygi@Domain.Removed
=================================
|