Skip to content

Conversation

@akukanov
Copy link
Contributor

The patch is mostly editorial, but also extends the "Parallel Algorithms" page with some basic information about the C++17/20 standard-aligned parallel algorithms oneDPL provides.

Additional Algorithms
+++++++++++++++++++++

In addition to the standard aligned parallel algorithms, oneDPL provides the following algorithm functions.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
In addition to the standard aligned parallel algorithms, oneDPL provides the following algorithm functions.
In addition to the standard aligned parallel algorithms, oneDPL provides the following algorithm functions
defined in `<oneapi/dpl/algorithm>` header.

P.S. we may want to move some algorithms to <oneapi/dpl/numeric>, but probably not in this PR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In this PR, we can say that certain functions (reduction, scans, and arguably histograms) are also accessible ("copied") in <oneapi/dpl/numeric>.

@danhoeflinger, @timmiesmith - what do you think about that? The previous discussion is here: uxlfoundation/oneDPL#1895

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, I think that listing them as also accessible in numeric is a good idea.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done; please take a look.

Copy link
Contributor

@timmiesmith timmiesmith left a comment

Choose a reason for hiding this comment

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

I don't have any additional comments beyond Dmitriy's feedback.

that take a oneDPL execution policy.

For all parallel algorithms (including ones with ranges) oneDPL implements list-initialization, where applicable,
as described in `P2248R8`_ proposal that is accepted for C++26.
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 think that linking to the accepted proposal is overkill here beyond mentioning the C++26 working draft? It may be more accessible currently to list the proposal.

Copy link
Contributor Author

@akukanov akukanov Oct 16, 2025

Choose a reason for hiding this comment

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

I follow the pattern which we already use for the parallel range API.

I think referring to the working draft (without a link) is sufficient for the key message: the API follows the path taken by the standard. I suppose that somebody who needs the details can find those out in the working draft.

I can be convinced that referring to accepted proposals provides more value - especially if this feedback comes from the users of the API/specification :)

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm a bit torn. Obviously pointing to the standard draft is a little difficult to navigate if you are looking for specifics. However, it is likely the best long term option for the specification.

The paper provides easier to access details when we are talking at such a high level here without much verbosity or example etc.

I don't have a strong feeling either way, but a slight preference to including the paper with link.

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, if you want to add the link for the paper, I can re-approve as well.

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.

4 participants