[petsc-users] Rock & Hard Place with SuperLU
Brian Helenbrook
bhelenbr at clarkson.edu
Mon Jan 28 18:46:43 CST 2013
Hi Again,
Thanks for everybody's prompt help. I got petsc3.2-p7 running again and that works so at least I am able to get results again.
I ran my test case with petsc3.2-p7 and petsc3.3-p5 and turned on ksp_view output. The file "output" is identical except for one line:
tolerance for zero pivot 2.22045e-14 for petsc3.3-p5 and
tolerance for zero pivot 1e-12 for petsc3.2-p7
This is the file "output" from ksp_view
KSP Object: 2 MPI processes
type: preonly
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-05, absolute=1e-50, divergence=10000
left preconditioning
using NONE norm type for convergence test
PC Object: 2 MPI processes
type: lu
LU: out-of-place factorization
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 0, needed 0
Factored matrix follows:
Matrix Object: 2 MPI processes
type: mpiaij
rows=6957, cols=6957
package used to perform factorization: superlu_dist
total: nonzeros=0, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
SuperLU_DIST run parameters:
Process grid nprow 2 x npcol 1
Equilibrate matrix TRUE
Matrix input mode 1
Replace tiny pivots TRUE
Use iterative refinement FALSE
Processors in row 2 col partition 1
Row permutation LargeDiag
Column permutation METIS_AT_PLUS_A
Parallel symbolic factorization FALSE
Repeated factorization SamePattern_SameRowPerm
linear system matrix = precond matrix:
Matrix Object: 2 MPI processes
type: mpiaij
rows=6957, cols=6957
total: nonzeros=611043, allocated nonzeros=0
total number of mallocs used during MatSetValues calls =0
using I-node (on process 0) routines: found 1407 nodes, limit used is 5
The residual vector going into the KSP inversion is the same, but the inversion gives a different answer
petsc3.3-p5:
jacobian made 4.628e-01 seconds
matrix inverted 9.669e-01 seconds
# iterations 1 residual0 1.824e-05 du 4.290e-05 solve time: 1.821e-02 seconds
petsc3.2-p7:
jacobian made 4.279e-01 seconds
matrix inverted 6.854e-01 seconds
# iterations 1 residual0 1.824e-05 du 1.885e-05 solve time: 1.284e-02 seconds
Where the output is calculated as:
double resmax;
VecNorm(petsc_f, NORM_2, &resmax );
PetscGetTime(&time1);
err = KSPSolve(ksp,petsc_f,petsc_du);
CHKERRABORT(MPI_COMM_WORLD,err);
double resmax2;
VecNorm(petsc_du, NORM_2, &resmax2 );
KSPGetIterationNumber(ksp,&its);
PetscGetTime(&time2);
*gbl->log << "# iterations " << its << " residual0 " << resmax << " du " << resmax2 << " solve time: " << time2-time1 << " seconds" << endl;
I can output the jacobian and make sure that is the same, but I'm guessing that it is. Any other suggestions of things to try? I'd be surprised if the zero-pivot thing had much to do with it although I could be wrong. I've arranged the matrices to try and make them diagonally dominant going in. Does anyone know how to change that setting of the top of their head (i.e. without me reading the manual).
Thanks again,
Brian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130128/8815a63f/attachment-0001.html>
More information about the petsc-users
mailing list