Skip to content

P3481 R3 std::execution::bulk() issues #2135

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

Open
wg21bot opened this issue Oct 17, 2024 · 6 comments
Open

P3481 R3 std::execution::bulk() issues #2135

wg21bot opened this issue Oct 17, 2024 · 6 comments
Labels
B1 - focus Bucket 1 as described by P0592: material that is mentioned in this plan. C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library senders/receivers size - large paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Oct 17, 2024

P3481R0 Summarizing std::execution::bulk() issues (Lucian Radu Teodorescu, Lewis Baker, Ruslan Arutyunyan)

@wg21bot wg21bot added LEWG Library Evolution SG1 Concurrency labels Oct 17, 2024
@wg21bot wg21bot added this to the 2024-telecon milestone Oct 17, 2024
@inbal2l inbal2l added IS Ship vehicle: IS B1 - focus Bucket 1 as described by P0592: material that is mentioned in this plan. C++26 Targeted at C++26 size - large paper size estimate labels Oct 17, 2024
@hanickadot hanickadot added EWG Evolution and removed EWG Evolution labels Nov 3, 2024
@ogiroux
Copy link
Collaborator

ogiroux commented Nov 19, 2024

SG1 in Wroclaw

If we have chunking, we need to expose a control on the chunk size
SF F N A SA
1 2 3 1 1
No consensus
SA: in a standard facility, I think this can only lead to bad cross-platform experiences, we have
plenty of elite tools for the elite to go use to get whatever they really want

We need a version of the bulk API that presents the chunk to the callable in order to implement the
parallel algorithms
SF F N A SA
4 2 1 0 1
Consensus
SA: any quality implementation of the parallel algorithms on a scheduler will want to be customized
for that scheduler

We need a version of the bulk API that creates an execution agent per iteration
SF F N A SA
2 3 3 0 0
Unanimous consent

We believe / desire:

  1. Bulk needs an execution policy to describe the callable, IF the scheduler also has an execution
    policy (for debugging for example) then a conservative choice should be used (seq is more
    conservative than par)
  2. No SG1 concerns with the proposed exception handling
  3. No change to status quo on default implementation of bulk being serial
  4. No change to status quo on bulk having a predecessor
  5. Forms of bulk needed:
    bulk -> f(i) -> bulk_chunked
    bulk_chunked -> f(b, e)
    bulk_unchunked -> f(i) "execution agent per iteration"
    SF F N A SA
    5 2 1 0 0
    Unanimous consent

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 14, 2025

P3481R1 std::execution::bulk() issues (Lucian Radu Teodorescu, Ruslan Arutyunyan, Lewis Baker)

@wg21bot wg21bot changed the title P3481 R0 Summarizing std::execution::bulk() issues P3481 R1 std::execution::bulk() issues Jan 14, 2025
@inbal2l inbal2l added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review and removed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Jan 14, 2025
@ogiroux
Copy link
Collaborator

ogiroux commented Feb 12, 2025

SG1 in Hagenberg:

Poll: Forward P3481R1 with the following notes:

  • bulk_unchunked should not have an execution policy
  • calling an un-customized bulk_unchunked is ill-formed on a concurrent scheduler
  • the next revision of this paper (before LWG) needs wording for its error model
    SF F N A SA
    8 2 2 0 0
    Unanimous consent

@FabioFracassi
Copy link
Collaborator

FabioFracassi commented Feb 13, 2025

2025-02-12 Library Evolution Hagenberg Meeting

P3481R1: std::execution::bulk() issues

2025-02-12 Library Evolution Hagenberg Minutes

Champion: Lucian Teodorescu
Chair: Fabio Fracassi / Inbal Levi
Minute Taker: Guy Davidson

Summary

ACTION: Have an SG1 wording person review the wording to make sure the guarantees are properly stated.

POLL: Forward P3481R2 to LWG for C++26.

SF F N A SA
11 5 0 0 0

Attendance: 19 (IP) + 3 (R)
Author's Position: 3xSF
Outcome: Unanimous consent in favour

Next Steps

Verify wording for guarantees properly defined with SG1-wording expert, and forward P3481R2 to LWG for C++26.
NOTE: P3564 was discussed as part of P3481R2 as well.

@FabioFracassi FabioFracassi added LWG Library and removed LEWG Library Evolution labels Feb 13, 2025
@inbal2l inbal2l removed the SG1 Concurrency label Mar 2, 2025
@wg21bot
Copy link
Collaborator Author

wg21bot commented Mar 19, 2025

P3481R2 std::execution::bulk() issues (Lucian Radu Teodorescu, Ruslan Arutyunyan, Lewis Baker)

@wg21bot wg21bot changed the title P3481 R1 std::execution::bulk() issues P3481 R2 std::execution::bulk() issues Mar 19, 2025
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2025

P3481R3 std::execution::bulk() issues (Lucian Radu Teodorescu, Ruslan Arutyunyan, Lewis Baker, Mark Hoemmen)

@wg21bot wg21bot changed the title P3481 R2 std::execution::bulk() issues P3481 R3 std::execution::bulk() issues Apr 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B1 - focus Bucket 1 as described by P0592: material that is mentioned in this plan. C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library senders/receivers size - large paper size estimate
Projects
Status: No status
Development

No branches or pull requests

7 participants