# [petsc-users] Why does CHOLMOD solution time differs between PETSc and MATLAB?

Abhyankar, Shrirang G. abhyshr at mcs.anl.gov
Fri Nov 21 13:46:24 CST 2014

I think this may have to do with the matrix reodering scheme. I think CHOLMOD, used by MATLAB backslash operator, uses AMD (approximate min. degree) ordering scheme by default. PETSc's default reordering scheme is nested dissection. For PETSc + MATLAB, use the option -pc_factor_mat_ordering_type qmd

Shri

On Nov 21, 2014, at 11:23 AM, "Victor Magri" <victor.antonio.magri at gmail.com<mailto:victor.antonio.magri at gmail.com>> wrote:

Hi,

I'm solving a linear system which comes from the discretization of an elliptic equation. The mesh has 1 million control volumes and there are two more constraints for the system.

First, I've solved it in MATLAB using backslash command, which in turn calls CHOLMOD once the matrix is SPD. Using tic and toc funtions, I could see that it takes about 2s for the system to be solved (See attached for more details).

I wrote both matrix and rhs in PETSc binary format and solved the linear system using the example problem defined in ksp/examples/tutorials/ex10.c. The command line options were:

mpiexec -n -1 ./ex10 -f A1mi.dat -rhs rhs1mi.dat -log_summary -ksp_monitos -ksp_view -ksp_type preonly -pc_type cholesky -pc_factor_mat_solver_package cholmod

The configuration parameters for CHOLMOD in PETSc and MATLAB seems the same, so I was expecting a similar computation time, but it took about 13s to solve in PETSc. (See attached for more details).

Why does CHOLMOD solution time differs between them?

If someone wants to try for yourself, here are the binaries for the matrix and the rhs, respectively.
https://www.dropbox.com/s/q9s6mlrmv1qdxon/A1mi.dat?dl=0