Skip to content

Latest commit

 

History

History
106 lines (78 loc) · 3.75 KB

benchmark-cmucl.md

File metadata and controls

106 lines (78 loc) · 3.75 KB

STMX Performance

This document is an addition to benchmark.md. Please read it first.

What follows are some timings obtained on the authors's system, and by no means they claim to be exact, absolute or reproducible: your mileage may vary.

Date: 29 June 2013

Hardware: Intel Core-i7 4770 @3.5 GHz (quad-core w/ hyper-threading), 16GB RAM

Software: Debian GNU/Linux 7.0 (x86_64), CMUCL 20d Unicode (x86), STMX 1.3.3

Note that CMUCL is stated to support "user level" threads on Linux/x86, not native threads. So don't expect performance improvements by running more than one thread... :(

Concurrent benchmarks on a 4-core CPU. They already iterate ten million times, do not wrap them in (1m ...).
Dining philosophers, load with
(load "stmx/example/dining-philosophers-stmx.lisp")
(load "stmx/example/dining-philosophers-hw-tx.lisp")
(load "stmx/example/dining-philosophers-lock.lisp")
(in-package :stmx.example{1|2|3})
number of threads executed code STMX (sw transactions) HW-TX (hw transactions) LOCK (atomic compare-and-swap) LOCK (bordeaux-threads mutex)
millions transactions per second
1 thread (dining-philosophers 1) 0.102 0.194
2 threads (dining-philosophers 2) 0.075 0.108
3 threads (dining-philosophers 3) 0.077 0.116
4 threads (dining-philosophers 4) 0.077 0.122
5 threads (dining-philosophers 5) 0.077 0.124
6 threads (dining-philosophers 6) 0.078 0.127
7 threads (dining-philosophers 7) 0.078 0.128
8 threads (dining-philosophers 8) 0.078 0.130
10 threads (dining-philosophers 10) 0.078 0.132
15 threads (dining-philosophers 15) 0.078
20 threads (dining-philosophers 20)
30 threads (dining-philosophers 30)
40 threads (dining-philosophers 40)
50 threads (dining-philosophers 50)
100 threads (dining-philosophers 100)
200 threads (dining-philosophers 200)