-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
It seems that the results vary a lot on different CPU architectures.
Testing on a Ubuntu VM (kernel version 5.4.0-65-generic) running on Apple M1 with the thread-brigade and async-brigade tests:
$ /bin/time ../target/release/async-brigade
500 tasks, 10000 iterations:
mean 572.666µs per iteration, stddev 10.912µs (1145.000ns per task per iter)
2.56user 3.26system 0:05.83elapsed 99%CPU (0avgtext+0avgdata 3964maxresident)k
0inputs+0outputs (0major+399minor)pagefaults 0swaps
$ /bin/time ../target/release/thread-brigade
500 tasks, 10000 iterations:
mean 7.104ms per iteration, stddev 226.822µs (14.208µs per task per iter)
7.09user 78.75system 1:11.91elapsed 119%CPU (0avgtext+0avgdata 8340maxresident)k
0inputs+0outputs (0major+1523minor)pagefaults 0swaps
So it's a 90% speedup, not a 30% one.
Pinning to a single CPU core brings the threaded version closer to async though:
$ taskset --cpu-list 1 /bin/time ../target/release/thread-brigade
500 tasks, 10000 iterations:
mean 660.847µs per iteration, stddev 13.810µs (1321.000ns per task per iter)
0.49user 6.28system 0:06.83elapsed 99%CPU (0avgtext+0avgdata 6100maxresident)k
0inputs+0outputs (0major+1544minor)pagefaults 0swaps
Metadata
Metadata
Assignees
Labels
No labels