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