Commit db227ef2 authored by Jonathan Shahen's avatar Jonathan Shahen
Browse files

Adding more infor to the README.md and ran a test to verify everything still works

parent 42831fc7
......@@ -3,3 +3,11 @@ ConverterCUIPreviousCommand.txt
logs/
CUIPreviousCommand.txt
doc/
programs/nomad-jonathan-edit/jon_log.txt
programs/nomad-jonathan-edit/settings.txt
programs/nomad-jonathan-edit/placementMapHistory.csv
programs/nomad-jonathan-edit/inputPlacement.txt
programs/nomad-jonathan-edit/fake.dat
data/instance.cnf
saftey-save-2.txt
safety-save-1.txt
# Vagabond Project
Vagabond Project
================
This project is what produced the results in "The Overhead from Combating Side-Channels in Cloud Systems using VM-Scheduling"
## Compiling and Running
---
Prerequisites
-------------
The following needs to be installed in order for Vagabond needs to be installed:
* Java 1.8 JDK
* Eclipse Oxygen or above (use lower at your own risk -- untested by author)
* `opl1261.dll` or `opl1261.so` (must be on your LD_LIBRARY_PATH)
* This is required for running the ILP solver
* Can be found when installing CPLEX Studio 12.61
* Mine is set to `LD_LIBRARY_PATH=C:\Program Files\IBM\ILOG\CPLEX_Studio1261\opl\bin\x64_win64`\
(in environment variables on windows 10)
* circuit.jar (within the lib folder and included into the build within eclipse)
* This is required for running the CNF-SAT solver (converts Circuit SAt into CNF-SAT)
**Note:** This list is not extensive, please email one of the authors if you find a prerequisite that is not on this list.
## Help
There is a wiki setup, it works in on git.uwaterloo.ca by clicking on the "wiki" tab.
---
Importing and Compiling
----------------------
It is highly suggested to use eclipse to compile and run the java source code.
If you do not have access to the wiki, please ask one of the authors.
\ No newline at end of file
In eclipse you can add the project by following the steps below:
1. `File -> Import`
1. `General -> Existing Projects into Workspace`, then click `Next >`
1. `Root Directory:` navigating to the top directory in this repo (where `.project` file is)
1. Click `Finish`
1. You will now have the project imported into eclipse
1. At this point you might need to install Java 1.8 JDK and fix any classpath issues that show up within eclipse
---
Running Vagabond within Eclipse
-------------------------------
Once the Vagabond project has been imported into eclipse and there are no problems showing up, we can then run a sample test.
Follow the below steps to run a simple test to ensure that Vagabond is working.
Later in this document we explain how to run custom tests.
1. Within eclipse's Package Explorer, navigate to `Vagabond->src->vagabond` and open `VagabondCUI.java`
1. The file `VagabondCUI` holds a command line interface that can be easily used within eclipse
1. Right click on `VagabondCUI.java` and in the context menu select `Run As -> Java Application` (the wording might be slightly different depending on the eclipse setup)
1. The previous step will make eclipse build Vagabond and then run `public static void main()` within `VagabondCUI`
1. You will see a window open (usually on the bottom of eclipse's editor window) called `Console`
* If you do not see the `Console` window, you can show it via the menu `Window -> Show View -> Console`
1. In the console window, Vagabond's `Help Message` is printed (this tells you all accepted commands)
1. Below the help message is a list of `Common Commands`; feel free to try any of these options, just copy the whole line (including the "!e") and paste it into the `Console` window
1. Below the common commands is the `Commandline Argument` input, this is where you can write your commands
1. You can write as many commands as you want, as many new lines, the program waits until it reads "!e" to send the command to Vagabond
1. A simple command to try is:
```
-loglevel verbose -settings tests/simpletestILP-Random.properties !e
```
1. This is what the output should look like:
```
```
---
Settings File
-------------
The settings file is a simple text file, where each setting is stored on a new line (can be "\n" or "\r\n").
A setting consists of a setting name, followed by an equals sign ("=") and the setting value.
Here is an example settings file:
```
# I am a comment
numberOfMachines=3
numberOfMachineSlots=3
numberOfClients=4
numberOfVMsPerClient=2
fillInEmpty=true
numberOfEpochs=10
slidingWindow=5
placement=randomPlacement
reduction=nomad
migrationBudget=3
# OPTIONAL: Can Comment these the lines below
seed=12
```
The following are settings accepted by the program:
* **numberOfMachines** -
* **numberOfMachineSlots** -
* **numberOfClients** -
* **numberOfVMsPerClient** -
* **fillInEmpty** -
* **numberOfEpochs** -
* **slidingWindow** -
* **placement** -
* **reduction** -
* **migrationBudget** -
* **seed** - (Optional)
---
FAQ
-----
---
---
Sample Output
--------------
**Running the command:** `-loglevel verbose -settings tests/simpletestILP-Random.properties !e`
**Sample Output:**
```
REMOVED THE HELP AND COMMON COMMANDS TO SAVE SPACE IN README.md
Previous Command ('!p' to use the previous command): -loglevel verbose -settings tests/simpletestILP-Random.properties !e
Enter Commandline Argument ('!e' to run): !p
Commands: [-loglevel, verbose, -settings, tests/simpletestILP-Random.properties, !e]
2018/05/28 15:57:28.815-0400 - [vagabond.VagabondInstance.setupResultOptions #1]:
[ INFO] [OPTION] Results File: vagabond.results.txt
2018/05/28 15:57:28.829-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Input Settings: VagabondSettings{placementAlgorithm=randomPlacement, reductionAlgorithm=ilp, minimizeMaxClientToClientInfoLeak=false, numberOfEpochs=10, slidingWindow=5, migrationBudget=3, relativeMIPGapTolerance=0.0, numberOfMachines=3, numberOfMachineSlots=3, numberOfClients=4, numberOfVMsPerClient=2, fillInEmptySpots=false, seed=12, settingsFile=tests/simpletestILP-Random.properties, }
2018/05/28 15:57:28.829-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Generating Placement Map Using: randomPlacement
2018/05/28 15:57:28.832-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] PlacementMap(3 Machines; 4 Clients; 8 Total VMS)
Machine 0 {0<0,0>, 7<3,1>, 6<3,0>}
Machine 1 {2<1,0>, 3<1,1>, 1<0,1>}
Machine 2 {4<2,0>, 5<2,1>}
2018/05/28 15:57:28.835-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Starting EPOCH 0 LOOP
2018/05/28 15:57:28.838-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Reducing for EPOCH 0
2018/05/28 15:57:28.960-0400 - [vagabond.reduction.ilp.ReduceToILP.reduce #1]:
[ INFO] Using the OPL Model: D:\Work\Masters_Phd\workspace (GradSchool)\Vagabond\data\ilp_sum.mod
[ILPCustomDataSource] r = 2
2018/05/28 15:57:29.120-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Loading the Solver for EPOCH 0
2018/05/28 15:57:29.120-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Running the Solver for EPOCH 0
2018/05/28 15:57:29.181-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX OBJECTIVE: 16.0
2018/05/28 15:57:29.182-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Time: 0.156
2018/05/28 15:57:29.184-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Status: Optimal
Number of Moves: 1
2018/05/28 15:57:29.198-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Placement Map at the END of Epoch 0
PlacementMap(3 Machines; 4 Clients; 8 Total VMS)
Machine 0 {7<3,1>, 6<3,0>}
Machine 1 {1<0,1>, 2<1,0>, 3<1,1>}
Machine 2 {0<0,0>, 4<2,0>, 5<2,1>}
2018/05/28 15:57:29.199-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Epoch 0 took 0.364 seconds to finish
2018/05/28 15:57:29.199-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Starting EPOCH 1 LOOP
2018/05/28 15:57:29.199-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Reducing for EPOCH 1
2018/05/28 15:57:29.199-0400 - [vagabond.reduction.ilp.ReduceToILP.reduce #1]:
[ INFO] Using the OPL Model: D:\Work\Masters_Phd\workspace (GradSchool)\Vagabond\data\ilp_sum.mod
[ILPCustomDataSource] r = 2
2018/05/28 15:57:29.204-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Loading the Solver for EPOCH 1
2018/05/28 15:57:29.204-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Running the Solver for EPOCH 1
2018/05/28 15:57:29.239-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX OBJECTIVE: 24.0
2018/05/28 15:57:29.240-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Time: 0.218
2018/05/28 15:57:29.240-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Status: Optimal
Number of Moves: 0
2018/05/28 15:57:29.242-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Placement Map at the END of Epoch 1
PlacementMap(3 Machines; 4 Clients; 8 Total VMS)
Machine 0 {7<3,1>, 6<3,0>}
Machine 1 {1<0,1>, 2<1,0>, 3<1,1>}
Machine 2 {0<0,0>, 4<2,0>, 5<2,1>}
2018/05/28 15:57:29.242-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Epoch 1 took 0.043 seconds to finish
2018/05/28 15:57:29.242-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Starting EPOCH 2 LOOP
2018/05/28 15:57:29.244-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Reducing for EPOCH 2
2018/05/28 15:57:29.244-0400 - [vagabond.reduction.ilp.ReduceToILP.reduce #1]:
[ INFO] Using the OPL Model: D:\Work\Masters_Phd\workspace (GradSchool)\Vagabond\data\ilp_sum.mod
[ILPCustomDataSource] r = 2
2018/05/28 15:57:29.249-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Loading the Solver for EPOCH 2
2018/05/28 15:57:29.250-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Running the Solver for EPOCH 2
2018/05/28 15:57:29.307-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX OBJECTIVE: 32.0
2018/05/28 15:57:29.307-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Time: 0.281
2018/05/28 15:57:29.307-0400 - [vagabond.reduction.ilp.RunSolverILP.run #1]:
[ INFO] CPLEX Status: Optimal
Number of Moves: 0
2018/05/28 15:57:29.309-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Placement Map at the END of Epoch 2
PlacementMap(3 Machines; 4 Clients; 8 Total VMS)
Machine 0 {7<3,1>, 6<3,0>}
Machine 1 {1<0,1>, 2<1,0>, 3<1,1>}
Machine 2 {0<0,0>, 4<2,0>, 5<2,1>}
REMOVED TO SAVE SPACE WITHIN README.md (10 EPOCHS RUN)
2018/05/28 15:57:29.663-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Writing Timing Results to D:\Work\Masters_Phd\workspace (GradSchool)\Vagabond\logs\vagabond.timing.csv
2018/05/28 15:57:29.711-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] Writing Results to D:\Work\Masters_Phd\workspace (GradSchool)\Vagabond\logs\vagabond.results.txt
2018/05/28 15:57:29.716-0400 - [vagabond.VagabondInstance.run #1]:
[ INFO] [EOF] Vagabond Instance done running
```
......@@ -294,3 +294,4 @@ Date Time,Test Name,Machines,Clients,Slots,Max VMs/Client,Min VMs/Client,Placeme
2017/09/22 08:59:28.109-0400,tilOverEpochs_nomad_mig_2,6,6,3,3,3,randomHalfFull_6,18,2,0.5,36,5,10,15,nomad,Sum CCIL,50,40,0,4,0,40,4,9,9,68;48;39;32;27;24;18;13;9;0;1;1;1;1;1;523,0=16;1=4;2=2;3=0;4=8,0=30,40;34;28;24;20;18;14;10;6;0;0;0;0;0;0;0,4;4;4;4;4;4;4;5;3;0;0;0;0;0;0;0,0;1;2;2;2;1;2;2;1;0;0;0;0;0;0,9,530,Look at vagabond.stats.csv column: List TIL
2017/09/22 09:00:38.831-0400,tilOverEpochs_ilp_mig_2,6,6,6,3,3,randomHalfFull_6,18,2,0.5,36,5,10,15,ilp,Sum CCIL,74,40,0,4,0,40,4,5,5,272;239;144;131;116;22;22;24;23;22;22;22;21;21;23,0=16;1=4;2=2;3=0;4=8,0=30,40;28;24;14;10;0;0;0;0;0;0;0;0;0;0;0,4;4;4;4;3;0;0;0;0;0;0;0;0;0;0;0,2;2;2;2;2;0;0;0;0;0;0;0;0;0;0,5,1133,Look at vagabond.stats.csv column: List TIL
2017/09/22 09:00:54.715-0400,tilOverEpochs_cnf_mig_2,6,6,6,3,3,randomHalfFull_6,18,2,0.5,36,5,10,15,cnf,Sum CCIL,2108,40,0,4,0,40,4,5,5,5011;4685;3979;3600;3530;2883;2503;2106;1414;334;296;317;312;328;327,0=16;1=4;2=2;3=0;4=8,0=30,40;28;20;12;6;0;0;0;0;0;0;0;0;0;0;0,4;4;4;2;3;0;0;0;0;0;0;0;0;0;0;0,2;2;2;2;1;0;0;0;0;0;0;0;0;0;0,5,31630,Look at vagabond.stats.csv column: List TIL
2018/05/28 03:57:25.804-0400,,3,4,3,2,2,Random_12,8,3,0.8888888888888888,9,5,12,10,ilp,Sum CCIL,82,8,8,2,2,0,0,0,0,364;43;67;34;103;57;40;39;46;34,0=8;1=0;2=4,0=8;1=0;2=4,8;8;8;8;8;8;8;8;8;8;8,2;2;2;2;2;2;2;2;2;2;2,1;0;0;0;0;0;0;0;0;0,1,834,
wiki @ 609313bf
Subproject commit 609313bf3f89ae14a42db030cc8e5650085b57ad
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment