MINIME: Pattern-Aware Multicore Benchmark Synthesizer

MINIME is an automated tool that generates synthetic/standalone benchmarks in C using MRAPI, MCAPI, or POSIX (Pthread) API. The synthetic benchmark preserves the following performance characteristics: Parallel Pattern, Instructions per Cycle (IPC), Cache Miss Rate, Branch Misprediction Rate, Communication to Computation Ratio. Our framework contains three main modules: benchmark characterizer, parallel pattern recognizer, and synthetic benchmark synthesizer. Benchmark characterizer obtains parallel benchmark characteristics by using a dynamic binary instrumentation tool. The parallel pattern recognizer decides the architectural parallel pattern from the benchmark characteristics. Finally, benchmark synthesizer generates a synthetic benchmark from the parallel pattern and the benchmark characteristics. Also, the specific MCA/POSIX API is used during synthesis in order to generate benchmarks for homogeneous and heterogeneous systems.

Please cite the following paper if you are using our tool or synthetic benchmarks:

Etem Deniz, Alper Sen, Brian Kahne, and Jim Holt, "MINIME: Pattern-Aware Multicore Benchmark Synthesizer", IEEE Transactions on Computers (TC), 2014.



The latest version of MINIME source code can be downloaded here.
An earlier binary version (version 1.3) of MINIME can be downloaded here. It includes DynamoRio, Umbra and MCA APIs. MINIME is tested on a x86 machine running Ubuntu 11.10-64bit and a PowerPC machine running P4080ds Linux. Due to DynamoRio compatibility issues, the version of MINIME that runs on Ubuntu 11.10-64bit does not run on Ubuntu 12.04-64bit. MINIME (version 1.3.2) that runs on Ubuntu 12.04-64bit can be downloaded here.


Synthetic Benchmarks

MCAPI, MRAPI, and Pthreads Synthetic benchmarks generated with version 1.3 can be downloaded here.
PARSEC 2.1 and Rodinia 2.0 were used during benchmark synthesis.
All benchmarks were generated and tested on a x86 machine running Ubuntu 11.10-64bit and a PowerPC machine running P4080ds Linux.
Individual similarity score is set to 80 and overall similarity score is set to 90.
GCC version 4.6.1 is used during tests and optimization level is zero (O0).



If you have any comment, questions, suggestions, or want to contribute to MINIME, please feel free to contact us at: etem.deniz at boun dot edu dot tr