-
Notifications
You must be signed in to change notification settings - Fork 1
Home
The MONDO-SAM implementation provides a lightweight framework written in Java for benchmark developers. The main goal is to define an interface for the most commonly used components of the area of benchmarking. Besides an abstract layer MONDO-SAM also involves ready-made implementations such as:
- An Engine for the main execution of benchmark phases
- Automatic and arbitrarily extensible result serializer
- Built-in reusable metric classes
- The possibility of creating arbitrary hierarchies of phases
- Automatic visualisation of the benchmark results in R
On the other side, the benchmark developer's assignment to define the behaviour of the main components, which are the following:
- A Scenario which contains an arbitrary hierarchy of phases
- Phases with operations which symbolise the atomic execution units
- DataToken which indicates a communication unit amongst phases in order to be able to share their information with each other
- Case that specifies a particular behaviour of phases
MONDO-SAM does not provide an interface for benchmark case definitions, since they are tightly coupled to the functionality of the certain benchmark, therefore, it cannot be defined in the level of abstraction, however the framework requires for there definition on the side of the benchmark developer, especially under the process of result serializing and reporting.
On the whole, MONDO-SAM is responsible for evaluating the user-defined phases, collecting the measurement results and publishing them to JSON files. Subsequently, the reporting mechanism implemented in R is able to generate the diagrams automatically, regarding the measured results. In order to illustrate them, it is also necessary to convert the JSON files into a CSV format with a corresponding header. A Python script is attached to the project as well to solve the problem of conversion. It is located in reporting
directory, as convert_results.py
.