MCPcopy Create free account
hub / github.com/dmlc/parameter_server / parallelSort

Function parallelSort

src/util/parallel_sort.h:7–17  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5namespace PS {
6template<typename T, class Fn>
7void parallelSort(T* data, size_t len, size_t grainsize, const Fn& cmp) {
8 if (len <= grainsize) {
9 std::sort(data, data + len, cmp);
10 } else {
11 std::thread thr(parallelSort<T, Fn>, data, len/2, grainsize, cmp);
12 parallelSort(data + len/2, len - len/2, grainsize, cmp);
13 thr.join();
14
15 std::inplace_merge(data, data + len/2, data + len, cmp);
16 }
17}
18
19// cmp typically is [](const T& a, const T& b) { return a < b; }
20// or an even simplier version: std::less<T>()

Callers 1

countUniqIndexMethod · 0.85

Calls 2

dataMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected