← Back to team overview

fenics team mailing list archive

Improved PETSc benchmark results

 

Modifications:

- Add matrix-vector multiplication to the DOLFIN/PETSc benchmarks.
- Make sure rows and columns are sorted to use

  MatSetOption(A, MAT_ROWS_SORTED);
  MatSetOption(A, MAT_COLUMNS_SORTED);

Results:

PETSc is now much faster, both on assembly and matrix-vector
multiplication. Here are the new results:

  DOLFIN assembly:    17.17 s
  DOLFIN re-assembly: 15.85 s
  DOLFIN multiply:    10.60 s

  PETSc  assembly:    11.88 s
  PETSc  re-assembly:  8.60 s
  PETSc  multiply:     3.59 s

Plan:

We've put some simple wrappers for PETSc matrix and vector in DOLFIN
(NewMatrix and NewVector). The plan is the keep the functionality at
a minimum. Advanced users can access the PETSc Mat and Vec pointers
directly through NewMatrix::mat() and NewVector::vec() if necessary.
We will also be adding wrappers for PETSc solvers.

Once everything is in place, the existing implementations (Matrix and
Vector) will be removed and NewMatrix and NewVector will change name
to Matrix and Vector. The new assembly (based on FFC) will be written
for the PETSc wrappers.

/Anders