-
Notifications
You must be signed in to change notification settings - Fork 6
Resolve "Create TriBITS Build Alongside Raw CMake Build" #173
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
Resolve "Create TriBITS Build Alongside Raw CMake Build" #173
Conversation
Hi @jmgate, we have a condition where either CUSOLVER+CUBLAS will be needed, BLAS+LAPACK, or MKL. All of these are optional, but at least one of these sets of tools must be available. I think we need to verify the user has some combination that will work, but we can't specify what combination that would be (although for Cuda, it does imply CUBLAS). |
@kuberry, this is ready for you to play around with. To test things out, I'd:
Let me know when things look good on your end, because there's one more file we need to tweak in Trilinos when we do the initial snapshot. |
Hi @jmgate, I'm just going to drop a list here of things we discussed:
I'll add more as I think of them. |
Probably need to fix this file. Looks like it needs to be automatically generated. Need to investigate project variables.
For the mpiexec bit, with BTW, I just rebased this on top of |
If the only two files needed in the root of the repo are Version.cmake and TPLLists.cmake, then I'll mark "Ability to move files from copied location in compadre folder in Trilinos/packages and create an additional commit to that effect during snapshotting" as done. I'm going to reuse Version.cmake, so it can stay there. For TPLLists.cmake, I'll probably add a commented out section in there later explaining the dependencies of the package and how the code is for Trilinos, but how a user can specify these needed things if they using a raw CMake build. |
both mpi and serial for COMM. Changed python based tests to use PYTHON_EXECUTABLE and to be created as an advanced tests which allows for avoiding the call to python by mpiexec. Compadre_Config.h is now produced using bob features for both raw CMake and Tribits build. Modified bob call to allow for a module name rather than it being hard coded for ${PROJECT_NAME}.
Most recent commit eb4ecec should pass all tests for MPI or serial build of package in Trilinos. |
Added flags --porder and --grids to Python examples for raw CMake tests.
so removed as these are already defined in Trilinos/packages root. Version is now defined at the top of CMakeLists.txt Logic for in-Trilinos build set to: Unless specified, Compadre_USE_LAPACK=OFF, Compadre_USE_MKL=OFF, Compadre_USE_CUDA=OFF. This allows enabling any one of the three options explicitly to not interfere with the others (setting Compadre_USE_LAPACK=ON by default would interfere with setting Compadre_USE_MKL=ON as only setting) cmake/Dependencies.cmake now calls for different required packages dependent on Compadre_USE_LAPACK, Compadre_USE_MKL, and Compadre_USE_CUDA
Commit 54ab2b2 handles Compadre_USE_LAPACK, Compadre_USE_MKL, and Compadre_USE_CUDA options (Compadre_USE_LAPACK is default) and will ensure that the correct TPLs are turned on or else will cause Compadre package in Trilinos to be disabled. |
…ls isn't a required package for Compadre in Trilinos. Removed TPL_ENABLE_LAPACK and TPL_ENABLE_BLAS from trilinos-configure.sh because these are now enabled automatically by cmake/Dependencies.cmake.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jmgate, I'm good with the way this is behaving and the current PR solves all of the checkbox of issues outlined above.
Yup, this all looks good on my system as well. Thanks for figuring out the last few hurdles, @kuberry. Merge if you're happy with it. |
Thanks @jmgate for all of your hard work putting this together! |
This is a WIP PR to address #171. Not ready for review or merge.