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

Adapt all parallel algorithms to Ranges TS #1668

Closed
46 tasks done
hkaiser opened this issue Jul 18, 2015 · 5 comments
Closed
46 tasks done

Adapt all parallel algorithms to Ranges TS #1668

hkaiser opened this issue Jul 18, 2015 · 5 comments

Comments

@hkaiser
Copy link
Member

hkaiser commented Jul 18, 2015

The proposed ranges library includes slight (mostly non-breaking) changes to the standard algorithms. Those are described in N4569: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4569.pdf

Edit: here is an updated version of this document: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4685.pdf

We should adapt our algorithms to conform to this proposal (as much as possible).

Here is the list of algorithms which need to be adapted:

These were added by N4310:

@hkaiser hkaiser added this to the 0.9.11 milestone Jul 18, 2015
hkaiser added a commit that referenced this issue Jul 18, 2015
- added Proj parameter to for_each and for_each_n
- let for_each return iterator
hkaiser added a commit that referenced this issue Jul 18, 2015
- added Proj parameter to for_each and for_each_n
- let for_each return iterator
- fly-by fix for distributed algorithms (don't forward arguments more than once)
@dcbdan
Copy link
Contributor

dcbdan commented Jul 19, 2015

While we are at these changes, should we also set up benchmarks to test the correctness and efficiency of the algorithms? If so, what is the best way to do that?

@hkaiser
Copy link
Member Author

hkaiser commented Jul 20, 2015

Yes, every new feature requires to add corresponding tests. Performance regressions are more difficult to detect as we don't have a consistent automatic testing system for this. However, any ideas are appreciated.

@dcbdan
Copy link
Contributor

dcbdan commented Jul 20, 2015

What about requiring that each commit for this issue adds the results of performance tests on

  • small, medium, large datasets (whatever those may be),
  • 1, 2, ..., 64 processors,
  • a selection of compute nodes on Hermione?

Then add a python script that plots strong scaling for a chosen dataset, compute node and algorithm. This way we and anyone else has assurance that the algorithms are indeed faster than sequential.

@sithhell
Copy link
Member

What about requiring that each commit for this issue adds the results of performance tests on
small, medium, large datasets (whatever those may be), 1, 2, ..., 64 processors,
a selection of compute nodes on Hermione?

Then add a python script that plots strong scaling for a chosen dataset, compute node and algorithm. This way we and anyone else has assurance that the algorithms are indeed faster than sequential.

We already have that here: http://faui36a.informatik.uni-erlangen.de/perf-o-matic/graph.html

It still has some rough edges, but the basic features are there (plotting
performance regressions, easy addition of new benchmarks, see here:
https://github.com/STEllAR-GROUP/performance_tests and here for an example
benchmark script:
https://github.com/STEllAR-GROUP/performance_tests/blob/master/scripts/hpx_benchmark/osu_latency.py).
It is run every night.

hkaiser added a commit that referenced this issue Jul 28, 2015
@hkaiser hkaiser modified the milestones: 0.9.11, 0.9.12 Nov 12, 2015
@hkaiser hkaiser changed the title Adapt all parallel algorithms to N4382 Adapt all parallel algorithms to Ranges TS Nov 19, 2015
@hkaiser hkaiser mentioned this issue Dec 7, 2015
hkaiser added a commit that referenced this issue Dec 10, 2015
@hkaiser hkaiser modified the milestones: 0.9.99, 1.0.0 Jun 27, 2016
@hkaiser hkaiser modified the milestones: 1.0.0, 1.1.0 Apr 23, 2017
taeguk added a commit to taeguk/hpx that referenced this issue Jul 8, 2017
taeguk added a commit to taeguk/hpx that referenced this issue Jul 8, 2017
@msimberg msimberg removed this from the 1.1.0 milestone Nov 21, 2017
msimberg added a commit that referenced this issue Feb 15, 2018
Adapted parallel::{count|count_if} for Ranges TS (see #1668)
hkaiser added a commit that referenced this issue Mar 7, 2018
Adapted parallel::{search | search_n} for Ranges TS (see #1668)
@hkaiser hkaiser added the tag: pinned Never close as stale label Jun 30, 2019
@hkaiser hkaiser mentioned this issue Jul 28, 2020
21 tasks
@hkaiser hkaiser added this to the 1.6.0 milestone Aug 4, 2020
@msimberg msimberg removed this from the 1.6.0 milestone Jan 5, 2021
@Jedi18 Jedi18 mentioned this issue Oct 4, 2021
@hkaiser
Copy link
Member Author

hkaiser commented Nov 8, 2021

Finally, this task has been finished! Thanks all of you who helped!

@hkaiser hkaiser closed this as completed Nov 8, 2021
Standard Algorithms automation moved this from Open Tickets to Merged to master Nov 8, 2021
@hkaiser hkaiser added this to the 1.8.0 milestone Nov 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Standard Algorithms
  
Merged to master
Development

No branches or pull requests

4 participants