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

Replacing boost::container::small_vector #5621

Merged
merged 1 commit into from
Nov 1, 2021
Merged

Replacing boost::container::small_vector #5621

merged 1 commit into from
Nov 1, 2021

Conversation

hkaiser
Copy link
Member

@hkaiser hkaiser commented Oct 26, 2021

This removes the dependency on boost::container::small_vector

Working towards #3440

Copy link
Contributor

@msimberg msimberg left a comment

Choose a reason for hiding this comment

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

Neat, thanks! I don't have any in-depth comments at this point. I'd like to understand how this exactly works, but I don't want that to block this from being merged (I'm happy if it passes tests).

Two questions:

@hkaiser
Copy link
Member Author

hkaiser commented Oct 26, 2021

Yes, that reminded me of some code I had been working on a while back.

  • How about we put it in hpx::(util::)detail right away?

ok.

@hkaiser hkaiser force-pushed the small_vector branch 6 times, most recently from 7f08c5a to 008d929 Compare October 26, 2021 22:59
@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-10-26T22:59:45+00:00
HPX Commit254db57c135be8
Envfile
Clusternamedaintdaint
Hostnamenid00446nid00396
Datetime2021-08-23T15:21:22.855927+02:002021-10-27T01:08:05.968118+02:00
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

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-20T12:40:32+00:002021-10-26T22:59:45+00:00
HPX Commit5ed2694c135be8
Envfile
Clusternamedaintdaint
Hostnamenid01047nid00396
Datetime2021-10-21T15:01:27.508281+02:002021-10-27T01:08:21.658100+02:00
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

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…

@hkaiser hkaiser marked this pull request as ready for review October 27, 2021 01:02
@hkaiser
Copy link
Member Author

hkaiser commented Oct 27, 2021

@msimberg this is ready for review now.

Copy link
Contributor

@msimberg msimberg left a comment

Choose a reason for hiding this comment

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

I think this looks good with my limited knowledge of std::pmr. I've left some questions to check if I've understood things correctly.

@hkaiser hkaiser force-pushed the small_vector branch 2 times, most recently from 9f9effd to 399d6c2 Compare October 28, 2021 21:20
@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-10-28T21:20:27+00:00
HPX Commit254db573ec932b
Datetime2021-08-23T15:21:22.855927+02:002021-10-28T23:38:21.468046+02:00
Envfile
Clusternamedaintdaint
Hostnamenid00446nid00865
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

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-10-28T21:20:27+00:00
HPX Commit916f4d83ec932b
Datetime2021-10-25T11:52:24.316784+02:002021-10-28T23:38:36.741595+02:00
Envfile
Clusternamedaintdaint
Hostnamenid01196nid00865
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

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…

CMakeLists.txt Outdated Show resolved Hide resolved
@msimberg
Copy link
Contributor

msimberg commented Oct 29, 2021

We'll need to keep a bit of an eye on the perf tests. However, don't think (hope) that this PR actually affects the timings.

@msimberg
Copy link
Contributor

launch perftests

@msimberg msimberg merged commit 9cccbec into master Nov 1, 2021
@msimberg msimberg deleted the small_vector branch November 1, 2021 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants