-
Notifications
You must be signed in to change notification settings - Fork 565
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
Stratimikos: add adapter for Amesos2 #1090
Conversation
I can review this in a bit. How urgent is it to get this into Trilinos 'develop'? |
Can you file a github issue for what is the issue for SuperLU-Dist ? If Ross can review all the changes that is great. If you need me to review anything let me know. |
Someone needs to add automated testing for Trilinos with the SuperLUDist TPL turned on. This was identified as one of the TPLs that important SNL customers require (see #410). Can someone add a new Trilinos Framework GitHub issue for adding SuperLUDist testing for Trilinos? Really it should be added to the SEMS TPL mount. |
Ross: Totally agreed. What is this issue on Trilinos Framework or SEMS ? Can you please file it wherever appropriate ? |
@bartlettroscoe its not super urgent, a time frame of a few business days is fine. @srajama1 I was going to wait for this PR to get accepted, but I guess I can open an issue now and reference this PR. If you could help me with that issue, it would be greatly appreciated. Likewise, maybe if you review how I'm calling the Amesos2::Solver, you may spot something I did wrong. @bartlettroscoe I can also open the automated testing issue. stand by... |
@bartlettroscoe I've opened #1091 for automated testing with SuperLUDist |
@krcb found that the SuperLU_Dist test failure was specific to the matrix, and that a different Amesos2 test matrix lets the test pass. This points more towards some issue in SuperLU_Dist itself, for that one matrix. Given that we now have good tests for both these adapters, I'd say this PR is ready for final approval by @trilinos/stratimikos folks. |
Okay, I will take a look and get comment here. |
@bartlettroscoe there is renewed interest in this feature (comment to follow regarding that). Its still not urgent, but this is a decent feature that is just waiting to be merged, so could you review / approve it in the coming days / weeks? |
We've recently been converting to using Stratimikos to manage our linear solver / preconditioner on the Compadre LDRD (Meshless toolkit), and it would be great if we could access Amesos2 functionality through Stratimikos. |
Sorry, this has been on my todo list for some time now. Given how long a detailed review is taking me I don't see the harm in doing a faster spot check and then doing an explicit merge commit and push with the checkin-test-sems.sh script. If something were to go wrong in nightly testing or something, we could just back out that one merge commit and an then fix the problem offline. |
Thats fine with me. Just let me know when you're ready for me to do the latter two parts. |
Okay, I will do after I can get to #1303 (which I assume is higher priority?) |
Yes, I definitely agree with that. |
This PR would also benefit ForTrilinos project, as it would allow us to avoid wrapping Amesos2. Any chance of merging this PR by the end of November? |
@aprokop all we're waiting on is a cursory review from @bartlettroscoe , but he's really busy. I'm inclined to just go ahead and merge this via the checkin script (non-rebased explicit merge commit, as discussed with him above). |
@bartlettroscoe : Any objections to merging this with checkin testing ? |
Let me take a quick look to see if anything sticks out. Otherwise, someone can merge locally and push with the checkin-test-sems.sh script. |
I checked out the branch ibaned/stratimikos-amesos2, merged in github/develop and then did the standard CI build using a do-configure script. The build failed with results shown at: The do-configure script I used is displayed at: So to reproduce, you can do:
The build error shown is:
SuperLUDist is not enabled as shown by: and is not provided by the SEMS Env. The checkin-test-sems.sh script should produce the exact same build error. I just used my own do-configure script so that I could set the parallel build options for 'make dashboard' to be fast. |
@bartlettroscoe sorry about the build error, and taking so long to fix it. |
I added the commit a68dd29 to make the formatting more consistent with the Thyra Coding and Documentation Guidelines and tweaked a little documentation. I am not going to bother removing the usage of raw pointers in the function bodies because many of the virtual functions have yet to be refactored to remove the usage of raw pointers. But there is going to be a significant refactoring of Thyra taking place in the near future so we can address this at that point. I am going to go ahead and merge and push this from my local machine. Then we will see what happens with automated testing. |
When trying to push yesterday, I got some Teko test failures. I posted these to CDash as shown at: These tests seem to all show the failure:
I will take a look and see if I can figure out how to fix this. |
Add a Stratimikos adapter for Amesos2, which allows using direct solvers through Stratimikos in a Tpetra-centered configuration.
ML usage should not be affected by Amesos2 usage requirements, make Amesos2 requirements clearer
not sure if this variable is defined when Amesos2 is disabled, better play it safe.
ThyraTpetraAdapters needs to be compiled prior to Stratimikos if it is present, and "stratimikosamesos2" needs to be consistently added as a library and to DEPLIBS
This is needed or a bunch of Teko tests fail.
a68dd29
to
3f89a95
Compare
The fix in Teko was trivial (a one-line change as seen in 3f89a95) . I rebased the branch to clean up the history and forced pushed it to the remote branch in ibaned/Trilinos. I am now running |
Provides an implementation of the Thyra::LinearOpWithSolve[Factory]Base interfaces for Amesos2. I think this code has been in usage by Albany for a long time. See #1090 for more details.
Was merged and pushed using Now we just watch the nightly testing to see what happens and fix issues as they come up. |
@bartlettroscoe The only comment I have on the change is if Amesos2 is not available, Teko will think it is. Is there a way that can be protected with #ifdef conditionals? What does Stratimikos do to protect a lack of Amesos2? |
This change looks to be causing an issue with a regular build of mine to test Belos. The cmake error is: ... ... -- Stratimikos_ForwardSolverAsPreconditioner: NOT added test because TPL_ENABLE_MPI='OFF' and COMM='mpi'! No ETI support requested by packages. Set up for creating a distribution ... Finished configuring Trilinos! -- Configuring incomplete, errors occurred! I see that there should be an adapter for Amesos2, but it should not be required to build Stratimikos. |
Try to fix a use case brought up by @hkthorn in respose to trilinos#1090
Use the variable
|
Okay, here is the big patch I mentioned in #1083.
This PR adds support for using Amesos2 through Stratimikos.
The motivation for this is to allow Albany to use direct solvers through the Tpetra stack.
A rundown of key points:
@trilinos/stratimikos @trilinos/amesos2