Skip to content

Tpetra: OpenMP specializations of triple product kernels

James Willenbring requested to merge brian-kelley:TripleProd into develop

Created by: brian-kelley

@trilinos/tpetra

Description

Added OpenMP specializations to the two triple matrix product kernels already in TpetraExt_TripleMatrixMultiply: RAP and P^T * A * P. Only the 1-pass version of PTAP has a specialization since the 2-pass version is not used anywhere.

Added a new unit test file ("TripleProductTest.cpp") to test both kernels with the existing RAP test matrices. Previously the MatrixMatrix unit tests did not test the P^TAP variant. If OpenMP is disabled then the new tests just run the non-specialized version.

Motivation and Context

This change will improve performance of computing RAP in MueLu.

How Has This Been Tested?

Checklist

  • My commit messages mention the appropriate GitHub issue numbers.
  • My code follows the code style of the affected package(s).
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the code contribution guidelines for this project.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • No new compiler warnings were introduced.
  • These changes break backwards compatibility.

The MueLu_Maxwell3D-Epetra_MPI_4, MueLu_MLParameterList-Epetra_MPI_4, and MueLu_MLParameterList_Repartition-Epetra_MPI_4 failed for me but my changes aren't related to these. All Tpetra tests passed.

Merge request reports