Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP (Do Not Merge!!): Belos Small Dense Matrix Abstraction #11837

Draft
wants to merge 110 commits into
base: develop
Choose a base branch
from

Commits on Oct 1, 2024

  1. Configuration menu
    Copy the full SHA
    f353a3d View commit details
    Browse the repository at this point in the history
  2. Add Dense template paramter to solver manager base class and solver f…

    …actory classes.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    4558b2c View commit details
    Browse the repository at this point in the history
  3. Remove Serial Dense from ICGSOrthoMgr

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    aa21a51 View commit details
    Browse the repository at this point in the history
  4. Removed Serial Dense from MatOrthoMgr.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    4cac21f View commit details
    Browse the repository at this point in the history
  5. Removed SerialDense from OrthoMgr.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    ecf4297 View commit details
    Browse the repository at this point in the history
  6. Added Dense param to blockGMRESIter.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    fb75baa View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    a2f69ec View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    69a98fc View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    2ee9622 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0833975 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    04f69b7 View commit details
    Browse the repository at this point in the history
  12. Updated DenseMatrixAdapter functions. Wrote a partial Teuchos Serial …

    …Dense adapter and test. It compiles and runs
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    a83a9c1 View commit details
    Browse the repository at this point in the history
  13. Expanded MultiVec Traits and corresponding Teuchos adapter, which pas…

    …ses basic tests.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    e182901 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    0475c9c View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    58f8e97 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    932b663 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    e271c5e View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    aa4fe14 View commit details
    Browse the repository at this point in the history
  19. Added Frobenius norm to dense traits.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    549d065 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    18efc6e View commit details
    Browse the repository at this point in the history
  21. First attempt at Kokkos adapter.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    d983f9d View commit details
    Browse the repository at this point in the history
  22. Minor adjustment of comments.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    ae30039 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    b7e055c View commit details
    Browse the repository at this point in the history
  24. Reorganized Tpetra MV traits to allow future specialization for Kokko…

    …s dense. Made local randomSyncedMatrix function in the MVOP tester.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    7bd92e1 View commit details
    Browse the repository at this point in the history
  25. We now have a working Kokkos::View Dense adapter that is passing basic

    tests with both the dense Traits and the MV Traits!
    
    Notes:  Also added const and non-const getRawPointer functions.
    Had to split the Tpetra MV traits into separate parts to maintain
    Teuchos functionality for backward compatibility.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    0b671a6 View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    476023f View commit details
    Browse the repository at this point in the history
  27. Fixed build error in ICGS.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    b9454d3 View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    24f3e8b View commit details
    Browse the repository at this point in the history
  29. GMRES spaces experiment.

    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    31b9f4c View commit details
    Browse the repository at this point in the history
  30. Configuration menu
    Copy the full SHA
    bcbaaff View commit details
    Browse the repository at this point in the history
  31. Finally got the Kokkos Dense + Tpetra Block GMRES test building and p…

    …assing on CPUgit status
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    a1de42c View commit details
    Browse the repository at this point in the history
  32. Got DenseMat template param added to all needed solvers at the top le…

    …vel. Code builds and runs on CPU.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    51d111a View commit details
    Browse the repository at this point in the history
  33. Test many dense scalar types with SerialDenseMat Teuchos traits, via …

    …Epetra (needs moved later), and fix sync needed after PutScalar is called to pass DenseMatTester on GPU.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    24e6ef6 View commit details
    Browse the repository at this point in the history
  34. Configuration menu
    Copy the full SHA
    12b62c9 View commit details
    Browse the repository at this point in the history
  35. Configuration menu
    Copy the full SHA
    8c3c0be View commit details
    Browse the repository at this point in the history
  36. Configuration menu
    Copy the full SHA
    9dd9ff2 View commit details
    Browse the repository at this point in the history
  37. Configuration menu
    Copy the full SHA
    62522c8 View commit details
    Browse the repository at this point in the history
  38. Added extra syncs. Encountering deep copy error. Added debug statemen…

    …ts. Commiting for reproducer.
    jennloe authored and hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    7c27f57 View commit details
    Browse the repository at this point in the history
  39. Configuration menu
    Copy the full SHA
    c26148e View commit details
    Browse the repository at this point in the history
  40. Configuration menu
    Copy the full SHA
    2074957 View commit details
    Browse the repository at this point in the history
  41. Configuration menu
    Copy the full SHA
    e26c8ce View commit details
    Browse the repository at this point in the history
  42. Fix Kokkos stride method for dense matrix traits and small code cleanup

    1.  Fixes up dense matrix traits testing
    
        The dense matrix traits testing for Teuchos is being moved to the
        belos/test directory since it is not specific to Epetra.  This test
        employs the dense matrix tester and also includes some tests inspired
        by the Teuchos::SerialDenseMatrix tester.  The dense matrix tester has
        been cleaned up a little to eliminate compiler warnings and default
        arguments for the dense matrix object have been removed from both the
        dense matrix tester and matrix-vector-operator tester, which requires
        the modification of the tests that use these testers.
    
    2.  The Teuchos::SerialDenseVector is not used by any of these iteration
        classes, so it is being removed to reduce confusion on whether it is
        used.
    
    3.  The call to get strides from the Kokkos::DualView object expects an
        integer array of length 8.  Since a raw pointer to that array is passed
        in, bounds checking is not performed, and filling in all the strides will
        result in a seg fault for any integer array of less than 8. This was
        causing a seg fault in the Kokkos dense matrix adapter even on CPUs.
    
    4.  There was a compiler warning about the creation and destruction of
        the svals array not matching in the Belos::TpetraTestFramework.
    
    5.  To avoid confusion and extra work later, the Teuchos implementation of the
        dense matrix traits has been removed from being included in the abstract
        dense matrix traits class.  To address this change, the Teuchos adapter has
        been added to several classes that require it due to the default template
        parameter for dense matrices.
    
        Additional changes to remove the use of Teuchos::SerialDenseVector objects
        in exchange for std::vector objects have been made.  This is mostly for
        the storage of Given's rotations within GMRES-type solvers.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    97828e6 View commit details
    Browse the repository at this point in the history
  43. Improve integration of dense matrix traits into LSQR

    This cleans up the integration of dense matrix traits to have
    some commonality with other solvers that have been modified.
    This includes removing the default template for the dense matrix
    to Teuchos::SerialDenseMatrix for the iteration and status test.
    Only the solver manager has the default template argument so that
    the solver interface to the user appears unchanged.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    825edca View commit details
    Browse the repository at this point in the history
  44. Converts BiCGStab and TFQMR solver to use dense matrix template

    The BiCGStab and TFQMR solver now uses the dense matrix template,
    where the default is Teuchos::SerialDenseMatrix for the solver
    manager.  The iteration classes now recognize the fourth dense
    matrix template argument, but do not have a default argument.  A
    test for these two solvers has been added that uses Kokkos::DualView.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    203698d View commit details
    Browse the repository at this point in the history
  45. Configuration menu
    Copy the full SHA
    7c45b55 View commit details
    Browse the repository at this point in the history
  46. Configuration menu
    Copy the full SHA
    f8e6cad View commit details
    Browse the repository at this point in the history
  47. Configuration menu
    Copy the full SHA
    fae528f View commit details
    Browse the repository at this point in the history
  48. Configuration menu
    Copy the full SHA
    8e8542f View commit details
    Browse the repository at this point in the history
  49. Configuration menu
    Copy the full SHA
    acf65f3 View commit details
    Browse the repository at this point in the history
  50. Removes unused typedef

    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    0400b92 View commit details
    Browse the repository at this point in the history
  51. Configuration menu
    Copy the full SHA
    5dc9cd4 View commit details
    Browse the repository at this point in the history
  52. Configuration menu
    Copy the full SHA
    1bdf4ad View commit details
    Browse the repository at this point in the history
  53. Configuration menu
    Copy the full SHA
    52412e4 View commit details
    Browse the repository at this point in the history
  54. Configuration menu
    Copy the full SHA
    53261ae View commit details
    Browse the repository at this point in the history
  55. Configuration menu
    Copy the full SHA
    3a364f7 View commit details
    Browse the repository at this point in the history
  56. Finishes integration of dense matrix traits into PCPG

    The PCPG solver required a new method to be added to the traits that
    provides a conjugate-transposed copy of a dense matrix.  Then the
    solver could use dense matrix traits.  Additional tests and examples
    have been added to the repository for PCPG using Kokkos::DualView
    objects.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    03f7c22 View commit details
    Browse the repository at this point in the history
  57. Fixes all orthogonalization classes and testers to work with dense ma…

    …trix traits
    
    All the standard Belos orthogonalization managers have been converted to
    using dense matrix traits.  Furthermore, the orthogonalization factories and
    testers have also been converted to using these traits.  This has enabled a
    more thorough testing of the orthogonalization implementations for Kokkos::DualView
    objects.  New tests have been added that pass for all three major implementations:
    ICGS, IMGS, and DGKS.  Also, with this chagne, the block GMRES solver test is now
    passing that uses Kokkos::DualView objects.
    
    Further cleanup is necessary, but this is a solid checkpoint on this work.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    de4501b View commit details
    Browse the repository at this point in the history
  58. Removes debugging statements

    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    8f7277a View commit details
    Browse the repository at this point in the history
  59. Changes diagonal updating to use Subview/PutScalar methods

    To avoid direct interrogation of values which may result in unnecessary
    synchronizations, the use of Subview and PutScalar methods are used.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    e6be018 View commit details
    Browse the repository at this point in the history
  60. Configuration menu
    Copy the full SHA
    73af96a View commit details
    Browse the repository at this point in the history
  61. Converts over TSQR classes in Belos to use dense matrix template argu…

    …ment
    
    The TSQR orthogonalization class is a experimental capability in Belos.
    The infrastructure that connects the TSQR implementation in Tpetra to
    the Belos orthogonalization classes has been updated to use the new
    dense matrix traits mechanism.
    
    WARNING: This code will not compile with TSQR enabled because the
    TSQR implementation in Tpetra is based on Teuchos::SerialDenseMatrix
    object.  This code will need to be extended to take different dense
    matrix objects, like Kokkos::DualView.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    a1eba92 View commit details
    Browse the repository at this point in the history
  62. Configuration menu
    Copy the full SHA
    e0da7ad View commit details
    Browse the repository at this point in the history
  63. Converts fixed-point solver to use dense matrix template

    No dense matrix objects are used in the solver, so the effect of
    this change is negligible.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    0556c35 View commit details
    Browse the repository at this point in the history
  64. Configuration menu
    Copy the full SHA
    c05e6f0 View commit details
    Browse the repository at this point in the history
  65. Configuration menu
    Copy the full SHA
    756e3fd View commit details
    Browse the repository at this point in the history
  66. Moves pseudo-block GMRES data structures to iteration header

    Also transitions pseudo block GMRES to use dense matrix traits
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    1444b58 View commit details
    Browse the repository at this point in the history
  67. Configuration menu
    Copy the full SHA
    a245a93 View commit details
    Browse the repository at this point in the history
  68. Converts single-vector CG, pseudo-block CG, and stochastic CG to DMT

    The single-vector CG, pseudo-block CG and stochastic CG can now use
    the dense matrix traits.  Tests have been added that use the Kokkos
    dense adapter to execute these solvers.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    1af8602 View commit details
    Browse the repository at this point in the history
  69. Configuration menu
    Copy the full SHA
    b8ca6e6 View commit details
    Browse the repository at this point in the history
  70. Adds DenseSolver interface for block CG solver

    The block CG solver requires a factorization and solve of the
    block projected system.  This was done through the direct linear
    solver interfaces in Teuchos.  So, a lightweight interface needs
    to replicate this capability for solvers like block CG and the
    GMRES polynomial that can be implemented for Kokkos DualView objects.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    c4a9ac0 View commit details
    Browse the repository at this point in the history
  71. Configuration menu
    Copy the full SHA
    c83718d View commit details
    Browse the repository at this point in the history
  72. Finished converting GMRES-variants to dense matrix traits

    The pseudo-block and polynomial-preconditioned GMRES variants
    are integrated with dense matrix traits.  All GMRES variants have
    been cleaned up to remove default templates where appropriate.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    64a97b9 View commit details
    Browse the repository at this point in the history
  73. Configuration menu
    Copy the full SHA
    e33bf99 View commit details
    Browse the repository at this point in the history
  74. Configuration menu
    Copy the full SHA
    9ce63cc View commit details
    Browse the repository at this point in the history
  75. Fixes OrthoFactory to use dense matrix traits in template argument

    Also fixes a typo in an output message, which infers the solver is
    GCRODR.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    9bdf513 View commit details
    Browse the repository at this point in the history
  76. Configuration menu
    Copy the full SHA
    2996a26 View commit details
    Browse the repository at this point in the history
  77. Configuration menu
    Copy the full SHA
    b6d6b3a View commit details
    Browse the repository at this point in the history
  78. Configuration menu
    Copy the full SHA
    64b021f View commit details
    Browse the repository at this point in the history
  79. Configuration menu
    Copy the full SHA
    bd5fd96 View commit details
    Browse the repository at this point in the history
  80. Configuration menu
    Copy the full SHA
    ce62ed8 View commit details
    Browse the repository at this point in the history
  81. Configuration menu
    Copy the full SHA
    1a81440 View commit details
    Browse the repository at this point in the history
  82. Configuration menu
    Copy the full SHA
    9ee594a View commit details
    Browse the repository at this point in the history
  83. Configuration menu
    Copy the full SHA
    aaeb288 View commit details
    Browse the repository at this point in the history
  84. Configuration menu
    Copy the full SHA
    23612ad View commit details
    Browse the repository at this point in the history
  85. Configuration menu
    Copy the full SHA
    95ea9c6 View commit details
    Browse the repository at this point in the history
  86. Configuration menu
    Copy the full SHA
    806fb9d View commit details
    Browse the repository at this point in the history
  87. Configuration menu
    Copy the full SHA
    f49a0e6 View commit details
    Browse the repository at this point in the history
  88. Completes integration of DenseMatrixTraits

    The DenseMatrixTraits have been integrated into GCRODR such that
    the solver can use Kokkos::DualView objects for dense matrices.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    2b92f8f View commit details
    Browse the repository at this point in the history
  89. Changes scalar values from SerialDenseMatrix to std::vector<>

    This will simplify the transition to using the templated dense
    matrix type.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    a007d5a View commit details
    Browse the repository at this point in the history
  90. Moves several dense matrix objects to std::vector objects

    Coefficient vectors like alpha, beta, and d do not need to be
    dense matrix objects.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    ac5c515 View commit details
    Browse the repository at this point in the history
  91. Remove unnecessary header

    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    fe52229 View commit details
    Browse the repository at this point in the history
  92. Configuration menu
    Copy the full SHA
    956ba09 View commit details
    Browse the repository at this point in the history
  93. Configuration menu
    Copy the full SHA
    51a5995 View commit details
    Browse the repository at this point in the history
  94. Convert SerialDenseMatrix objects to dense matrix traits.

    Only the multiply methods need to be converted to BLAS methods.
    hkthorn committed Oct 1, 2024
    Configuration menu
    Copy the full SHA
    cd1e46c View commit details
    Browse the repository at this point in the history
  95. Configuration menu
    Copy the full SHA
    f42c362 View commit details
    Browse the repository at this point in the history
  96. Configuration menu
    Copy the full SHA
    8c73b96 View commit details
    Browse the repository at this point in the history
  97. Configuration menu
    Copy the full SHA
    6df1683 View commit details
    Browse the repository at this point in the history
  98. Configuration menu
    Copy the full SHA
    2524f9c View commit details
    Browse the repository at this point in the history
  99. Configuration menu
    Copy the full SHA
    f1979c8 View commit details
    Browse the repository at this point in the history
  100. Configuration menu
    Copy the full SHA
    4513c02 View commit details
    Browse the repository at this point in the history
  101. Configuration menu
    Copy the full SHA
    d92bbf6 View commit details
    Browse the repository at this point in the history
  102. Configuration menu
    Copy the full SHA
    ae03ed8 View commit details
    Browse the repository at this point in the history
  103. Configuration menu
    Copy the full SHA
    c4b8a32 View commit details
    Browse the repository at this point in the history
  104. Configuration menu
    Copy the full SHA
    d584a2c View commit details
    Browse the repository at this point in the history
  105. Configuration menu
    Copy the full SHA
    23d2aa8 View commit details
    Browse the repository at this point in the history
  106. Configuration menu
    Copy the full SHA
    ba03404 View commit details
    Browse the repository at this point in the history

Commits on Oct 2, 2024

  1. Configuration menu
    Copy the full SHA
    4507058 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c97b897 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f30e1f9 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cc025aa View commit details
    Browse the repository at this point in the history