-
Notifications
You must be signed in to change notification settings - Fork 578
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
Allow enabled of Intrepid(1) and Percept in ATDM Trilinos builds #6017
Comments
I propose that we remove the disable of Intrepid(1) and allow the enable of Percept in all of that ATDM Trilinos builds, but we disable the native Intrepid(1) tests and just have the native Percept and Panzer tests that use Percept and Intrepid(1). (However, I don't think Percept has any native tests, at least looking at this full CI build.) Therefore, the only concern would be the portability of the Panzer tests that use Percept. But I guess we should just allow all of these tests to get enabled and see how they run on the various ATDM Trilinos builds. Sound good? P.S. But if Percept is using Intrepid(1), that means that it does not run on a GPU, right? |
That sounds good @bartlettroscoe ! I don't think percept executes kernels on gpus unless it calls stk functions that have been converted to kokkos. The refinement will be run on host for now. |
I think that panzer tests percept as EMPIRE intends to use it |
yes. |
@bartlettroscoe let me know when you have a PR ready to test, I'll verify it works... |
@bartlettroscoe - I believe you will need the following PR to enable percept builds: A push to stk last week resulted in stk and percept going out of sync. In the future stk and percept will be pushed together to stay in sync. |
@rppawlo said:
How did this pass the Trilinos PR builds? There there not tests in Panzer that would break if STK and Percept are not consistent in a PR branch? |
Maybe it was just fixes to deprecated code that hasn't been removed from stk yet? |
@rppawlo said:
Looks like that PR has build errors (warnings to errors in gcc-7.2.0 and code that just does not build with gcc-4.8.4). I can create a branch that enables Intrepid(1) and Percept with Panzer but I guess it will be of no use to EMPIRE until the issues in #6018 are resolved and the PR is merged, right? |
@bartlettroscoe @rppawlo Sorry for the late reply, but regarding the question about about stk and percept getting out of sync: these are changes that had happened in the sierra repo, where a new stk api was being used by percept. The stk change hadn't made it to the trilinos repo yet. That's why percept couldn't be pushed to trilnios at that point. stk is now up-to-date in trilinos, so it should be possible to push percept up to trilinos also. |
@alanw0 said:
But that means that Trilinos 'develop' has new STK (with the new API) and the old Percept. But should that not mean that Percept would be broken? Or was the new STK API backward-compatible so you could use a new STK with an old Percept? Just trying to understand how could have passed the Trilinos PR builds. |
@bartlettroscoe Yes the new stk api was a new function, and the other function that percept had been using is still in place. Thus an older percept could still build/run with the newer stk. |
CC: @rppawlo FYI: The Percept update in PR #6018 has not been merged to the Trilinos 'develop' branch yet. It is still showing a build error in the gcc-7.2.0 PR build shown here (due to a warning elevated to an error). And that was way back on 10/2/2019. There has not been any action on that PR since then. Therefore, until PR #6018 gets merged, is there any point in enabling Percept the ATDM Trilinos builds? That is why I have not moved on this issue #6017 yet. (I am subscribed to PR #6018 so when it gets merged, I will know it.) |
@bartlettroscoe - yes - you can enable now without PR #6018 . Those are changes to percept for deprecated code in stk. The merge is on hold a little longer as Brian is putting up more changes to remove boost from percept. If you could enable this it would be a big help as I can go ahead with more empire testing. |
I just rebased and pushed my 2 commits to bricar/Trilinos branch "percept-sync-from-sierra". I believe I have the build issues resolved but am building gcc 4.8.4 and 7.2.0 to confirm. I am not too familiar with the Trilinos PR process so may need some help there. The Intrepid issue discussed above was also new to me. If you think I should try to move Percept to Intrepid2 let me know, though I don't know the level of effort it would take. I am confident that Percept does not directly depend on Boost except through the TPLs STKUtil and STKTransfer. |
@bricar - that's excellent news on the boost dependency! Thanks! Alan is working to remove boost completely from stk and will allow us to drop the dependency completely from Trilinos. Moving to intrepid2 would allow us to build less code. The only complexity is that it is the kokkos version of intrepid, so the evaluation kernels look a little different - functions use kokkos view semantics and sometimes require scratch memory on device. Is percept slated to be run on device in the future? If so, converting to intrepid2 would probably be needed anyway. Early on intrepid 1 and 2 could not be built together since they shared the same namespace and had collisions. Now they have separate namespaces, they can be built together. So it is not pressing other than increasing build times for atdm testing and modifying build scripts. In the long term, the apps would prefer to lessen the number of packages they depend on. |
We are eager to remove boost from stk, but it's a journey... hopefully soon. |
Working on this now. @rppawlo, what new tests should get enabled when Percept support is enabled in Panzer? The only test that I can find is:
in the file Is there no testing of Panzer support for Percept? |
It's in the file: ./panzer/adapters-stk/test/stk_interface_test/tExodusReaderFactory.cpp When percept is enabled, an extra test is added in this file. |
Okay, got it. It is a single unit test:
And we can see this is getting run in the Trilinos PR testing (and a couple other builds) by running the query: It shows it is getting run in all of the PR builds including the CUDA build on 'ride'. (NOTE: Click the "Show Matching Output" text on the upper right to see that unit test running and passing.) Therefore, I think this is pretty well protected in PR testing. That means that I will need to do less testing. (Just a single build on 'waterman' should do just to be safe.) |
trilinos#6017) However, we don't want to be enabling any Intrepid tests since Intrepid is legacy code and we want Percept to change over to use Intrepid2 at some point soon. The usage of Intrepid by Percept will be tested through Panzer and that is all. Therefore, we disable the implicit enable of the Intrepid tests.
…-enable-percept Automatically Merged using Trilinos Pull Request AutoTester PR Title: Allow enable of Intrepid and therefore Percept in ATDM Trilinos builds (#6017) PR Author: bartlettroscoe
Thanks @bartlettroscoe ! |
…s:develop' (435794e). * trilinos-develop: ATDM: Set Amesos2_ENABLE_Epetra=OFF unconditionally (ATDV-202) Small tweak to mesh-clone unit-test, only test for gcc version > 4 Allow enable of Intrepid and therefore Percept in ATDM Trilinos builds (trilinos#6017) Fix minor testing issues. Fix gcc 4.8.4 compile error in stk BulkData Bring stk snapshot to trilinos as of 10/14/2019
…s:develop' (435794e). * trilinos-develop: ATDM: Set Amesos2_ENABLE_Epetra=OFF unconditionally (ATDV-202) Small tweak to mesh-clone unit-test, only test for gcc version > 4 Allow enable of Intrepid and therefore Percept in ATDM Trilinos builds (trilinos#6017) Fix minor testing issues. Fix gcc 4.8.4 compile error in stk BulkData Bring stk snapshot to trilinos as of 10/14/2019
This has been done for over a week. The only negative impact was the enable of some new ROL tests that caused failures. See #6124. If something other is broken, we will address that in new issues. Closing this issue as complete. |
CC: @bathmatt, @rppawlo, @fryeguy52
Description
The Percept package developed in Sierra.base was recently snapshotted to the Trilinos 'develop' branch. However, this is not enabled in ATDM Trilinos builds because it depends on the Intrepid(1) package (not Intrepid2) that was disabled long ago in ATDM Trilinos builds (because the ATDM APPs were not using Intrepid(1)).
This story is to scope out the issues with allowing enable the Intrepid(1) and Percept packages and determine the level of automated testing in Trilinos.
Tasks
The text was updated successfully, but these errors were encountered: