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

[oneDPL] Add parallel range algorithms #569

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

Conversation

akukanov
Copy link
Contributor

@akukanov akukanov commented Aug 23, 2024

The specification for oneDPL parallel range algorithms.
oneDPL RFC discussion: oneapi-src/oneDPL#1741

Tagging @rarutyun @MikeDvorskiy

@akukanov akukanov added the DPL label Aug 23, 2024
@akukanov akukanov marked this pull request as ready for review August 23, 2024 22:19
compiled for earlier editions of the standard.

The parallel range algorithms reside in ``namespace oneapi::dpl::ranges``. Same as the range algorithm functions
defined by the `C++ standard` in ``namespace std::ranges``, they cannot be found by argument-dependent name lookup.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want just require (on the specification level) that all of them are global callable objects (independently of where C++ standard goes)? With that requirement we give extra benefits for the users.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which specifically benefits would that give? Not theoretical but real ones, something that you can imagine being useful in practice.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

passing algorithms as arguments to a function. This is the only practical difference I can see. It's guaranteed to work. With having "special function that..." it's not guaranteed to work. That's it

Copy link
Contributor Author

@akukanov akukanov Sep 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's a possibility. But I do not know why one would use it in practice, given that calling signatures of those algorithms are quite different and there seems no obvious reason why this would be useful.
In simple words, I see practical value of this being (nearly) absent.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have added a note about function object based implementations.

Copy link
Contributor

@danhoeflinger danhoeflinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants