This is an archive of the discontinued LLVM Phabricator instance.

The optimized parallel versions of sort, stable_sort algorithms.
ClosedPublic

Authored by MikeDvorskiy on Mar 28 2019, 3:24 AM.

Details

Summary

Optimization of parallel sort, stable_sort). Result for my benchmarks(4e6 elements, int, double ,44 cores CPU): speed up 3x-10x (depended on type and data – random, sorted or partial sorted).

Diff Detail

Repository
rL LLVM

Event Timeline

MikeDvorskiy created this revision.Mar 28 2019, 3:24 AM

Rebased of the HEAD of the master

ldionne resigned from this revision.Apr 26 2019, 9:07 AM

Per our offline discussion, I think it's fine for changes that touch exclusively a single backend to be owned by the owner of that backend.

include/pstl/internal/algorithm_impl.h
2679 ↗(On Diff #196850)

I think this should stay qualified?

MikeDvorskiy marked an inline comment as done.

+ "internal::" for "brick_move"

include/pstl/internal/algorithm_impl.h
2679 ↗(On Diff #196850)

Yes, thanks..
(conflict resolving fall)

Add uglification for "merge_task" and Rebased to the HEAD

ldionne accepted this revision.Jun 5 2019, 9:29 AM
This revision is now accepted and ready to land.Jun 5 2019, 9:29 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptJun 6 2019, 12:32 AM