Skip to content

[Enhancement] Use posv() instead of gesv() (though not available directly in Kokkos-Kernels) #125

Description

@PhilipOesterlePekrun

Description

Currently, the general Kokkos-Kernels solver KokkosLapack::gesv() is used as the direct linear solver within MIRCO::nonlinearSolver(). However, the input matrix is symmetric positive definite, so a Cholesky Factorization-based solver (called posv() in LAPACK, MAGMA, etc.) should instead be used, as it is 2x as fast. This would greatly benefit performance, as the linear solver is responsible for the greatest share of the total execution time for large problems.

The issue is that Kokkos does not currently implement this function. So, this may only be possible in the future. Alternatively, LAPACK and MAGMA (or CuSolver) could be used directly in place of Kokkos-Kernels, but this is a fairly low-level task, and at that point it might as well be implemented in Kokkos-Kernels or everyone to use.

Related Issues and Merge Requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions