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

P1068 R11 Vector API for random number generation #409

Closed
wg21bot opened this issue Jun 23, 2019 · 27 comments · Fixed by cplusplus/draft#6904
Closed

P1068 R11 Vector API for random number generation #409

wg21bot opened this issue Jun 23, 2019 · 27 comments · Fixed by cplusplus/draft#6904
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library lwg-pending LWG Chair needs to disposition plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. random size - medium paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Jun 23, 2019

P1068R1 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev)

@wg21bot wg21bot added this to the 2019-07 milestone Jun 23, 2019
@wg21bot wg21bot added the SG1 Concurrency label Jun 23, 2019
@ogiroux ogiroux added this to Wednesday in SG1 in Cologne 2019 Jul 13, 2019
@ogiroux ogiroux moved this from Wednesday to Tuesday in SG1 in Cologne 2019 Jul 15, 2019
@ogiroux
Copy link
Collaborator

ogiroux commented Jul 19, 2019

Option to generate the same distribution sequence as sequential is important (for consistency)
SF F N A SA
9 3 2 0 0

Option to generate a distribution sequence different from sequential is important (for performance)
SF F N A SA
6 4 6 0 0

We must have an iterator based 'generate' interface
SF F N A SA
2 7 4 0 1

We must have a simd-type-producing interface
SF F N A SA
2 3 5 2 0 - Weak consensus

@jensmaurer jensmaurer removed this from the 2019-07 milestone Aug 23, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Oct 15, 2019

P1068R2 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev)

@wg21bot wg21bot added this to the 2019-11 milestone Oct 15, 2019
@ogiroux ogiroux added this to Wednesday in SG1Belfast2019 Nov 3, 2019
@ogiroux
Copy link
Collaborator

ogiroux commented Nov 8, 2019

SG1 in Belfast.

We like the new algorithms for vectorized random number distributions, as a new
API that does not match the existing API's results, without consistency controls:
SF F N A SA
5 11 4 1 0
Consensus for this change

Forward to LEWG for target at LEWG's choosing:
SF F N A SA
No objection to unanimous consent

@ogiroux ogiroux added LEWG Library Evolution and removed SG1 Concurrency labels Nov 8, 2019
@Cpp-Lisa
Copy link
Collaborator

Cpp-Lisa commented Nov 8, 2019

SG6 does not favor change; the original API doesn't promise repeatability, so saying the vector API is consistent with the existing API doesn't really mean anything.

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 18, 2020

P1068R3 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev)

@wg21bot wg21bot modified the milestones: 2019-11, 2020-02 Jan 18, 2020
@brycelelbach brycelelbach added LEWGI Library Evolution Incubator and removed LEWG Library Evolution labels Feb 8, 2020
@brycelelbach
Copy link

Putting this on the LEWGI agenda as we're already seeing some random number papers and LEWG likely won't have time at this meeting for this.

@brycelelbach brycelelbach added the SG6 Numerics label Feb 8, 2020
@brycelelbach
Copy link

Prague 2020-02 LEWGI Minutes

P1068R3 Make Random Number Generation Vectorizable: Design Review

Chair: Nevin Liber

Champion: Ilya Burylov

Minute Taker: Marco Foco

Start Review: 2020-02-11 14:50

Prior art: Yes, in paper.

This proposal changes the definition of the uniform_random_bit_generator; changing concepts is a breaking change. You probably need to add a new concept instead.

Regarding whether this provides enough implementation freedom, that's an SG1 or SG6 question. SG1 reviewed this and this is the amount of freedom they felt they needed.

Do we need 3 APIs:

  • Scalar (what we have today).
  • Vector and reproducible.
  • Vector and not reproducible.

Clarify the design intent for random_device - should it have the vector API?

Start Polling: 15:26

POLL: Ask SG1 to consider the capability of a vector URBG that is unconstrained in reproducing the scalar results (the goal being as much performance as possible).

Strongly For Weakly For Neutral Weakly Against Strongly Against
2 6 2 3 1

Attendance: 22

# of Authors: 1

Author Position: SA

That has no consensus.

End: 15:34

