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

Support configuration of OpenMP in backend for HiOp #563

Open
6 tasks
cameronrutherford opened this issue Oct 21, 2022 · 3 comments
Open
6 tasks

Support configuration of OpenMP in backend for HiOp #563

cameronrutherford opened this issue Oct 21, 2022 · 3 comments

Comments

@cameronrutherford
Copy link
Collaborator

cameronrutherford commented Oct 21, 2022

#562 is a bandaid fix to our OpenMP support.

In order to support specification with Spack/CMake the following needs to happen:

  • Add OpenMP option to CMake that controls when OpenMP is included and linked
  • Set RAJA execution policy to sequential when using RAJA and no other backend is enabled (OpenMP, CUDA, HIP, etc)
  • Add exported CMake configuration so that ExaGO can use HiOp's OpenMP
  • Add testing with and without OpenMP (unless xSDK testing on MacOS is serving this purpose)
  • Add CMake logic to warn about OpenMP in HiOp when building with Apple Clang
  • In the spack package, make sure OpenMP is disabled when Apple Clang is being used

https://cmake.org/cmake/help/v3.25/variable/CMAKE_LANG_COMPILER_ID.html#variable:CMAKE_%3CLANG%3E_COMPILER_ID - while it is possible to include logic do detect when Apple Clang is being used, we will only warn about it at the CMake level. Instead prefer logic to reside in Spack, as you can work around OpenMP with Apple-Clang issues by installing OpenMP with brew for example.

This should probably be done before a more serious refactor to address #240 and #241

cc @pelesh @nychiang @cnpetra

@cnpetra
Copy link
Collaborator

cnpetra commented Oct 21, 2022

#240 and #241 are addressed by PR#543. I wanted to schedule meeting to get in sync with you, but didn't have the chance. Expect one the next couple of weeks.

@pelesh
Copy link
Collaborator

pelesh commented Oct 21, 2022

Set RAJA execution policy to sequential when using RAJA and no GPU backend

Shouldn't this read "... when using RAJA and no GPU or OpenMP CPU backend"?

@cameronrutherford
Copy link
Collaborator Author

Set RAJA execution policy to sequential when using RAJA and no GPU backend

Shouldn't this read "... when using RAJA and no GPU or OpenMP CPU backed"?

Agreed. I updated the description

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

No branches or pull requests

3 participants