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

Make scale work for std::execution::par #257

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

mhoemmen
Copy link
Contributor

Make scale work for std::execution::par.

This is rebased atop PR #256; please merge that first; thanks!

Document option in README.md.
... macro with LINALG_HAS_EXECUTION.
In the next commit, we'll conditionally define it
in a common place.
Make sure that LINALG_ENABLE_TBB is defined as a macro,
if set as a CMake option.  It's conditionally defined
in the generated header file linalg_config.h
(which already exists and conditionally defines other macros).

Also, make sure that macros.hpp includes the generated
header file linalg_config.h.
Given that linalg_config.h already had macros defined in it,
other stdBLAS headers really should have been including it.
Customization point execpolicy_mapper remains the same,
but algorithms now use it in a wrapper that checks the return type,
to ensure that infinite recursion errors are checked at compile time.

Also, fix <execution> header include guard.
Use ranges (views::iota, optionally also views::cartesian_product)
to make the algorithm work for any mdspan with unique layout.
@mhoemmen
Copy link
Contributor Author

@amklinv-nnl this could be helpful for informing your parallelization efforts

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

Successfully merging this pull request may close these issues.

1 participant