CONSENSUS: LEWGI sends P1068R3 (Make Random Number Generation Vectorizable), with the guidance below, to LEWG.

  • Instead of changing uniform_random_bit_generator, introduce a new concept that subsumes it.

@brycelelbach brycelelbach added LEWG Library Evolution needs-revision Paper needs changes before it can proceed and removed LEWGI Library Evolution Incubator labels Feb 19, 2020
@jensmaurer jensmaurer removed this from the 2020-02 milestone Mar 7, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Aug 1, 2020

P1068R4 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Aug 1, 2020
@wg21bot wg21bot added this to the 2020-telecon milestone Aug 1, 2020
@brycelelbach brycelelbach added B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 IS Ship vehicle: IS labels Aug 25, 2020
@wg21bot
Copy link
Collaborator Author

wg21bot commented Aug 23, 2023

P1068R8 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev, Alina Elizarova)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Aug 23, 2023
@wg21bot wg21bot changed the title P1068 R7 Vector API for random number generation P1068 R8 Vector API for random number generation Aug 23, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Sep 15, 2023

P1068R9 was added to LEWG 2023 September electronic poll paper (P2972R0)

@wg21bot wg21bot changed the title P1068 R8 Vector API for random number generation P1068 R9 Vector API for random number generation Sep 18, 2023
@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Sep 23, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Oct 16, 2023

P1068R9 was forwarded to LWG on LEWG 2023 September electronic poll (P3020R0)

@inbal2l inbal2l added LWG Library lwg-pending LWG Chair needs to disposition and removed LEWG Library Evolution ready-for-library-evolution-electronic-poll This paper needs to undergo a Library Evolution electronic poll scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review labels Oct 16, 2023
@inbal2l inbal2l added scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review LEWG Library Evolution labels Nov 20, 2023
@ben-craig
Copy link
Collaborator

ben-craig commented Nov 28, 2023

2023-11-28 Library Evolution Telecon

P1068R9: Vector API for random number generation

2023-11-28 Library Evolution Telecon Minutes

Champion: Ruslan Arutyunyan

Chair: Ben Craig

Minute Taker: Mark Hoemmen

Summary

LWG wants changing the std::ranges::generate_random customization point to find a generate_random member function of generator and distribution rather than finding one by ADL (status QUO of the paper). The problem is LEWG explicitly voted that generate_random should not be a member function. Although, it’s not quite the same question because we still provide std::ranges::generate_random as the CPO (as LEWG requested) we want to make sure we don’t violate the design intent.

POLL: Change generate_random customization point to find a generate_random member function, rather than use ADL (i.e. change the paper to do what LWG wants)

SF F N A SA
0 9 3 2 0

Attendance: 14

# of Authors: 2

Author Position: N, WF

Outcome: Consensus in favor

WA: because it prevents a third party from optimizing a generator for vectorization

Next Steps

LEWG approved the recommended change. The paper will go back to LWG to continue the wording review.

@ben-craig ben-craig added needs-revision Paper needs changes before it can proceed and removed scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review LEWG Library Evolution labels Nov 28, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P1068R10 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev, Alina Elizarova)

@wg21bot wg21bot removed the needs-revision Paper needs changes before it can proceed label Dec 19, 2023
@wg21bot wg21bot modified the milestones: 2023-telecon, 2024-telecon Dec 19, 2023
@wg21bot wg21bot changed the title P1068 R9 Vector API for random number generation P1068 R10 Vector API for random number generation Dec 19, 2023
@cor3ntin cor3ntin added the plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. label Mar 23, 2024
@jensmaurer jensmaurer modified the milestones: 2024-telecon, 2024-03 Apr 3, 2024
@wg21bot
Copy link
Collaborator Author

wg21bot commented Apr 17, 2024

P1068R11 Vector API for random number generation (Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev, Alina Elizarova)

@wg21bot wg21bot changed the title P1068 R10 Vector API for random number generation P1068 R11 Vector API for random number generation Apr 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LWG Library lwg-pending LWG Chair needs to disposition plenary-approved Papers approved for inclusion in their target vehicle by plenary vote. random size - medium paper size estimate
Projects
Status: Tentatively Ready
Development

Successfully merging a pull request may close this issue.

10 participants