On Tue, 20060418 at 11:12 0400, Julien Langou wrote:
hello,
for information ulf is speaking of:
http://www.netlib.org/scalapack/examples/example1.f
MB must equal NB for PDGESV (a rather well hidden fact)
hidden on line 88 of pdgesv.f for information
I wonder if the fourth argument in the second call to DESCINIT in
example1.f shouldn't be MB rather than NB, since the fourth argument is
MB in the first call to DESCINIT.
mm ok so the block size for the A matrix is MBbyNB,
and the block size for B for the matrix B is NBbyNBRHS,
so yes you are right might look better with an MBbyNBRHS when you look
at B.
Now the DESCINIT of B is also used for 'X' and you certainly want the
block size of X to be NBbyNBRHS, so ....
On closer consideration, I am probably wrong. I assumed that the row
distribution of A and b (and thereby x) ought to be the same, but as you
point out, one probably wants the row distribution of x (and therefore
b) to be the same as the column distribution of A.
I also thinks the fact that MB must equal NB for PDGESV merits a comment
in example1.f
yes I think this is a good idea,
other scalapackers, yes, no?
thanks Ulf for pointing this out.
It would have helped me at least.
PDGESV returns the error number 606 which told me that the 6th element
of the 6th argument was wrong (" On entry to PDGESV parameter number
606 had an illegal value"). It was not immediately obvious that what's
wrong is that it is different from the 5th element. I found it pretty
soon though by looking in the source code for PDGESV and finding this:
ELSE IF( DESCA( MB_ ).NE.DESCA( NB_ ) ) THEN
INFO = (600+NB_)
ulfa

Ulf Andersson, application expert, Center for Parallel Computers (PDC)
PDC, Nada, KTH tel. +46 8 790 6206 & +46 70 275 6206
100 44 Stockholm, Sweden fax: +46 8 247 784
http://www.nada.kth.se/~ulfa/ Visiting address: Teknikr. 14 room 410
