Currently we have 10 benchmarks to evaluate the checker
peterson | Peterson's Mutual exclusion algorithm [4] |
tbarrier | Tournament barrier algorithm, Barrier benchmark from [2] |
dc | Double-checked locking pattern [5] |
rw-vol | Read-after-write Java volatile semantic test by [3] |
rowo | Multiprocessor diagnostic tests ARCHTEST (ROWO) [1] |
po | Multiprocessor diagnostic tests ARCHTEST (PO) [1] |
iw1 | Independent workers problem [6] |
iw2 | Independent workers problem [6] |
rw | Two readers - single writer problem |
bb | Bounded buffer/Producer-consumer problem |
Each zip file contains 3 files:
- <name>.test: contains the details for running the benchmark (memory model,
search method)
- <name>.cs: The source code of the benchmark
- <name>.il: The disassembled bytecode using the tool ildasm.exe from Microsoft
.NET Framework SDK.
Please note that newer versions of the .NET compiler produce slightly different bytecodes for the same source files that we used. Recompiling the .cs and .il will produce slightly different results as well. We used Microsoft .NET Framework 1.1 compiler to create the .il files on this website.
To run the benchmark, execute the command
mmchecker <name>.test
References