Skip to content
Snippets Groups Projects
Commit 8308a9ce authored by Johannes Mey's avatar Johannes Mey
Browse files

update docker and readme

parent e445c618
No related branches found
No related tags found
No related merge requests found
language: java
jdk:
- oraclejdk8
install: true
script:
- scripts/get-neo4j.sh
- ./gradlew inits build -x :trainbenchmark-generator-sql:test -x :trainbenchmark-tool-mysql:test -x :trainbenchmark-tool-rdf4j:test -x :trainbenchmark-tool-blazegraph:test --stacktrace
notifications:
slack: ftsrg:YMFDeJB1YkOli9BXOKvtoB1Y
email: false
on_success: change
on_failure: always
branches:
except:
- ingraph
...@@ -29,9 +29,9 @@ RUN Rscript /trainbenchmark/trainbenchmark-reporting/install.R ...@@ -29,9 +29,9 @@ RUN Rscript /trainbenchmark/trainbenchmark-reporting/install.R
WORKDIR /trainbenchmark WORKDIR /trainbenchmark
COPY trainbenchmark/ /trainbenchmark/ COPY trainbenchmark/ /trainbenchmark/
RUN sudo chown -R user:user /trainbenchmark RUN chown -R user:user /trainbenchmark
COPY docker /trainbenchmark/docker COPY docker /trainbenchmark/docker
RUN sudo chown -R user:user /trainbenchmark/docker RUN chown -R user:user /trainbenchmark/docker
COPY docker/bashrc /home/user/.bashrc COPY docker/bashrc /home/user/.bashrc
RUN ./gradlew --no-daemon preprocess RUN ./gradlew --no-daemon preprocess
......
...@@ -34,6 +34,27 @@ The following table shows the relation of the terminology used in the paper and ...@@ -34,6 +34,27 @@ The following table shows the relation of the terminology used in the paper and
## The Grammar Extension Preprocessor `RelAst` ## The Grammar Extension Preprocessor `RelAst`
To transform the grammar extension we provide a preprocessor for JastAdd
This preprocessor including its source code is provided in the `preprocessor` subdirectory.
Its usage is:
- Running the preprocessor `java -jar relast-compiler.jar`
Run preprocessor on train benchmark (output written to standard output):
- `cat examples/TrainBenchmark.relast`
- `java -jar relast-compiler.jar examples/TrainBenchmark.relast`
Run preprocessor and write output to files:
`java -jar relast-compiler.jar examples/TrainBenchmark.relast --file`
`cat examples/TrainBenchmarkGen.ast`
`cat examples/TrainBenchmarkGen.jadd`
Run preprocessor and write output to files (with a different list class):
`java -jar relast-compiler.jar examples/TrainBenchmark.relast --listClass=MyListClass --file`
`cat examples/TrainBenchmarkGen.ast`
`cat examples/TrainBenchmarkGen.jadd`
## The Train Benchmark ## The Train Benchmark
...@@ -117,9 +138,47 @@ However, since there are some software requirements imposed by the benchmark, pa ...@@ -117,9 +138,47 @@ However, since there are some software requirements imposed by the benchmark, pa
#### Running the Benchmark with Docker #### Running the Benchmark with Docker
##### Loading the Docker Image
#### Running the Benchmark directly - Variant 1 (recommended): Load the provided docker image
- Prerequisites: An installation of Docker in the `PATH`
- Steps:
- Unpack the provided archive and open a terminal in the extracted directory
- `docker load --input trainbenchmark-docker.tar`
- Variant 2: Build the docker image from the provided Dockerfile
- Prerequisites: An installation of Docker in the `PATH`
- Steps:
- Unpack the provided archive and open a terminal in the extracted directory
- `docker build -t trainbenchmark .`
- `docker run -it trainbenchmark`
##### Running the Docker Image
- `docker run -it trainbenchmark`
To make the results available outside the container, run
`docker run -it -v "$PWD"/docker-results:/trainbenchmark/results:Z -v "$PWD"/docker-diagrams:/trainbenchmark/diagrams:Z trainbenchmark`
- A command prompt is opened and some information is displayed
- Follow the instructions below
#### Running the Benchmark directly
- For running a standard run,
- `./run_small`
- `./run_medium`
- `./run_full`
- For running a custom run,
- run `./gradlew preprocess` to generate the
- run `./gradlew build shadowJar -x test`
- run `./gradlew initScripts`
- configure the scripts either by running `./scripts/configure.sh 1 <MAXSIZE> <TIMEOUT in s> <REPETITIONS>`
Where MAXSIZE is one of 2,4,8,16,32,64,128,256,512,1024. The larger sizes use **a lot of** disk space!
- *Alternatively*, run ``
- run `./gradlew initScripts`
- run `./gradlew generate`
- run the benchmark
- run `./gradlew individualInjectBenchmark` for the *inject* scenarios
- run `./gradlew individualRepairBenchmark` for the *repair* scenarios
- Plot the diagrams for the current run: `./gradlew plotIndividual`
- The resulting data are in the `results` and the `diagrams` folder
- When running with docker, the data are also in `docker-results` and `docker-diagrams` on the host machine.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment