[petsc-users] Inconsistent PETSc MUMPS statistics
Jose E. Roman
jroman at dsic.upv.es
Sun Jan 16 05:28:31 CST 2022
Probably someone else can give a better answer, but if I remember correctly ParMetis relies on certain random number generator that makes it produce different partitions for different runs. I think this was fixed in the ParMetis that --download-parmetis installs, but if I am not wrong you are not using that version. This would explain what you get.
Jose
> El 16 ene 2022, a las 11:37, Varun Hiremath <varunhiremath at gmail.com> escribió:
>
> Hi All,
>
> I am using SLEPc to compute eigenvalues and MUMPS for factorization.
>
> Please find attached:
> 1) A simple test program slepc_eps_mumps_test.cpp that reads a given PETSc matrix and computes the smallest eigenvalues using MUMPS for factorization
> 2) An example PETSc matrix MatA of size 581343 rows (sending in .gz format via Google drive link, please extract it "gunzip MatA.gz" before using). You should be able to reproduce this issue with any other matrix of a similar or bigger size.
>
> I notice that when I run the attached test program in parallel with the attached test matrix the MUMPS statistics printed (using the -eps_view option in the command line) change with every run.
>
> This is how I run the test:
> $ mpiexec -n 24 ./slepc_eps_mumps_test.o -nev 5 -f MatA -eps_view
> and for example, the output of this includes the following MUMPS stats
> ...
> PC Object: (st_) 24 MPI processes
> type: lu
> out-of-place factorization
> tolerance for zero pivot 2.22045e-14
> matrix ordering: external
> factor fill ratio given 0., needed 0.
> Factored matrix follows:
> Mat Object: 24 MPI processes
> type: mumps
> rows=581343, cols=581343
> package used to perform factorization: mumps
> total: nonzeros=348236349, allocated nonzeros=348236349
> MUMPS run parameters:
> SYM (matrix type): 0
> ...
>
> I ran this test 10 times as follows and got a different number of nonzeros (line highlighted above ) reported in each run. (If you save the full output and compare, you will notice many other differences, but I wouldn't have expected the nonzeros to change with every run.)
>
> $ for i in `seq 1 10`; do echo "run $i :-----"; mpiexec -n 24 ./slepc_eps_mumps_test.o -nev 5 -f MatA -eps_view | grep -A 1 "factorization: mumps"; done
>
> run 1 :-----
> package used to perform factorization: mumps
> total: nonzeros=354789915, allocated nonzeros=354789915
> run 2 :-----
> package used to perform factorization: mumps
> total: nonzeros=359811101, allocated nonzeros=359811101
> run 3 :-----
> package used to perform factorization: mumps
> total: nonzeros=354834871, allocated nonzeros=354834871
> run 4 :-----
> package used to perform factorization: mumps
> total: nonzeros=354830397, allocated nonzeros=354830397
> run 5 :-----
> package used to perform factorization: mumps
> total: nonzeros=353942929, allocated nonzeros=353942929
> run 6 :-----
> package used to perform factorization: mumps
> total: nonzeros=354147241, allocated nonzeros=354147241
> run 7 :-----
> package used to perform factorization: mumps
> total: nonzeros=354980083, allocated nonzeros=354980083
> run 8 :-----
> package used to perform factorization: mumps
> total: nonzeros=354980083, allocated nonzeros=354980083
> run 9 :-----
> package used to perform factorization: mumps
> total: nonzeros=354214219, allocated nonzeros=354214219
> run 10 :-----
> package used to perform factorization: mumps
> total: nonzeros=355894047, allocated nonzeros=355894047
>
> Can somebody please explain what causes these differences in MUMPS stats?
>
> Thanks,
> Varun
> MatA.gz
>
> <slepc_eps_mumps_test.cpp>
More information about the petsc-users
mailing list