My installation of scalapack 2.0.2 hangs during a call to pzheevr. This seems to be due to the content of the matrix rather than combination of sizes/process grid etc. If the matrix is filled with random numbers, it works OK, but my matrix fails. There aren't any NaNs or anything like that in it though. I am running on 8 cores (2x4 grid).
The relevant bit of the code is below with a couple of prints that show how the hang is eventually caused. Is this a bug or a problem with my installation?
The section of code at which the hang occurs:
* Part 3. Compute representation tree and eigenvectors.
* What follows is a loop in which the tree
* is constructed in parallel from top to bottom,
* on level at a time, until all eigenvectors
* have been computed.
IF ( MYIL.GT.0 ) THEN
CALL DSTEGR2B( JOBZ, N, RWORK( INDD2 ),
$ RWORK( INDE2+OFFSET ),
$ IM, W( 1 ), RWORK( INDRW ), N, N,
$ IWORK( 1 ), RWORK( INDRWORK ), SIZE1,
$ IWORK( 2*N+1 ), SIZE2, DOL,
$ DOU, NEEDIL, NEEDIU, INDWLC,
$ PIVMIN, SCALE, WL, WU,
$ VSTART, FINISH,
$ MAXCLS, NDEPTH, PARITY, ZOFFSET, IINFO )
IINDWLC = INDRWORK + INDWLC - 1
CALL PMPCOL( MYPROC, NPROCS, IIL, NEEDIL, NEEDIU,
$ IWORK(INDILU), IWORK(INDILU+NPROCS),
$ COLBRT, FRSTCL, LASTCL )
COLBRT = .FALSE.
FRSTCL = MYPROC
LASTCL = MYPROC
* Check if this processor collaborates, i.e.
* communication is needed.
print'(a,3i5,l6)','LOOP100: ',MYPROC,FRSTCL, LASTCL
The output is:
LOOP100: 0 T
LOOP100: 1 T
LOOP100: 2 T
LOOP100: 3 T
LOOP100: 4 F
LOOP100: 5 F
LOOP100: 6 T
LOOP100: 7 T
MYPROC FIRSTCL LASTCL
LOOP100: 4 3 5 <---------------- inconsistent with above?????
LOOP100: 5 4 5