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

Support for data-parallelism for find algorithms #5650

Closed

Conversation

srinivasyadav18
Copy link
Contributor

@srinivasyadav18 srinivasyadav18 commented Nov 14, 2021

Contributes to fixing #2333

This implements vectorization support for find, find_end, find_first_of, find_if, and find_if_not

Proposed Changes

  • Adapts new CPOs for find_first_of and find_end.
  • Adapts all find related algorithms to datapar.
  • Splits find unit test into header and source.
  • Adapt unit tests for datapar find

@hkaiser hkaiser added this to the 1.8.0 milestone Nov 14, 2021
@msimberg msimberg added the split: local PR targets local functionality label Nov 15, 2021
@hkaiser hkaiser changed the title Adapt Simd find Support for data-parallelism for find algorithms Nov 15, 2021
@StellarBot
Copy link

Performance test report

HPX Performance

Comparison

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

Info

PropertyBeforeAfter
HPX Commit96a2e4b93e5dcb
HPX Datetime2021-11-11T08:14:57+00:002021-11-30T10:50:12+00:00
Envfile
Hostnamenid00006nid01137
Clusternamedaintdaint
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
Datetime2021-11-11T09:28:13.071121+01:002021-11-30T12:08:59.237553+01:00

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 Commit71d8dbe93e5dcb
HPX Datetime2021-11-10T19:14:21+00:002021-11-30T10:50:12+00:00
Envfile
Hostnamenid00120nid01137
Clusternamedaintdaint
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
Datetime2021-11-10T20:28:18.266961+01:002021-11-30T12:09:14.873918+01:00

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…

util::loop_idx_n<ExPolicy>(base_idx, it, part_size, tok,
[=, &tok, &op, &proj1, &proj2](auto t, std::size_t i) -> void {
if (hpx::util::invoke(op, hpx::util::invoke(proj1, t),
hpx::util::invoke(proj2, *first2)))
Copy link
Member

Choose a reason for hiding this comment

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

Please use HPX_INVOKE() instead of hpx::util::invoke() in implementation files (not tests, etc.)

@srinivasyadav18
Copy link
Contributor Author

@hkaiser Thanks for the review :), I will make the required changes soon.

Co-authored-by: Hartmut Kaiser <hartmut.kaiser@gmail.com>
Replace hpx::util::invoke with HPX_INVOKE
Replace std::forward with HPX_FORWARD
@hkaiser
Copy link
Member

hkaiser commented Dec 26, 2021

This is superseded by STEllAR-GROUP/hpx-local#21

@hkaiser hkaiser closed this Dec 26, 2021
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.

4 participants