[petsc-dev] Shifting in ICC, changes?

Hong Zhang hzhang at mcs.anl.gov
Fri Dec 3 15:15:58 CST 2010


Jed:

> With the version from Feb 1, I get (using AIJ since SBAIJ had no shift logic
> at that time and just proceeded with negative pivots):
> [0] MatCholeskyFactorNumeric_SeqAIJ(): number of shiftpd tries 1,
> shift_amount 1.02086e+06
> [0] MatCholeskyFactorNumeric_SeqAIJ(): number of shiftpd tries 1,
> shift_amount 61695
> [0] MatCholeskyFactorNumeric_SeqAIJ(): number of shiftpd tries 1,
> shift_amount 28112.5
> [0] MatCholeskyFactorNumeric_SeqAIJ(): number of shiftpd tries 1,
> shift_amount 33674.7
> [0] MatCholeskyFactorNumeric_SeqAIJ(): number of shiftpd tries 1,
> shift_amount 33903.1
> When I ran this with SBAIJ at that time, the iteration count blew out
> because the factors were garbage (having used negative pivots).  When I run
> the same exact thing now, I get no output.  The iteration counts are
> identical with AIJ and SBAIJ.
> Could all the old ICC kernels have been somehow buggy?  Or did something in
> the elimination order change?

Yes, old ICC was buggy. Unlike Cholesky which reveals error immediately,
incorrect ICC may still gives convergence. I roughly recall that
comparing convergence of
icc for aij and sbaij, I fixed bug in one of the routines (likely for sbaij).
What block size of sbaij do you use?
While changing data structures in matrix factorization routine, I
cleaned or rewrote
part of factorization routines, mainly for bs=1. bs>1 might need more work, no
guarantee there :-(

Hong

> Jed



More information about the petsc-dev mailing list