Co-location optimized elastic runner for microservices
Reference implementation/prototype of the CaaS middleware developed in the course of the corresponding master thesis at TU Wien / Distributed Systems Group.
- Java 11
- Maven
- CPLEX 12.10.0 installed (free academic version available at https://www.ibm.com/academic/technology/data-science)
First, we need to install the CPLEX JAR library in the local Maven repository for later use.
On macOS, the installation command would look like this:
$ mvn install:install-file \
-DgroupId=cplex \
-DartifactId=cplex \
-Dversion=12.10.0 \
-Dpackaging=jar \
-Dfile=/Applications/CPLEX_Studio1210/cplex/lib/cplex.jar
Set the -Dfile path accordingly to point at the correct location of the cplex.jar file inside your CPLEX installation.
To build Cooper:
$ mvn clean install
The following command runs the compiled Cooper JAR with all necessary arguments set:
$ java -jar \
-Djava.library.path=/Applications/CPLEX_Studio1210/cplex/bin/x86-64_osx \
-Dscenario=a \
-Dstrategy=ILP-NC \
-Dmultiplicator=1 \
target/Cooper.jar
-Djava.library.path: Set this to the binary path of your CPLEX installation (sample for macOS). Required for CPLEX to work at runtime.-Dscenario: The scenario configuration to use.-Dstrategy: The optimization strategy applied. Available values:ILP|ILP-NC|GA|GA-NC|FF-Dmultiplicator: An integer multiplication factor for load fixture.1|10|100
Apache License Version 2.0