The LAPACK forum has moved to https://github.com/Reference-LAPACK/lapack/discussions.

problem with pdgesv

Open discussion regarding features, bugs, issues, vendors, etc.

problem with pdgesv

Postby asp » Wed Jul 23, 2008 4:06 pm

hello,

i'm trying to solve a simple linear system A x = b using 'pdgesv', A is a general 160 by 160 real-valued square and non-singular matrix consisting of non-negative elements, b is a 160 by 1 column vector whose elements are all ones. So as far as whether the system has a solution - it does and the solution is unique. The number of processors is 64 which are used to form an 8 by 8 grid so the matrix is distributed over the grid in blocks of size 20 by 20. the problem is that the call to pdgesv never finishes, not even in 30mins. looks like there is an infinite loop or something inside pdgesv. any clues?

MPICH info: /1.2.7..15/mx-gnu4
linker settings: -lscalapack -lblacs -lblacsCinit -lblacsF77init -lblacs -lgotop -lxerblac -lgfortran -lgfortranbegin

thanks
asp
 
Posts: 15
Joined: Sat Jul 19, 2008 3:21 pm

Re: problem with pdgesv

Postby asp » Wed Jul 23, 2008 8:32 pm

i think the problem is with the way the right hand side is distributed. it looks like only the processors belonging to the first column of the processing grid have the parts of 'b'. so what happens when a call to pdgesv is made from a processor from say the second column of the grid i.e. a processor that has no idea what b is ?

and also, besides solving Ax = b of interest to me is the dominant eigenvalue,\lambda, of A (A is such that \lambda < 1) and the associated (left) eigenvector,q, (which would be right if i had A transposed).
i implemented the power method using pdasum and pdgemv. pdasum is used to compute the L_1 norm of q to normalize by. and pdgemv is used to do the power iterations q_k = A' * q_{k-1} and pdgemv actually also does the scaling i.e. alpha=1/\lambda. the problem again is the way q as a column vector is distributed over the grid. pdasum when called from a processor outside of the first column returs zero so pdgemv fails since it has to do division by \lambda=zero. i'm totally lost. what is the right way to scatter a vector (column or row doesn't matter) across te grid's processors?

thanks
asp
 
Posts: 15
Joined: Sat Jul 19, 2008 3:21 pm


Return to User Discussion

Who is online

Users browsing this forum: No registered users and 8 guests