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

Add partial_sort_copy and adapt partial sort to c++ 20 #5630

Merged
merged 9 commits into from
Nov 8, 2021

Conversation

Jedi18
Copy link
Contributor

@Jedi18 Jedi18 commented Nov 2, 2021

Thanks to @fjtapia for his partial_sort_copy implementation.

Added tag_fallback_invoke overloads for parallel and container overloads, normal and range tests for partial_sort and partial_sort_copy.

Any background context you want to provide?
Issue #4822
Issue #3646
Issue #1668

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch++

Info

PropertyBeforeAfter
HPX Commit254db57b93c634
HPX Datetime2021-08-21T11:38:52+00:002021-11-02T07:19:24+00:00
Datetime2021-08-23T15:21:22.855927+02:002021-11-02T08:32:59.887174+01:00
Hostnamenid00446nid01152
Envfile
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)-
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad-(=)-
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Commit916f4d8b93c634
HPX Datetime2021-10-22T15:54:13+00:002021-11-02T07:19:24+00:00
Datetime2021-10-25T11:52:24.316784+02:002021-11-02T08:33:15.228036+01:00
Hostnamenid01196nid01152
Envfile
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

@msimberg msimberg added category: algorithms split: docs PR targets documentation split: local PR targets local functionality labels Nov 3, 2021
@Jedi18
Copy link
Contributor Author

Jedi18 commented Nov 6, 2021

@hkaiser Thanks for fixing the error!

@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

BENCHMARKNO-EXECUTOR
Future Overhead - Create Thread Hierarchical - Latch(=)

Info

PropertyBeforeAfter
HPX Datetime2021-08-21T11:38:52+00:002021-11-06T05:51:32+00:00
HPX Commit254db5715ccccb
Datetime2021-08-23T15:21:22.855927+02:002021-11-06T07:07:26.652286+01:00
Envfile
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Hostnamenid00446nid01540

Comparison

BENCHMARKFORK_JOIN_EXECUTOR_DEFAULT_FORK_JOIN_POLICY_ALLOCATORPARALLEL_EXECUTOR_DEFAULT_PARALLEL_POLICY_ALLOCATORSCHEDULER_EXECUTOR_DEFAULT_SCHEDULER_EXECUTOR_ALLOCATOR
Stream Benchmark - Add(=)(=)-
Stream Benchmark - Scale(=)(=)(=)
Stream Benchmark - Triad(=)(=)-
Stream Benchmark - Copy(=)(=)(=)

Info

PropertyBeforeAfter
HPX Datetime2021-10-22T15:54:13+00:002021-11-06T05:51:32+00:00
HPX Commit916f4d815ccccb
Datetime2021-10-25T11:52:24.316784+02:002021-11-06T07:07:41.969381+01:00
Envfile
Compiler/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0/apps/daint/SSL/HPX/packages/llvm-11.0.0/bin/clang++ 11.0.0
Clusternamedaintdaint
Hostnamenid01196nid01540

Explanation of Symbols

SymbolMEANING
=No performance change (confidence interval within ±1%)
(=)Probably no performance change (confidence interval within ±2%)
(+)/(-)Very small performance improvement/degradation (≤1%)
+/-Small performance improvement/degradation (≤5%)
++/--Large performance improvement/degradation (≤10%)
+++/---Very large performance improvement/degradation (>10%)
?Probably no change, but quite large uncertainty (confidence interval with ±5%)
??Unclear result, very large uncertainty (±10%)
???Something unexpected…

Copy link
Member

@hkaiser hkaiser left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: algorithms split: docs PR targets documentation split: local PR targets local functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants