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

create minimal models (currently, INJECT and REPAIR are the same)

parent 04d81d27
Branches
No related tags found
No related merge requests found
Showing
with 24172 additions and 24049 deletions
* *
!railway-minimal-*.*
!railway-*-1.* !railway-*-1.*
!railway-*-1-*.* !railway-*-1-*.*
!railway-*-2.* !railway-*-2.*
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -28,3 +28,4 @@ include ':trainbenchmark-tool-jastadd-relast-incremental' ...@@ -28,3 +28,4 @@ include ':trainbenchmark-tool-jastadd-relast-incremental'
include ':trainbenchmark-tool-tinkergraph' include ':trainbenchmark-tool-tinkergraph'
include ':trainbenchmark-tool-viatra' include ':trainbenchmark-tool-viatra'
include ':trainbenchmark-tool-viatra-patterns' include ':trainbenchmark-tool-viatra-patterns'
include ':trainbenchmark-alternate-scripts'
\ No newline at end of file
...@@ -6,6 +6,8 @@ dependencies { ...@@ -6,6 +6,8 @@ dependencies {
compile project(':trainbenchmark-generator-emf') compile project(':trainbenchmark-generator-emf')
compile project(':trainbenchmark-generator-graph-tinkerpop') compile project(':trainbenchmark-generator-graph-tinkerpop')
compile project(':trainbenchmark-generator-json4ag') compile project(':trainbenchmark-generator-json4ag')
compile project(':trainbenchmark-generator-json4ag-special')
compile project(':trainbenchmark-generator-relast')
compile project(':trainbenchmark-generator-dot') compile project(':trainbenchmark-generator-dot')
compile project(':trainbenchmark-tool') compile project(':trainbenchmark-tool')
compile project(':trainbenchmark-tool-jastadd-base') compile project(':trainbenchmark-tool-jastadd-base')
...@@ -15,11 +17,11 @@ dependencies { ...@@ -15,11 +17,11 @@ dependencies {
compile project(':trainbenchmark-tool-jastadd-optimized') compile project(':trainbenchmark-tool-jastadd-optimized')
compile project(':trainbenchmark-tool-jastadd-optimized-base') compile project(':trainbenchmark-tool-jastadd-optimized-base')
compile project(':trainbenchmark-tool-jastadd-optimized-incremental') compile project(':trainbenchmark-tool-jastadd-optimized-incremental')
// compile project(':trainbenchmark-tool-jastadd-specialized') compile project(':trainbenchmark-tool-jastadd-specialized')
// compile project(':trainbenchmark-tool-jastadd-specialized-base') compile project(':trainbenchmark-tool-jastadd-specialized-base')
// compile project(':trainbenchmark-tool-jastadd-specialized-incremental') compile project(':trainbenchmark-tool-jastadd-specialized-incremental')
// compile project(':trainbenchmark-tool-jastadd-relast') compile project(':trainbenchmark-tool-jastadd-relast')
// compile project(':trainbenchmark-tool-jastadd-relast-incremental') compile project(':trainbenchmark-tool-jastadd-relast-incremental')
compile project(':trainbenchmark-tool-tinkergraph') compile project(':trainbenchmark-tool-tinkergraph')
compile project(':trainbenchmark-tool-viatra') compile project(':trainbenchmark-tool-viatra')
} }
......
package de.tudresden.inf.st.train.scripts; package de.tudresden.inf.st.train.scripts;
import de.tudresden.inf.st.trainbenchmark.generator.json4ag.config.Json4AgGeneratorConfigBuilder; import de.tudresden.inf.st.trainbenchmark.generator.json4ag.config.Json4AgGeneratorConfigBuilder;
import de.tudresden.inf.st.trainbenchmark.generator.json4agspecial.config.Json4AgSpecialGeneratorConfigBuilder;
import de.tudresden.inf.st.trainbenchmark.generator.relast.config.RelASTGeneratorConfigBuilder;
import hu.bme.mit.trainbenchmark.generator.config.*; import hu.bme.mit.trainbenchmark.generator.config.*;
import hu.bme.mit.trainbenchmark.generator.emf.config.EmfGeneratorConfigBuilder; import hu.bme.mit.trainbenchmark.generator.emf.config.EmfGeneratorConfigBuilder;
import hu.bme.mit.trainbenchmark.generator.graph.tinkerpop.config.TinkerGraphFormat; import hu.bme.mit.trainbenchmark.generator.graph.tinkerpop.config.TinkerGraphFormat;
import hu.bme.mit.trainbenchmark.generator.graph.tinkerpop.config.TinkerGraphGeneratorConfigBuilder; import hu.bme.mit.trainbenchmark.generator.graph.tinkerpop.config.TinkerGraphGeneratorConfigBuilder;
import hu.bme.mit.trainbenchmark.generator.minimal.*;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -41,7 +44,9 @@ public class BenchmarkSettingsAvailableFormats { ...@@ -41,7 +44,9 @@ public class BenchmarkSettingsAvailableFormats {
return Arrays.asList( return Arrays.asList(
new EmfGeneratorConfigBuilder(), new EmfGeneratorConfigBuilder(),
new TinkerGraphGeneratorConfigBuilder().setGraphFormat(TinkerGraphFormat.GRAPHML), new TinkerGraphGeneratorConfigBuilder().setGraphFormat(TinkerGraphFormat.GRAPHML),
new Json4AgGeneratorConfigBuilder() new Json4AgGeneratorConfigBuilder(),
new Json4AgSpecialGeneratorConfigBuilder(),
new RelASTGeneratorConfigBuilder()
); );
} }
......
...@@ -2,6 +2,7 @@ package de.tudresden.inf.st.train.scripts; ...@@ -2,6 +2,7 @@ package de.tudresden.inf.st.train.scripts;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import hu.bme.mit.trainbenchmark.config.ExecutionConfig; import hu.bme.mit.trainbenchmark.config.ExecutionConfig;
import hu.bme.mit.trainbenchmark.generator.ModelSerializer;
import hu.bme.mit.trainbenchmark.generator.config.*; import hu.bme.mit.trainbenchmark.generator.config.*;
import hu.bme.mit.trainbenchmark.generator.runner.GeneratorRunner; import hu.bme.mit.trainbenchmark.generator.runner.GeneratorRunner;
...@@ -32,10 +33,29 @@ public class GenerateMain { ...@@ -32,10 +33,29 @@ public class GenerateMain {
System.out.println(builders); System.out.println(builders);
ExecutionConfig ec = new ExecutionConfig(4000, 8000, bbs.isDryRun()); ExecutionConfig ec = new ExecutionConfig(4000, 8000, bbs.isDryRun());
// start generating (exclude Scenario.MINIMAL) // generating the MINIMAL scenario
for (ModelType modelType : ModelType.values()) {
builders.forEach( generatorConfigBuilder -> {
try {
System.out.println("Scenario: " + Scenario.MINIMAL + ", type: " + modelType);
GeneratorConfigBase configBase = new GeneratorConfigBaseBuilder()
.setSize(0).setModelType(modelType).setScenario(Scenario.MINIMAL).createGeneratorConfigBase();
GeneratorConfig config = generatorConfigBuilder.setConfigBase(configBase).createConfig();
int exitValue = GeneratorRunner.run(config, ec);
if (exitValue != 0) {
System.out.println("Timeout or error occurred. Error code: " + exitValue);
}
} catch (Exception e) {
System.out.println("Exception occurred during execution.");
}
});
}
// generating the other scenarios
for (Scenario scenario : new Scenario[]{Scenario.BATCH, Scenario.INJECT, Scenario.REPAIR}) { for (Scenario scenario : new Scenario[]{Scenario.BATCH, Scenario.INJECT, Scenario.REPAIR}) {
builders.forEach( generatorConfigBuilder -> { builders.forEach( generatorConfigBuilder -> {
try { try {
for (int size = bbs.getMinSize(); size <= bbs.getMaxSize(); size *= 2) { for (int size = bbs.getMinSize(); size <= bbs.getMaxSize(); size *= 2) {
System.out.println("Scenario: " + scenario + ", size: " + size); System.out.println("Scenario: " + scenario + ", size: " + size);
...@@ -56,6 +76,8 @@ public class GenerateMain { ...@@ -56,6 +76,8 @@ public class GenerateMain {
} }
}); });
} }
} }
} }
......
...@@ -16,17 +16,14 @@ ...@@ -16,17 +16,14 @@
"formats": [ "formats": [
"emf", "emf",
"json4ag", "json4ag",
"json4ag-special",
"relast",
"graph-tinkerpop" "graph-tinkerpop"
], ],
"jvmSettings": [ "jvmSettings": [
{ {
"applyTo": ["*"], "applyTo": ["*"],
"args": "-Xms%(Xms) -Xmx%(Xmx) -server -Xverify:none" "args": "-Xms%(Xms) -Xmx%(Xmx) -server -Xverify:none"
// "args": "-Xms%(Xms) -Xmx%(Xmx) -server -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=dumponexit=true -Xverify:none"
},
{
"applyTo": ["Racr (CPP)", "Racr (Python)", "Racr (Scheme)"],
"args": "-Xms50M -Xmx50M -server -Xverify:none"
} }
] ]
} }
...@@ -18,11 +18,13 @@ public final class GeneratorConfigBase extends AbstractConfigBase { ...@@ -18,11 +18,13 @@ public final class GeneratorConfigBase extends AbstractConfigBase {
protected final Scenario scenario; protected final Scenario scenario;
protected final int size; protected final int size;
protected final ModelType modelType;
protected GeneratorConfigBase(final Scenario scenario, final int size) { protected GeneratorConfigBase(final Scenario scenario, final int size, ModelType type) {
super(); super();
this.scenario = scenario; this.scenario = scenario;
this.size = size; this.size = size;
this.modelType = type;
} }
public Scenario getScenario() { public Scenario getScenario() {
...@@ -33,12 +35,20 @@ public final class GeneratorConfigBase extends AbstractConfigBase { ...@@ -33,12 +35,20 @@ public final class GeneratorConfigBase extends AbstractConfigBase {
return size; return size;
} }
public ModelType getModelType() {
return modelType;
}
public String getModelFileNameWithoutExtension() { public String getModelFileNameWithoutExtension() {
final String variant = scenario.toString().toLowerCase(); final String variant = scenario.toString().toLowerCase();
final StringBuilder filenameBuilder = new StringBuilder(); final StringBuilder filenameBuilder = new StringBuilder();
filenameBuilder.append("railway-" + variant + "-"); filenameBuilder.append("railway-" + variant + "-");
if (size == 0) {
filenameBuilder.append(modelType);
} else {
filenameBuilder.append(size); filenameBuilder.append(size);
}
return filenameBuilder.toString(); return filenameBuilder.toString();
} }
......
...@@ -5,6 +5,7 @@ import com.google.common.base.Preconditions; ...@@ -5,6 +5,7 @@ import com.google.common.base.Preconditions;
public final class GeneratorConfigBaseBuilder { public final class GeneratorConfigBaseBuilder {
private Scenario scenario; private Scenario scenario;
private Integer size; private Integer size;
private ModelType type;
public GeneratorConfigBaseBuilder setScenario(Scenario scenario) { public GeneratorConfigBaseBuilder setScenario(Scenario scenario) {
this.scenario = scenario; this.scenario = scenario;
...@@ -16,10 +17,18 @@ public final class GeneratorConfigBaseBuilder { ...@@ -16,10 +17,18 @@ public final class GeneratorConfigBaseBuilder {
return this; return this;
} }
public GeneratorConfigBaseBuilder setModelType(ModelType modelType) {
this.type = modelType;
return this;
}
public GeneratorConfigBase createGeneratorConfigBase() { public GeneratorConfigBase createGeneratorConfigBase() {
Preconditions.checkNotNull(scenario); Preconditions.checkNotNull(scenario);
Preconditions.checkNotNull(size); Preconditions.checkNotNull(size);
return new GeneratorConfigBase(scenario, size); if (size == 0) {
Preconditions.checkNotNull(type);
}
return new GeneratorConfigBase(scenario, size, type);
} }
} }
package hu.bme.mit.trainbenchmark.generator.config;
public enum ModelType {
CONNECTEDSEGMENTS_INJECT("ConnectedSegmentsInject"),
POSLENGTH_INJECT("PosLengthInject"),
ROUTESENSOR_INJECT("RouteSensorInject"),
SEMAPHORENEIGHBOR_INJECT("SemaphoreNeighborInject"),
SWITCHMONITORED_INJECT("SwitchMonitoredInject"),
SWITCHSET_INJECT("SwitchSetInject"),
// repair operations
CONNECTEDSEGMENTS_REPAIR("ConnectedSegmentsRepair"),
POSLENGTH_REPAIR("PosLengthRepair"),
ROUTESENSOR_REPAIR("RouteSensorRepair"),
SEMAPHORENEIGHBOR_REPAIR("SemaphoreNeighborRepair"),
SWITCHMONITORED_REPAIR("SwitchMonitoredRepair"),
SWITCHSET_REPAIR("SwitchSetRepair");
private String name;
ModelType(final String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
package hu.bme.mit.trainbenchmark.generator.minimal; package hu.bme.mit.trainbenchmark.generator.minimal;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.CONNECTS_TO; import hu.bme.mit.trainbenchmark.generator.ModelSerializer;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.ELEMENTS; import hu.bme.mit.trainbenchmark.generator.config.GeneratorConfig;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.MONITORED_BY;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.REGION;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.SEGMENT;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.SENSOR;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.SENSORS;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import hu.bme.mit.trainbenchmark.generator.ModelSerializer; import static hu.bme.mit.trainbenchmark.constants.ModelConstants.*;
import hu.bme.mit.trainbenchmark.generator.config.GeneratorConfig;
public class MinimalConnectedSegmentsGenerator extends MinimalModelGenerator { public class MinimalConnectedSegmentsInjectGenerator extends MinimalModelGenerator {
public MinimalConnectedSegmentsGenerator(final ModelSerializer<?> serializer, final GeneratorConfig generatorConfig) { public MinimalConnectedSegmentsInjectGenerator(final ModelSerializer<?> serializer, final GeneratorConfig generatorConfig) {
super(serializer, generatorConfig); super(serializer, generatorConfig);
} }
......
package hu.bme.mit.trainbenchmark.generator.minimal;
import hu.bme.mit.trainbenchmark.generator.ModelSerializer;
import hu.bme.mit.trainbenchmark.generator.config.GeneratorConfig;
import java.io.FileNotFoundException;
import java.io.IOException;
import static hu.bme.mit.trainbenchmark.constants.ModelConstants.*;
public class MinimalConnectedSegmentsRepairGenerator extends MinimalModelGenerator {
public MinimalConnectedSegmentsRepairGenerator(final ModelSerializer<?> serializer, final GeneratorConfig generatorConfig) {
super(serializer, generatorConfig);
}
@Override
protected void buildPatternModel() throws FileNotFoundException, IOException {
final Object region = serializer.createVertex(REGION);
final Object sensor = serializer.createVertex(SENSOR);
serializer.createEdge(SENSORS, region, sensor);
final Object segment1 = serializer.createVertex(SEGMENT);
final Object segment2 = serializer.createVertex(SEGMENT);
final Object segment3 = serializer.createVertex(SEGMENT);
final Object segment4 = serializer.createVertex(SEGMENT);
final Object segment5 = serializer.createVertex(SEGMENT);
final Object segment6 = serializer.createVertex(SEGMENT);
serializer.createEdge(ELEMENTS, region, segment1);
serializer.createEdge(ELEMENTS, region, segment2);
serializer.createEdge(ELEMENTS, region, segment3);
serializer.createEdge(ELEMENTS, region, segment4);
serializer.createEdge(ELEMENTS, region, segment5);
serializer.createEdge(ELEMENTS, region, segment6);
serializer.createEdge(CONNECTS_TO, segment1, segment2);
serializer.createEdge(CONNECTS_TO, segment2, segment3);
serializer.createEdge(CONNECTS_TO, segment3, segment4);
serializer.createEdge(CONNECTS_TO, segment4, segment5);
serializer.createEdge(CONNECTS_TO, segment5, segment6);
serializer.createEdge(MONITORED_BY, segment1, sensor);
serializer.createEdge(MONITORED_BY, segment2, sensor);
serializer.createEdge(MONITORED_BY, segment3, sensor);
serializer.createEdge(MONITORED_BY, segment4, sensor);
serializer.createEdge(MONITORED_BY, segment5, sensor);
serializer.createEdge(MONITORED_BY, segment6, sensor);
}
}
...@@ -14,7 +14,7 @@ public abstract class MinimalModelGenerator extends ModelGenerator { ...@@ -14,7 +14,7 @@ public abstract class MinimalModelGenerator extends ModelGenerator {
} }
@Override @Override
protected void constructModel() throws FileNotFoundException, IOException { public void constructModel() throws FileNotFoundException, IOException {
serializer.beginTransaction(); serializer.beginTransaction();
buildPatternModel(); buildPatternModel();
serializer.endTransaction(); serializer.endTransaction();
......
...@@ -14,9 +14,9 @@ import com.google.common.collect.ImmutableMap; ...@@ -14,9 +14,9 @@ import com.google.common.collect.ImmutableMap;
import hu.bme.mit.trainbenchmark.generator.ModelSerializer; import hu.bme.mit.trainbenchmark.generator.ModelSerializer;
import hu.bme.mit.trainbenchmark.generator.config.GeneratorConfig; import hu.bme.mit.trainbenchmark.generator.config.GeneratorConfig;
public class MinimalPosLengthGenerator extends MinimalModelGenerator { public class MinimalPosLengthInjectGenerator extends MinimalModelGenerator {
public MinimalPosLengthGenerator(final ModelSerializer<?> serializer, final GeneratorConfig generatorConfig) { public MinimalPosLengthInjectGenerator(final ModelSerializer<?> serializer, final GeneratorConfig generatorConfig) {
super(serializer, generatorConfig); super(serializer, generatorConfig);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment