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

Adding Additional Internal Timers for SLATE Routines #136

Merged
merged 7 commits into from
Nov 15, 2023

Conversation

Treece-Burgess
Copy link

@Treece-Burgess Treece-Burgess commented Oct 25, 2023

This PR will address adding additional internal timers for the following SLATE routines:

  • gbsv
  • hesv
  • gesv_mixed
  • gesv_mixed_gmres
  • posv_mixed
  • posv_mixed_gmres
  • gels_cholqr
  • hegv

See issue #128.

src/gesv_mixed.cc Outdated Show resolved Hide resolved
@Treece-Burgess
Copy link
Author

@mgates3 I have started adding additional internal timers for the routines outlined in issue #128. I have currently pushed up four, but only three I believe are ready for review which are: hegv, gbsv, and hesv. I am unsure how you want to name a few of the timers within gesv_mixed, I will make comments at certain lines of code to distinguish where I would like input from you if possible.

src/gesv_mixed.cc Outdated Show resolved Hide resolved
src/gesv_mixed.cc Outdated Show resolved Hide resolved
@Treece-Burgess
Copy link
Author

Treece-Burgess commented Oct 25, 2023

At line 242 within gesv_mixed.cc, the following code exists:

if (! converged) {
        if (info == 0) {
            // If we performed iter = itermax iterations and never satisfied
            // the stopping criterion, set up the iter flag accordingly.
            iter = -itermax - 1;
        }
        // Fall back to double precision factor and solve.
        // Compute the LU factorization of A.
        info = getrf( A, pivots, opts );
        // Solve the system A * X = B.
        if (info == 0) {
            slate::copy( B, X, opts );
            getrs( A, pivots, X, opts );
        }
    }
    if (target == Target::Devices) {
        // clear instead of release due to previous hold
        A.clearWorkspace();
        B.clearWorkspace();
        X.clearWorkspace();
    }
    return info;
}

We run into calls again for getrf and getrs. Since for example there is already a timer at line 175 for getrf are we wanting to name these to be say getrf_A and getrs_B?

@mgates3 mgates3 mentioned this pull request Oct 26, 2023
@mgates3 mgates3 added the Draft label Nov 1, 2023
@Treece-Burgess Treece-Burgess marked this pull request as ready for review November 8, 2023 15:01
Copy link
Collaborator

@mgates3 mgates3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great first step. See changes in posv_mixed_gmres. Similar changes need to apply to posv_mixed, gesv_mixed, gesv_mixed_gmres.

This was my first pass. I might have other suggestions later on.

src/posv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/posv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/posv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/posv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/posv_mixed_gmres.cc Outdated Show resolved Hide resolved
test/test_posv.cc Outdated Show resolved Hide resolved
test/test_posv.cc Show resolved Hide resolved
test/test_posv.cc Outdated Show resolved Hide resolved
test/test_hesv.cc Show resolved Hide resolved
test/test_hegv.cc Show resolved Hide resolved
Copy link
Collaborator

@mgates3 mgates3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few more changes. Make sure same changes are applied to both gesv and posv. Sometimes I use meld to compare files; may or may not be useful.

    meld src/posv_mixed.cc src/gesv_mixed.cc

src/gesv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/gesv_mixed_gmres.cc Outdated Show resolved Hide resolved
src/posv_mixed.cc Outdated Show resolved Hide resolved
test/test_gbsv.cc Outdated Show resolved Hide resolved
test/test_gels.cc Outdated Show resolved Hide resolved
test/test_gels.cc Outdated Show resolved Hide resolved
test/test_gels.cc Outdated Show resolved Hide resolved
test/test_gesv.cc Outdated Show resolved Hide resolved
test/test_gesv.cc Outdated Show resolved Hide resolved
@Treece-Burgess
Copy link
Author

Treece-Burgess commented Nov 9, 2023

I will resolve the branch conflicts tomorrow, but I just want to comment that I do indeed see them.

As well, as do another pass to make sure everything is correctly in order.

@mgates3 mgates3 merged commit 86bb586 into icl-utk-edu:master Nov 15, 2023
8 checks passed
@Treece-Burgess Treece-Burgess mentioned this pull request Nov 21, 2023
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants