Skip to content
Snippets Groups Projects
Select Git revision
  • f7ee331b95cb7a16cbabdb6ea20df5c31f3456e7
  • master default protected
  • artifact-evaluation
  • artifact-evaluation-poster
  • ci
5 results

BenchmarkScript.groovy

Blame
  • Forked from stgroup / trainbenchmark
    Source project has a limited visibility.
    BenchmarkScript.groovy 6.16 KiB
    
    import hu.bme.mit.trainbenchmark.config.ExecutionConfig
    import hu.bme.mit.trainbenchmark.constants.RailwayOperation
    import hu.bme.mit.trainbenchmark.benchmark.config.BenchmarkConfigBaseBuilder
    import hu.bme.mit.trainbenchmark.benchmark.config.BenchmarkConfigBuilder
    import hu.bme.mit.trainbenchmark.benchmark.config.ModelSetConfig
    import hu.bme.mit.trainbenchmark.benchmark.config.TransformationChangeSetStrategy
    import hu.bme.mit.trainbenchmark.benchmark.result.ResultHelper
    import hu.bme.mit.trainbenchmark.benchmark.runcomponents.BenchmarkReporter
    import hu.bme.mit.trainbenchmark.benchmark.runcomponents.BenchmarkRunner
    
    // tools
    import de.tudresden.inf.st.train.jastadd.config.JastaddNameLookupBenchmarkConfigBuilder
    import de.tudresden.inf.st.train.jastadd.config.JastaddNameLookupIncrementalBenchmarkConfigBuilder
    import de.tudresden.inf.st.train.jastadd.config.JastaddOptimizedBenchmarkConfigBuilder
    import de.tudresden.inf.st.train.jastadd.config.JastaddOptimizedIncrementalBenchmarkConfigBuilder
    import de.tudresden.inf.st.train.jastadd.config.JastaddSpecializedBenchmarkConfigBuilder
    import de.tudresden.inf.st.train.jastadd.config.JastaddSpecializedIncrementalBenchmarkConfigBuilder
    import hu.bme.mit.trainbenchmark.benchmark.tinkergraph.config.TinkerGraphBenchmarkConfigBuilder
    import hu.bme.mit.trainbenchmark.benchmark.viatra.config.ViatraBackend
    import hu.bme.mit.trainbenchmark.benchmark.viatra.config.ViatraBenchmarkConfigBuilder
    
    println('Please remember to stop all other Java processes.')
    println()
    println('If in doubt, check with this command:')
    println('$ ps auxw | grep jav[a]')
    println()
    println('If there are other Java processes, use:')
    println('$ killall -9 java')
    
    def benchmarkId = ResultHelper.createNewResultDir()
    ResultHelper.saveConfiguration(benchmarkId, "IndividualBenchmarkRepairScript.groovy")
    def ec = new ExecutionConfig(8000, 32000)
    
    def minSize = 1
    def maxSize = 512
    def timeout = 900
    def runs = 10
    
    println()
    println("############################################################")
    println('Benchmark parameters:')
    println("- execution config: ${ec}")
    println("- range: minSize=${minSize}, maxSize=${maxSize}")
    println("- timeout: ${timeout}")
    println("- runs: ${runs}")
    println("############################################################")
    println()
    
    // Set the reportUrl if you would like to receive a Slack notification when the benchmark finished.
    //reportUrl = "https://hooks.slack.com/services/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"
    
    def tools = [
    		new JastaddNameLookupBenchmarkConfigBuilder(),
    		new JastaddNameLookupIncrementalBenchmarkConfigBuilder(),
    		new JastaddOptimizedBenchmarkConfigBuilder(),
    		new JastaddOptimizedIncrementalBenchmarkConfigBuilder(),
    		new JastaddSpecializedBenchmarkConfigBuilder(),
    		new JastaddSpecializedIncrementalBenchmarkConfigBuilder(),
    		new TinkerGraphBenchmarkConfigBuilder(),
    		new ViatraBenchmarkConfigBuilder().setBackend(ViatraBackend.INCREMENTAL),
    ]
    
    def workloads = [
    
    	ConnectedSegments: [ modelVariant: "repair", operations: [RailwayOperation.CONNECTEDSEGMENTS_REPAIR], strategy: TransformationChangeSetStrategy.PROPORTIONAL, constant: 5, queryTransformationCount: 8],
    	PosLength:         [ modelVariant: "repair", operations: [RailwayOperation.POSLENGTH_REPAIR        ], strategy: TransformationChangeSetStrategy.PROPORTIONAL, constant: 5, queryTransformationCount: 8],
    	RouteSensor:       [ modelVariant: "repair", operations: [RailwayOperation.ROUTESENSOR_REPAIR      ], strategy: TransformationChangeSetStrategy.PROPORTIONAL, constant: 5, queryTransformationCount: 8],
    	SemaphoreNeighbor: [ modelVariant: "repair", operations: [RailwayOperation.SEMAPHORENEIGHBOR_REPAIR], strategy: TransformationChangeSetStrategy.PROPORTIONAL, constant: 5, queryTransformationCount: 8],
    	SwitchMonitored:   [ modelVariant: "repair", operations: [RailwayOperation.SWITCHMONITORED_REPAIR  ], strategy: TransformationChangeSetStrategy.PROPORTIONAL, constant: 5, queryTransformationCount: 8],