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

FindTBB does not work for 2021 and later versions. #249

Open
pnookala opened this issue Oct 30, 2022 · 5 comments
Open

FindTBB does not work for 2021 and later versions. #249

pnookala opened this issue Oct 30, 2022 · 5 comments

Comments

@pnookala
Copy link
Collaborator

FindTBB.cmake fails with the below error for oneAPI versions later than 2021.

-- /opt/intel/oneapi/tbb/2021.6.0/env/..
CMake Error at cmake/modules/FindTBB.cmake:358 (file):
  file failed to open for reading (No such file or directory):

    /opt/intel/oneapi/tbb/2021.6.0/include/tbb/tbb_stddef.h
Call Stack (most recent call first):
  cmake/modules/FindCXXStdExecution.cmake:97 (find_package)
  CMakeLists.txt:114 (find_package)

Name of the version file has changed from tbb_stddef.h to version.h and the cmake module needs to be updated.

@devreal
Copy link
Contributor

devreal commented Oct 30, 2022

Maybe we should remove TBB from TTG. Or is any of our dependencies using that?

@pnookala
Copy link
Collaborator Author

MADNESS can be run using TBB or Parsec backends. May be it can be made optional?

@evaleev
Copy link
Contributor

evaleev commented Oct 30, 2022

the only reason FindTBB is used in TTG is to implement parallel C++ algorithms on Linux, hence for examples only. We can get rid of it but we'd need to get rid of these examples ... I have an updated FindTBB that can handle OneAPI but some changes in TTG will be needed also...

@devreal
Copy link
Contributor

devreal commented Oct 31, 2022

Can we replace the use of tbb with the forall @evaleev wrote?

@evaleev
Copy link
Contributor

evaleev commented Oct 31, 2022

the only use is in the ge_df example, but can't use forall there since the parallel std::for_each is used within the task. In fact it's probably a bad idea to use std::execution in such context anyway since its implementation details are not guaranteed by the standard. So I think we can remove this last use of std::execution and get rid of the need for TBB.

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