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

Banded vs Full Matrix on PDGESV

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

Banded vs Full Matrix on PDGESV

Postby semihozmen » Sun Dec 16, 2007 12:35 pm

I observed that PDGESV solves banded matrices 3-5 times faster than the completely full matrices.. Does it adjust its algorithm according to the matrix properties? and How?

Main question is:
I am looking for the fastest algortihm on ScaLAPACK to compute variable length banded matrix (half dense or dense in particular regions but looks like banded matrix).. can you suggest me one?

Thanks in advance,

Semih Ozmen
semihozmen
 
Posts: 14
Joined: Mon Sep 10, 2007 4:58 am

Postby Julien Langou » Mon Dec 17, 2007 2:42 pm

Hello

I observed that PDGESV solves banded matrices 3-5 times faster than the completely full matrices..

I do not understand what you mean in this sentence.

If your matrix is banded, you can give a shot with PDGBSV. This solver does not
work with variable bandwidth so you will need to work with the largest bandwidth of the
matrix.

If your matrix is reasonnably sparse (and banded) then you can try to use a sparse
direct solver. They should handle the variable bandwidth failry well.

-julien.
Julien Langou
 
Posts: 835
Joined: Thu Dec 09, 2004 12:32 pm
Location: Denver, CO, USA

Postby Julien Langou » Tue Dec 18, 2007 12:50 pm

Hello again,
I observed that PDGESV solves banded matrices 3-5 times faster than the completely full matrices..


Sorry your sentence is perfectly clear, I do not know why I did not get it the first time.
(Thanks Sven for helping me out.) That's an interesting observation.

ScaLAPACK PDGESV does not do anything special in the case your matrix is banded.
The executed code is exactly the same as in the full dense case (no switch). Since your
matrix is banded, the L and U factor are banded as well to some extent and so the LU
factorization operates on lots of block of zeroes. We can imagine that there is a switch in
MPI to compress the information when sending a block of zeroes or that there is a swicth
in BLAS to check if the matrix is full of zeroes or the compiler takes advantage of
operations by zero (Sven's hypothesis). Pivot will not be the same as well, maybe in
the banded case you are less pivoting than in the full case.

In any case hopefully PDGBSV should be faster than PDGESV on a banded matrix.

Best wishes,
Julien
Julien Langou
 
Posts: 835
Joined: Thu Dec 09, 2004 12:32 pm
Location: Denver, CO, USA


Return to User Discussion

Who is online

Users browsing this forum: No registered users and 4 guests