Jump to content

Sorting algorithms/Merge sort: Difference between revisions

imported>Rcmlz
imported>Rcmlz
Line 6,657:
parallel-medium-batch => { mergesort-parallel(@unsorted, $m-batch) },
parallel-large-batch => { mergesort-parallel(@unsorted, $l-batch) },
}, :statistics;
};
 
my @metrics = <mean median sd>;
my $msg-row = "%.4f\t" x @metrics.elems ~ '%s';
 
say @metrics.join("\t");
for %results.kv -> $name, ($start, $end, $diff, $avg)%m {
say sprintf($msg-row, %m{@metrics}, $name);
};
}</syntaxhighlight>
 
for %results.kv -> $name, ($start, $end, $diff, $avg) {
say "$name avg $avg secs"
}</syntaxhighlight>
<pre>
elements: 40960, runs: 5, cpu-cores: 4, large/medium/small/tiny-batch: 8192/2048/512/128
mean median sd
single-thread avg 9 secs
7.7683 8.0265 0.5724 parallel-naive avg 7.4 secs
3.1354 3.1272 0.0602 parallel-tiny-batch avg 2.8 secs
2.6932 2.6599 0.1831 parallel-smallmedium-batch avg 2.8 secs
2.8139 2.7832 0.0641 parallel-mediumlarge-batch avg 2.8 secs
3.0908 3.0593 0.0675 parallel-largesmall-batch avg 2.4 secs
5.9989 5.9450 0.1518 single-thread
</pre>
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.