Skip to content

Conversation

mhoemmen
Copy link
Contributor

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

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

mhoemmen added 5 commits June 24, 2023 04:57
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 mhoemmen requested review from crtrott, dalg24 and nliber June 29, 2023 22:19
@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