Giter VIP home page Giter VIP logo

mondo-sam's Introduction

MONDO-SAM

MONDO-SAM: A Framework to Systematically Assess MDE Scalability

Build Status

MONDO-SAM provides a common framework for benchmark developers written in Java, Python and R.

Prerequisites

  • Java SE 1.6
  • Python 3 (tested with 3.4)
  • R (3.2+)
  • Maven 3

To import the projects to Eclipse, use the following command to generate the .project and .classpath files:

mvn eclipse:eclipse

Set the value of the M2_REPO variable in your Eclipse workspace. There are multiple ways to achieve this:

  1. Use the eclispe:configure-workspace command.
ECLIPSE_WORKSPACE=/path/to/your/workspace
mvn eclipse:configure-workspace -Declipse.workspace="$ECLIPSE_WORKSPACE"
  1. Go to Window | Preferences, Java | Build Path | Classpath Variables and add the M2_REPO variable. It should point to the absolute path of the repository directory, e.g. /home/username/.m2/repository.

  2. Installing the m2e Eclipse plug-in also sets the value of M2_REPO automatically. However, note that m2e is not compatible with projects generated by the eclipse:eclipse command so you should not convert these projects to Maven projects in Eclipse.

Usage

The first step is to define the own scenario and phase implementations. For further information, read the wiki.

Results

Every benchmark result is saved to a JSON file. In order to convert the results to a CSV file, run the following:

./reporting/convert_results.py

To add specific paths, use the optional arguments. For more information, see convert_results.py -h

The operation above is also necessary for the reporting mechanism.

Reporting in R

There is a chance to visualize the measurement results on diagrams. At first, install R and the required packages:

  1. Ubuntu

    Install R 3.2+. On Ubuntu 15.10+, this is as simple as issuing:

    sudo apt-get install -y r-base r-base-dev  
    cd reporting  
    sudo R -f install.R  

    On older systems, follow the Ubuntu Packages for R guide.

  2. Windows

  • Download and install R
  • Adjust the system environment variables
  • In a command prompt with administrator rights, run:
    R -f install.R
    

After converting the results to the right CSV format (see above), it becomes feasible to start the reporting. The first option is that to use the interactive application.

Interactive Reporting

Besides the primary dependencies, it is necessary to install additional R packages:

cd reporting/shiny
sudo R -f install.R  

In order to launch the application, run the following script from the reporting directory:

./interactive.sh

It is possible to run the application in terminal (from the reporting directory again):

R -e "shiny::runApp('./shiny/', launch.browser=TRUE)"

To run the application from a different source, just change the path parameter (./shiny/).

Or, import the reporting/shiny/server.R file into RStudio and click on the Run App button. However, note that some features are not available in RStudio, for example, it is not feasible to export the configurations.

Reporting 2

The second option is that to run the plot generation scripts directly without interactivity. In this case, it is necessary to use an external configuration file (reporting/config.json).

At first, adjust the reporting configuration settings in the reporting/config.json file. These parameters determine exactly what kind of plots will be generated. For further information, read the reporting section on wiki.

Finally, it is already possible to generate the diagrams. The easiest way for this to use the Python wrapper module:

./reporting/report.py --source source_csv_path --output output_folder_path --config config_json_path`

Insert valid parameters instead the paths. The wrapper module actually invokes the reporting/generate_diagrams.R script, however it is still recommended to use it for two reasons. The Python script:

  1. solves the working directory problem and
  2. provides a more useable argument parser than R.

Use both

It is possible as well to export the configurations that are adjusted in the interactive interface, and reuse it as an external configuration for the generate_diagrams.R (or report.py) script.

mondo-sam's People

Contributors

szarnyasg avatar thsoft avatar zkovari avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

zole40

mondo-sam's Issues

convert-results.py fails if jsonfile exists

If the file given in the --jsonfile parameter already exists, reporting/convert-results.py fails with:

Traceback (most recent call last):
  File "mondo-sam/reporting/convert_results.py", line 135, in <module>
    convert_results_to_csv(json_objects, args.csvfile)
  File "mondo-sam/reporting/convert_results.py", line 62, in convert_results_to_csv
    keys = set(result["Case"].keys())
TypeError: list indices must be integers, not str

Location does not exist on Publish page

I cannot publish images from Shiny. There is always a "Location does not exist" message under the Save diagrams button. It seems that this occurs with both relative and absolute file paths (on Windows).

Support reloading results from same file

In the current version, if the input file has changed content, it cannot be reloaded from the Shiny UI. However, renaming the file and using "Choose file" works.

It would be great if the file loader would reload the file even when the same path is given.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.