Permalink
Fetching contributors…
Cannot retrieve contributors at this time
105 lines (77 sloc) 3.61 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), OpenJDK 6b27-1.12.5-2 (x86_64), ABCL 1.1.1, STMX 1.3.3

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.071 0.575
2 threads (dining-philosophers 2) 0.143 0.558
3 threads (dining-philosophers 3) 0.206 0.561
4 threads (dining-philosophers 4) 0.241 0.698
5 threads (dining-philosophers 5) 0.246 0.803
6 threads (dining-philosophers 6) 0.241 0.954
7 threads (dining-philosophers 7) 0.269 1.096
8 threads (dining-philosophers 8) 0.276 1.209
10 threads (dining-philosophers 10) 0.124 1.424
15 threads (dining-philosophers 15) 0.122 1.845
20 threads (dining-philosophers 20) 0.129 2.048
30 threads (dining-philosophers 30) 0.139 2.130
40 threads (dining-philosophers 40) 0.153 2.154
50 threads (dining-philosophers 50) 0.163 2.160
100 threads (dining-philosophers 100) 0.162 2.156
200 threads (dining-philosophers 200) 0.160 2.164