Skip to content

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

@PhilipOesterlePekrun

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