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

Changes made before Conference deadline

parent 9c288ca3
/* Created by Vagabond.reduction.ilp.WriteILPFile */
r=10;
numMachines=10;
numClients=5;
migrationBudget=3;
vmsPerClient=[10,10,10,10,10];
machineCapacity=[10,10,10,10,10,10,10,10,10,10];
// Client ID 1 x Client ID 2 ==> Information Leakage from Client ID 1 to Client ID 2 over the past X epochs
L=[
[0,10,10,10,10]
[10,0,10,10,10]
[10,10,0,10,10]
[10,10,10,0,10]
[10,10,10,10,0]
];
// Machine ID x Client ID ==> Sum of VMs on Machine ID that belong to Client ID
p0=[
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
[1,1,1,1,1]
];
......@@ -13,7 +13,7 @@
<ref name="ilpDataNoMig.dat" type="data">
</ref>
</config>
<config category="opl" default="true" name="ilpNoMigration_sum">
<config category="opl" default="false" name="ilpNoMigration_sum">
<ref name="ilpNoMigration_sum.mod" type="model">
</ref>
<ref name="ilpDataNoMig.dat" type="data">
......@@ -25,6 +25,12 @@
<ref name="ilpData.dat" type="data">
</ref>
</config>
<config category="opl" default="true" name="BUGTEST">
<ref name="ilpNoMigration_sum.mod" type="model">
</ref>
<ref name="outILP.dat" type="data">
</ref>
</config>
</configs>
</project>
\ No newline at end of file
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......
......@@ -21,11 +21,12 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
range zRange=0..t-1;
//range zRange=0..(2*t)-1;
// NEW Placement of the Sum of Client VMs per Machine
dvar int p1[Machines,Clients] in 0..r;
......@@ -46,6 +47,7 @@ subject to {
0 <= p[k,c0,u] + p[k,c1,v] - (2 * e[c0,c1,k,u,v]) <= 1;
// Setting up values for d
forall(k in Machines, c0 in Clients, c1 in Clients, z in zRange)
// d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
// Capacity of servers respected
forall(k in Machines)
......
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......
/* Created by Vagabond.reduction.ilp.WriteILPFile */
r=2;
numMachines=5;
numClients=6;
// migrationBudget=-1;
vmsPerClient=[2,2,2,2,2,2];
machineCapacity=[4,4,4,4,4];
// Client ID 1 x Client ID 2 ==> Information Leakage from Client ID 1 to Client ID 2 over the past X epochs
L=[
[0,0,0,0,2,1]
[0,0,1,1,0,1]
[0,1,0,2,0,1]
[0,1,2,0,0,1]
[2,0,0,0,0,1]
[1,1,1,1,1,0]
];
// Machine ID x Client ID ==> Sum of VMs on Machine ID that belong to Client ID
p0=[
[0,1,0,0,0,1]
[1,0,1,1,1,0]
[0,0,1,1,0,0]
[1,1,0,0,0,1]
[0,0,0,0,1,0]
];
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......@@ -46,7 +46,7 @@ subject to {
0 <= p[k,c0,u] + p[k,c1,v] - (2 * e[c0,c1,k,u,v]) <= 1;
// Setting up values for d
forall(k in Machines, c0 in Clients, c1 in Clients, z in zRange)
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z) *e[c0,c1,k,l,z]);
// Capacity of servers respected
forall(k in Machines)
machineCapacity[k] >= sum(i in Clients) (p1[k,i]);
......
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......@@ -46,7 +46,7 @@ subject to {
0 <= p[k,c0,u] + p[k,c1,v] - (2 * e[c0,c1,k,u,v]) <= 1;
// Setting up values for d
forall(k in Machines, c0 in Clients, c1 in Clients, z in zRange)
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z) *e[c0,c1,k,l,z]);
// Capacity of servers respected
forall(k in Machines)
machineCapacity[k] >= sum(i in Clients) (p1[k,i]);
......
......@@ -21,8 +21,8 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=maxl(ftoi(pow(2,(2*t)-1)-1), 1);
range tRange=0..t;
range zRange=0..t-1;
......@@ -35,7 +35,7 @@ dvar int e[Clients,Clients,Machines,tRange,tRange] in 0..1;
dvar int d[Clients,Clients,Machines,zRange] in 0..dMaxVal;
minimize
sum(c0, c1 in Clients: c0 != c1) (L[c0,c1] + sum(k in Machines, z in zRange) (d[c0,c1,k,z]) );
sum(c0, c1 in Clients) ( L[c0,c1] + sum(k in Machines, z in zRange) (d[c0,c1,k,z]) );
subject to {
// p1 represented as a value from p's bit form
......@@ -46,7 +46,7 @@ subject to {
0 <= p[k,c0,u] + p[k,c1,v] - (2 * e[c0,c1,k,u,v]) <= 1;
// Setting up values for d
forall(k in Machines, c0 in Clients, c1 in Clients, z in zRange)
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z) *e[c0,c1,k,l,z]);
// Capacity of servers respected
forall(k in Machines)
machineCapacity[k] >= sum(i in Clients) (p1[k,i]);
......
......@@ -21,7 +21,7 @@ int L[Clients,Clients]=...;
int p0[Machines,Clients]=...;
int r=...;
int t=ftoi(ceil(lg(r)));
int t=ftoi(ceil(lg(r+1)));
int dMaxVal=ftoi(pow(2,2*t-1)-1);
range tRange=0..t;
......@@ -46,7 +46,7 @@ subject to {
0 <= p[k,c0,u] + p[k,c1,v] - (2 * e[c0,c1,k,u,v]) <= 1;
// Setting up values for d
forall(k in Machines, c0 in Clients, c1 in Clients, z in zRange)
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z+l) *e[c0,c1,k,l,z]);
d[c0,c1,k,z] == sum(l in zRange) (pow(2,z) *e[c0,c1,k,l,z]);
// Capacity of servers respected
forall(k in Machines)
machineCapacity[k] >= sum(i in Clients) (p1[k,i]);
......
......@@ -46,3 +46,53 @@ Date Time,Test Name,Machines,Clients,Slots,Max VMs/Client,Min VMs/Client,Placeme
2016/05/23 02:37:24.311-0400,equalSpreadHalf6_sum,6,3,6,6,6,EqualSpreadHalf_6,18,5,0.5,36,5,10,10,cnf,Sum CCIL,7230,36,0,6,0,36,6,3,3,61216;2344;2141;1895;1953;1397;623;244;240;248,0=0;1=0;2=0;3=0;4=0;5=0;6=6,0=6,36;22;4;0;0;0;0;0;0;0;0,6;7;2;0;0;0;0;0;0;0;0,5;5;4;5;5;5;4;4;5;2,10,72308,testing # moves
2016/05/23 03:00:27.511-0400,equalSpreadHalf6_sum,6,3,3,6,6,EqualSpreadHalf_6,18,5,0.5,36,5,10,10,nomad,Sum CCIL,48,36,0,6,0,36,6,6,6,46;46;41;19;18;8;1;1;1;1;350,0=0;1=0;2=0;3=0;4=0;5=0;6=6,0=6,36;32;26;18;14;8;0;0;0;0;0,6;6;7;3;3;4;0;0;0;0;0,0;2;2;2;2;2;0;0;0;0,6,355,testing # moves
2016/05/23 03:00:55.998-0400,equalSpreadHalf6_sum,6,3,3,6,6,EqualSpreadHalf_6,18,5,0.5,36,5,10,10,nomad,Sum CCIL,43,36,0,6,0,36,6,6,6,50;36;31;18;14;8;1;2;1;1;311,0=0;1=0;2=0;3=0;4=0;5=0;6=6,0=6,36;32;26;18;14;8;0;0;0;0;0,6;6;7;3;3;4;0;0;0;0;0,0;2;2;2;2;2;0;0;0;0,6,316,testing # moves
2016/05/23 01:28:58.333-0400,equalSpreadHalf6_sum,6,3,6,6,6,EqualSpreadHalf_6,18,5,0.5,36,5,10,10,ilp,Sum CCIL,227,36,0,6,0,36,6,3,3,1456;378;66;52;52;49;51;53;57;59,0=0;1=0;2=0;3=0;4=0;5=0;6=6,0=6,36;22;4;0;0;0;0;0;0;0;0,6;7;2;0;0;0;0;0;0;0;0,5;5;5;5;5;5;5;3;5;5,10,2631,
2016/05/23 02:19:16.047-0400,specialTest1_MB-1,5,10,4,2,2,specialTest1,20,-1,0.8,25,5,10,5,nomad,Sum CCIL,181,58,40,2,4,18,-2,2,1,132;83;72;72;72;659,0=48;1=26;2=16,0=80;1=0;2=0;3=0;4=10,58;46;40;40;40;40,2;4;4;4;4;4,0;4;0;0;0,2,665,
2016/05/23 02:20:10.435-0400,specialTest1_MB-1,5,10,4,2,2,specialTest1,20,-1,0.8,25,5,10,5,nomad,Sum CCIL,169,58,40,2,4,18,-2,2,1,134;84;71;71;71;584,0=48;1=26;2=16,0=80;1=0;2=0;3=0;4=10,58;46;40;40;40;40,2;4;4;4;4;4,0;4;0;0;0,2,591,
2016/05/23 02:22:31.101-0400,specialTest1_MB-1,5,10,4,2,2,SpecialTest15,20,-1,0.8,25,5,10,5,nomad,Sum CCIL,167,58,40,2,4,18,-2,2,1,131;83;71;70;70;580,0=48;1=26;2=16,0=80;1=0;2=0;3=0;4=10,58;46;40;40;40;40,2;4;4;4;4;4,0;4;0;0;0,2,588,
2016/05/23 02:23:26.143-0400,specialTest1_MB-1,5,10,5,2,2,SpecialTest15,20,-1,0.8,25,5,10,5,ilp,Sum CCIL,282,58,48,2,4,10,-2,1,1,374;260;260;261;256,0=48;1=26;2=16,0=72;1=0;2=12;3=0;4=6,58;48;48;48;48;48,2;4;4;4;4;4,14;0;0;0;0,1,1418,
2016/05/23 03:47:32.848-0400,nomadTest_MB-1,10,10,2,2,2,nomadTest_10,20,-1,0.5,40,5,10,6,nomad,Sum CCIL,63,40,0,2,0,40,2,3,3,116;12;7;1;1;1;309,0=58;1=24;2=8,0=90,40;8;4;0;0;0;0,2;2;2;0;0;0;0,0;4;1;0;0;0,3,316,
2016/05/23 03:47:50.265-0400,nomadTest_MB-1,10,10,4,2,2,nomadTest_10,20,-1,0.5,40,5,10,6,ilp,Sum CCIL,482,40,28,2,4,12,-2,1,1,570;453;469;497;463;443,0=58;1=24;2=8,0=82;1=0;2=2;3=0;4=6,40;28;28;28;28;28;28,2;4;4;4;4;4;4,18;0;0;0;0;0,1,2903,
2016/05/23 03:48:02.798-0400,nomadTest_MB-1,10,10,4,2,2,nomadTest_10,20,-1,0.5,40,5,10,6,cnf,Sum CCIL,10872,40,0,2,0,40,2,1,1,14083;11814;12520;12583;12869;1367,0=58;1=24;2=8,0=90,40;0;0;0;0;0;0,2;0;0;0;0;0;0,18;14;20;16;20;20,6,65243,
2016/05/23 03:49:32.111-0400,nomadTest_MB-1,20,20,2,2,2,nomadTest_20,40,-1,0.5,80,5,10,6,nomad,Sum CCIL,245,76,0,2,0,76,2,3,3,523;69;26;4;4;4;1087,0=308;1=68;2=4,0=380,76;20;8;0;0;0;0,2;2;2;0;0;0;0,0;6;4;0;0;0,3,1096,
2016/05/23 03:49:43.900-0400,nomadTest_MB-1,20,20,4,2,2,nomadTest_20,40,-1,0.5,80,5,10,6,ilp,Sum CCIL,19232,76,48,2,4,28,-2,1,1,20192;19654;18549;18174;18712;20111,0=308;1=68;2=4,0=364;1=0;2=8;3=0;4=8,76;48;48;48;48;48;48,2;4;4;4;4;4;4,35;0;0;0;0;0,1,115403,
2016/05/23 03:58:36.206-0400,nomadTest_MB-1,40,40,2,2,2,nomadTest_40,80,-1,0.5,160,5,10,6,nomad,Sum CCIL,1633,148,0,2,0,148,2,4,4,4154;290;124;61;23;17;6767,0=1416;1=140;2=4,0=1560,148;34;12;6;0;0;0,2;2;2;1;0;0;0,0;16;5;4;0;0,4,6789,
2016/05/23 03:59:00.814-0400,nomadTest_MB-1,40,40,4,2,2,nomadTest_40,80,-1,0.5,160,5,10,2,ilp,Sum CCIL,244522,148,92,2,4,56,-2,1,1,242960;246085,0=1416;1=140;2=4,0=1524;1=0;2=26;3=0;4=10,148;92;92,2;4;4,77;0,1,489063,
2016/05/23 04:09:17.551-0400,nomadTest_MB-1,50,50,3,2,2,nomadTest_50,100,-1,0.5,200,5,10,2,nomad,Sum CCIL,4196,176,18,2,2,158,0,2,0,5383;423;6783,0=2284;1=156;2=10,0=2438;1=6;2=6,176;48;18,2;2;2,0;18,2,6806,
2016/05/23 04:09:55.984-0400,nomadTest_MB-1,50,50,4,2,2,nomadTest_50,100,-1,0.5,200,5,10,2,ilp,Sum CCIL,480116,176,112,2,4,64,-2,1,1,493537;466696,0=2284;1=156;2=10,0=2408;1=0;2=28;3=0;4=14,176;112;112,2;4;4,98;0,1,960261,
2016/05/23 04:34:54.947-0400,nomadTest_MB-1,20,20,4,2,2,nomadTest_20,40,-1,0.5,80,5,10,2,cnf,Sum CCIL,475243,76,0,2,0,76,2,1,1,564459;386027,0=308;1=68;2=4,0=380,76;0;0,2;0;0,37;32,2,950494,
2016/05/23 05:15:51.969-0400,nomadTest_MB-1,10,10,4,2,2,nomadTest_10,20,100,0.5,40,5,10,2,ilp,Sum CCIL,551,40,28,2,4,12,-2,1,1,587;515,0=58;1=24;2=8,0=82;1=0;2=2;3=0;4=6,40;28;28,2;4;4,18;0,1,1110,
2016/05/23 05:17:57.779-0400,nomadTest_MB-1,10,10,4,2,2,nomadTest_10,20,100,0.5,40,5,10,2,ilp,Sum CCIL,528,40,28,2,4,12,-2,1,1,570;487,0=58;1=24;2=8,0=82;1=0;2=2;3=0;4=6,40;28;28,2;4;4,18;0,1,1065,
2016/05/23 05:24:43.286-0400,nahidTest_MB-1,3,4,3,3,2,nahidTest_10,9,-1,1.0,9,5,10,5,nomad,Sum CCIL,26,12,12,2,2,0,0,0,0,8;6;6;7;6;126,0=6;1=0;2=6,0=6;1=0;2=6,12;12;12;12;12;12,2;2;2;2;2;2,0;0;0;0;0,0,133,
2016/05/23 05:24:52.916-0400,nahidTest_MB-1,3,4,3,3,2,nahidTest_10,9,-1,1.0,9,5,10,5,ilp,Sum CCIL,85,12,8,2,2,4,0,1,0,174;65;63;62;62,0=6;1=0;2=6,0=8;1=0;2=4,12;8;8;8;8;8,2;2;2;2;2;2,8;0;0;0;0,1,433,
2016/05/23 05:25:02.564-0400,nahidTest_MB-1,3,4,3,3,2,nahidTest_10,9,-1,1.0,9,5,10,5,cnf,Sum CCIL,1918,12,8,2,2,4,0,1,0,2082;1634;1905;1945;2025,0=6;1=0;2=6,0=8;1=0;2=4,12;8;8;8;8;8,2;2;2;2;2;2,8;2;0;7;4,5,9597,
2016/05/23 05:30:50.567-0400,nahidTest_MB-1,3,4,3,3,2,nahidTest_10,9,-1,1.0,9,5,10,5,cnf,Max CCIL,1575,12,16,2,2,-4,0,5,0,1660;1652;1560;1523;1483,0=6;1=0;2=6,0=4;1=0;2=8,12;8;12;12;12;16,2;2;2;2;2;2,5;2;6;5;3,5,7884,
2016/05/23 05:31:09.880-0400,nahidTest_MB-1,3,4,3,3,2,nahidTest_10,9,-1,1.0,9,5,10,5,ilp,Max CCIL,52,12,12,2,2,0,0,4,0,174;40;26;13;11,0=6;1=0;2=6,0=6;1=0;2=6,12;12;12;8;12;12,2;2;2;2;2;2,6;0;7;7;0,4,271,
2016/05/23 06:08:59.533-0400,percentFill_MB-1,10,12,3,2,2,percentFill_40,24,-1,0.4,60,5,10,5,nomad,Sum CCIL,132,50,16,2,2,34,0,2,0,176;38;29;31;30;492,0=88;1=38;2=6,0=124;1=0;2=8,50;20;16;16;16;16,2;2;2;2;2;2,0;3;0;0;0,2,500,
2016/05/23 06:10:27.945-0400,percentFill_MB-1,10,12,2,1,1,percentFill_20,12,-1,0.2,60,5,10,5,nomad,Sum CCIL,50,26,4,1,1,22,0,1,0,68;3;4;3;4;218,0=106;1=26,0=128;1=4,26;4;4;4;4;4,1;1;1;1;1;1,0;0;0;0;0,0,226,
2016/05/23 06:10:37.061-0400,percentFill_MB-1,10,12,3,2,2,percentFill_40,24,-1,0.4,60,5,10,5,nomad,Sum CCIL,129,50,16,2,2,34,0,2,0,172;37;29;30;29;480,0=88;1=38;2=6,0=124;1=0;2=8,50;20;16;16;16;16,2;2;2;2;2;2,0;3;0;0;0,2,488,
2016/05/23 06:10:50.034-0400,percentFill_MB-1,10,12,5,3,3,percentFill_60,36,-1,0.6,60,5,10,5,nomad,Sum CCIL,490,118,36,3,6,82,-3,1,1,837;125;125;126;126;1603,0=52;1=48;2=26;3=6,0=124;1=0;2=0;3=4;4=0;5=0;6=4,118;36;36;36;36;36,3;6;6;6;6;6,0;0;0;0;0,0,1612,
2016/05/23 06:11:14.168-0400,percentFill_MB-1,10,12,5,4,4,percentFill_80,48,-1,0.8,60,5,10,5,nomad,Sum CCIL,1083,186,64,5,4,122,1,2,2,1651;420;333;332;329;3437,0=30;1=52;2=24;3=20;4=4;5=2,0=116;1=0;2=0;3=0;4=16,186;80;64;64;64;64,5;6;4;4;4;4,0;6;0;0;0,2,3445,
2016/05/23 06:11:22.013-0400,percentFill_MB-1,10,12,6,5,5,percentFill_100,60,-1,1.0,60,5,10,5,nomad,Sum CCIL,2665,278,100,5,5,178,0,3,3,4289;1169;794;747;746;8249,0=14;1=28;2=44;3=26;4=16;5=4,0=112;1=0;2=0;3=0;4=0;5=20,278;150;106;100;100;100,5;8;8;5;5;5,0;12;2;0;0,3,8258,
2016/05/23 06:13:07.666-0400,percentFill_MB-1,10,12,6,2,2,percentFill_40,24,-1,0.4,60,5,10,5,ilp,Sum CCIL,646,50,60,2,4,-10,-2,1,1,717;638;638;621;619,0=88;1=38;2=6,0=116;1=0;2=2;3=0;4=14,50;60;60;60;60;60,2;4;4;4;4;4,20;0;0;0;0,1,3241,
2016/05/23 06:25:53.001-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,106,22,24,2,4,-2,-2,1,1,221;77;77;79;77,0=12;1=14;2=4,0=24;1=0;2=0;3=0;4=6,22;24;24;24;24;24,2;4;4;4;4;4,8;0;0;0;0,1,538,
2016/05/23 06:26:30.019-0400,percentFill_MB-1,5,6,4,3,3,percentFill_90,18,-1,0.9,20,5,10,5,ilp,Sum CCIL,297,46,18,4,3,28,1,1,1,389;272;279;284;262,0=4;1=12;2=10;3=2;4=2,0=24;1=0;2=0;3=6,46;18;18;18;18;18,4;3;3;3;3;3,14;0;0;0;0,1,1494,
2016/05/23 06:26:50.028-0400,percentFill_MB-1,5,6,2,1,1,percentFill_30,6,-1,0.3,20,5,10,5,nomad,Sum CCIL,19,8,2,1,1,6,0,1,0,9;0;1;1;1;107,0=22;1=8,0=28;1=2,8;2;2;2;2;2,1;1;1;1;1;1,0;0;0;0;0,0,115,
2016/05/23 06:26:55.021-0400,percentFill_MB-1,5,6,3,2,2,percentFill_60,12,-1,0.6,20,5,10,5,nomad,Sum CCIL,36,22,8,2,2,14,0,1,0,32;6;7;6;6;163,0=12;1=14;2=4,0=26;1=0;2=4,22;8;8;8;8;8,2;2;2;2;2;2,0;0;0;0;0,0,171,
2016/05/23 06:27:15.001-0400,percentFill_MB-1,5,6,4,3,3,percentFill_90,18,-1,0.9,20,5,10,5,nomad,Sum CCIL,89,46,18,4,3,28,1,2,1,97;32;26;25;27;331,0=4;1=12;2=10;3=2;4=2,0=24;1=0;2=0;3=6,46;22;18;18;18;18,4;3;3;3;3;3,0;2;0;0;0,2,339,
2016/05/23 06:27:28.923-0400,percentFill_MB-1,5,6,4,1,1,percentFill_30,6,-1,0.3,20,5,10,5,cnf,Sum CCIL,1800,8,2,1,1,6,0,1,0,1854;1470;1707;1730;2240,0=22;1=8,0=28;1=2,8;2;2;2;2;2,1;1;1;1;1;1,5;6;5;5;5,5,9009,
2016/05/23 06:27:49.980-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,cnf,Sum CCIL,5078,22,8,2,2,14,0,1,0,6687;4627;4595;4494;4990,0=12;1=14;2=4,0=26;1=0;2=4,22;8;8;8;8;8,2;2;2;2;2;2,10;6;11;7;11,5,25400,
2016/05/23 06:28:59.335-0400,percentFill_MB-1,5,6,4,3,3,percentFill_90,18,-1,0.9,20,5,10,5,cnf,Sum CCIL,16485,46,18,4,3,28,1,1,1,22503;15372;14772;13624;16158,0=4;1=12;2=10;3=2;4=2,0=24;1=0;2=0;3=6,46;18;18;18;18;18,4;3;3;3;3;3,15;13;14;17;7,5,82436,
2016/05/23 06:51:06.555-0400,percentFill_MB-1,5,6,4,1,1,percentFill_30,6,-1,0.3,20,5,10,5,ilp,Sum CCIL,79,8,2,1,1,6,0,1,0,173;57;53;58;55,0=22;1=8,0=28;1=2,8;2;2;2;2;2,1;1;1;1;1;1,5;0;0;0;0,1,404,
2016/05/23 06:54:02.780-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,468,22,12,2,2,10,0,1,0,542;475;506;420;400,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2351,
2016/05/23 06:54:13.363-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,433,22,12,2,2,10,0,1,0,534;419;406;413;397,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2177,
2016/05/23 06:54:42.939-0400,percentFill_MB-1,5,6,4,3,3,percentFill_90,18,-1,0.9,20,5,10,5,ilp,Sum CCIL,2590,46,40,4,3,6,1,1,1,3282;2600;2366;2048;2654,0=4;1=12;2=10;3=2;4=2,0=8;1=8;2=10;3=4,46;40;40;40;40;40,4;3;3;3;3;3,12;0;0;0;0,1,12958,
2016/05/23 06:59:30.357-0400,percentFill_MB-1,5,6,4,3,3,percentFill_90,18,-1,0.9,20,5,10,5,ilp,Max CCIL,131,46,20,4,4,26,0,4,4,135;126;130;136;130,0=4;1=12;2=10;3=2;4=2,0=24;1=0;2=0;3=4;4=2,46;34;24;22;20;20,4;3;3;3;4;4,9;12;16;12;0,4,665,
2016/05/23 07:21:33.693-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,468,22,12,2,2,10,0,1,0,561;444;453;464;421,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2352,
2016/05/23 07:24:21.462-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,471,22,12,2,2,10,0,1,0,586;467;449;437;420,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2367,
2016/05/23 07:33:50.206-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,485,22,12,2,2,10,0,1,0,586;482;457;445;456,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2433,
2016/05/23 07:46:34.003-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,504,22,12,2,2,10,0,1,0,612;478;455;472;503,0=12;1=14;2=4,0=22;1=4;2=4,22;12;12;12;12;12,2;2;2;2;2;2,11;0;0;0;0,1,2528,
2016/05/23 08:14:33.401-0400,percentFill_MB-1,5,6,4,2,2,percentFill_60,12,-1,0.6,20,5,10,5,ilp,Sum CCIL,224,22,8,2,4,14,-2,1,1,326;206;199;198;195,0=12;1=14;2=4,0=28;1=0;2=0;3=0;4=2,22;8;8;8;8;8,2;4;4;4;4;4,9;0;0;0;0,1,1131,
2016/05/23 08:19:14.805-0400,nomadTest_MB-1,10,10,4,2,2,nomadTest_10,20,-1,0.5,40,5,10,6,ilp,Sum CCIL,586,40,0,2,0,40,2,1,1,668;616;549;577;566;545,0=58;1=24;2=8,0=90,40;0;0;0;0;0;0,2;0;0;0;0;0;0,16;0;0;0;0;0,1,3528,
2016/05/23 08:26:56.612-0400,nomadTest_MB-1,20,20,4,2,2,nomadTest_20,40,-1,0.5,80,5,10,6,ilp,Sum CCIL,19873,76,0,2,0,76,2,1,1,20926;20339;19241;19387;19574;19775,0=308;1=68;2=4,0=380,76;0;0;0;0;0;0,2;0;0;0;0;0;0,39;0;0;0;0;0,1,119253,
2016/05/23 08:30:30.317-0400,nomadTest_MB-1,40,40,4,2,2,nomadTest_40,80,-1,0.5,160,5,10,2,ilp,Sum CCIL,247975,148,0,2,0,148,2,1,1,245400;250551,0=1416;1=140;2=4,0=1560,148;0;0,2;0;0,80;0,1,495969,
......@@ -15,8 +15,7 @@ import vagabond.logging.CSVFileFormatter;
import vagabond.logging.ConsoleFormatter;
import vagabond.pieces.EpochHistory;
import vagabond.pieces.PlacementMap;
import vagabond.placement.PlacementMapFile;
import vagabond.placement.RandomPlacement;
import vagabond.placement.*;
import vagabond.reduction.ReduceTo;
import vagabond.reduction.RunSolver;
import vagabond.reduction.cnfsat.ReduceToCNFSAT;
......@@ -27,7 +26,6 @@ import vagabond.reduction.nomad.ReduceToNomad;
import vagabond.reduction.nomad.RunSolverNomad;
import vagabond.results.StatisticsManager;
import vagabond.singleton.VagabondSettings;
import vagabond.testing.PlacementMapExamples;
import vagabond.timing.TimingManager;
/**
......@@ -76,10 +74,10 @@ public class VagabondInstance {
PlacementMap placementMap = null;
logger.info("Generating Placement Map Using: " + settings.placementAlgorithm);
RandomPlacement rPlace = new RandomPlacement();
switch (settings.placementAlgorithm) {
case PLACEMENT_RANDOM:
RandomPlacement rPlace = new RandomPlacement();
rPlace.randomSeed(settings.randomSeed);
placementMap = rPlace.generatePlacementMapFromSettings();
......@@ -93,6 +91,21 @@ public class VagabondInstance {
case PLACEMENT_EQUALSPREADHALF:
placementMap = PlacementMapExamples.equalSpreadClientsHalfFull(settings.equalSpreadNum);
break;
case PLACEMENT_SPECIALTEST1:
rPlace.randomSeed(settings.randomSeed);
placementMap = PlacementMapExamples.specialTest1(rPlace, settings.equalSpreadNum);
break;
case PLACEMENT_NOMADTEST:
rPlace.randomSeed(settings.randomSeed);
placementMap = PlacementMapExamples.nomadTest(rPlace, settings.equalSpreadNum);
break;
case PLACEMENT_PERCENTFILL:
rPlace.randomSeed(settings.randomSeed);
placementMap = PlacementMapExamples.percentFilled(rPlace, settings.equalSpreadNum);
break;
case PLACEMENT_NAHIDTEST:
placementMap = PlacementMapExamples.nomadSubOptimalRCPlacement();
break;
default:
logger.severe("No placement algorithm was picked, or one that is not implemented is used. "
+ "PlacementAlgorithm:" + settings.placementAlgorithm);
......@@ -247,6 +260,8 @@ public class VagabondInstance {
/* Timing */stats.addEpochTime(timing.stopTimer(tp + "VagabondInstance::main()::epochLoop::totalTime"));
logger.info("Epoch " + epochNum + " took " + timing.getLastElapsedTimeSec() + " seconds to finish");
// Must be after the STATS
if (settings.reductionAlgorithm == VagabondOptionString.REDUCTION_NOMAD) {
logger.info("Exiting the EPOCH LOOP because Nomad does its own EPOCH LOOP.");
......@@ -425,18 +440,49 @@ public class VagabondInstance {
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_FILE;
settings.inputPlacementMapFilePath = value;
} else if (value.equals(VagabondOptionString.PLACEMENT_EQUALSPREAD.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_EQUALSPREAD;
settings.equalSpreadNum = Integer.valueOf(value);
} else if (value.equals(VagabondOptionString.PLACEMENT_EQUALSPREADHALF.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_EQUALSPREADHALF;
settings.equalSpreadNum = Integer.valueOf(value);
} else if (value.equals(VagabondOptionString.PLACEMENT_SPECIALTEST1.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_SPECIALTEST1;
settings.equalSpreadNum = Integer.valueOf(value);
} else if (value.equals(VagabondOptionString.PLACEMENT_NOMADTEST.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_NOMADTEST;
settings.equalSpreadNum = Integer.valueOf(value);
} else if (value.equals(VagabondOptionString.PLACEMENT_NAHIDTEST.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_NAHIDTEST;
settings.equalSpreadNum = Integer.valueOf(value);
} else if (value.equals(VagabondOptionString.PLACEMENT_PERCENTFILL.toString())) {
value = prop.getProperty(VagabondOptionString.EQUALSPREADNUM.toString(), null);
if (value == null) { throw new IllegalArgumentException("Must provide a equalSpreadNum!"); }
settings.placementAlgorithm = VagabondOptionString.PLACEMENT_PERCENTFILL;
settings.equalSpreadNum = Integer.valueOf(value);
} else {
throw new IllegalArgumentException("Placement Algorithm: " + value + " does not exist!");
}
......
......@@ -2,8 +2,8 @@ package vagabond;
import java.util.ArrayList;
import vagabond.placement.PlacementMapExamples;
import vagabond.results.StatisticsManager;
import vagabond.testing.PlacementMapExamples;
/**
* Holds Command Line Options as well as strings that can be contained in the Settings file.
......@@ -203,6 +203,34 @@ public enum VagabondOptionString {
*/
PLACEMENT_EQUALSPREADHALF("equalSpreadHalf"),
/**
* [Placement Algorithms] Generates a placement map using
* {@link PlacementMapExamples#percentFilled(vagabond.placement.RandomPlacement, int)}
* @vagabond.category Placement Algorithms
*/
PLACEMENT_PERCENTFILL("percentFill"),
/**
* [Placement Algorithms] Generates a placement map using
* {@link PlacementMapExamples#nomadTest(vagabond.placement.RandomPlacement, int)}
* @vagabond.category Placement Algorithms
*/
PLACEMENT_NAHIDTEST("nahidTest"),
/**
* [Placement Algorithms] Generates a placement map using
* {@link PlacementMapExamples#specialTest1(vagabond.placement.RandomPlacement, int)}
* @vagabond.category Placement Algorithms
*/
PLACEMENT_NOMADTEST("nomadTest"),
/**
* [Placement Algorithms] Generates a placement map using
* {@link PlacementMapExamples#specialTest1(vagabond.placement.RandomPlacement, int)}
* @vagabond.category Placement Algorithms
*/
PLACEMENT_SPECIALTEST1("specialTest1"),
// Reduction Algorithms
/**
* [Reduction Algorithms] Reduces a PlacementMap to CSAT and then to CNF-SAT and then runs it through Minisat
......
package vagabond.testing;
package vagabond.placement;
import vagabond.pieces.PlacementMap;
import vagabond.pieces.VM;
......@@ -99,6 +99,61 @@ public class PlacementMapExamples {
return equalSpreadClientsHalfFull(4);
}
public static PlacementMap specialTest1(RandomPlacement rp, int specialSize) {
int half = specialSize / 2;
int dbl = specialSize * 2;
VagabondSettings s = VagabondSettings.getInstance();
s.numberOfMachines = specialSize;
s.numberOfMachineSlots = specialSize;
s.numberOfClients = dbl;
s.numberOfVMsPerClient = half;
return rp.generatePlacementMap(s.numberOfMachines, s.numberOfMachineSlots, s.numberOfClients,
s.numberOfVMsPerClient, false);
}
public static PlacementMap nomadTest(RandomPlacement rp, int specialSize) {
VagabondSettings s = VagabondSettings.getInstance();
s.numberOfMachines = specialSize;
s.numberOfMachineSlots = 4;
s.numberOfClients = specialSize;
s.numberOfVMsPerClient = 2;
return rp.generatePlacementMap(s.numberOfMachines, s.numberOfMachineSlots, s.numberOfClients,
s.numberOfVMsPerClient, false);
}
public static PlacementMap specialTest2(RandomPlacement rp, int specialSize) {
int quarter = specialSize / 4;
int dbl = specialSize * 2;
VagabondSettings s = VagabondSettings.getInstance();
s.numberOfMachines = specialSize;
s.numberOfMachineSlots = specialSize;
s.numberOfClients = dbl;
s.numberOfVMsPerClient = quarter;
return rp.generatePlacementMap(s.numberOfMachines, s.numberOfMachineSlots, s.numberOfClients,
s.numberOfVMsPerClient, false);
}
public static PlacementMap percentFilled(RandomPlacement rp, int specialSize) {
VagabondSettings s = VagabondSettings.getInstance();
s.numberOfMachines = 5;
s.numberOfMachineSlots = 4;
s.numberOfClients = 6;
double val2 = (double) specialSize / 100;
int val = (int) Math.floor(val2 * s.numberOfMachines * s.numberOfMachineSlots / s.numberOfClients);
s.numberOfVMsPerClient = val;
System.out.println("[percentFilled] Value: " + val);
System.out.println("[percentFilled] Value2: " + val2);
return rp.generatePlacementMap(s.numberOfMachines, s.numberOfMachineSlots, s.numberOfClients,
s.numberOfVMsPerClient, false);
}
/**
* Creates a Placement Map where the number of machines is equal to the number of clients and equal to the number
* of slots per machine. This allows the the Placement Map to be completely filled by putting all VMs from a client
......
......@@ -24,6 +24,8 @@ public class RandomPlacement {
// Random Generator
public Random randGen;
public long randomSeed = -1;
public RandomPlacement() {
// Connect to the global logger
_settings = VagabondSettings.getInstance();
......@@ -41,6 +43,8 @@ public class RandomPlacement {
if (randomSeed != -1) {
randGen.setSeed(randomSeed);
}
this.randomSeed = randomSeed;
}
/**
......
......@@ -145,6 +145,8 @@ public class RunSolverCNFSAT implements RunSolver {
CircuitUtils.cnfSatToFile(c, cnfloc);
/*TIMING*/ timing.toggleTimer(tp + "RunSolverCNFSAT::run::binarySearch::cnfSatToFile::" + searchVal);
// TODO Delete objects?
/*TIMING*/ timing.toggleTimer(tp + "RunSolverCNFSAT::run::binarySearch::exec::" + searchVal);
Process p = Runtime.getRuntime().exec(solverloc + " " + commands + cnfloc);
......
......@@ -9,11 +9,11 @@ import org.junit.Test;
import vagabond.circuit.Circuit;
import vagabond.circuit.CircuitUtils;
import vagabond.pieces.SumOfClientVMsPerMachine;
import vagabond.placement.PlacementMapExamples;
import vagabond.placement.RandomPlacement;
import vagabond.reduction.cnfsat.ReduceToCNFSAT;
import vagabond.reduction.cnfsat.RunSolverCNFSAT;
import vagabond.singleton.VagabondSettings;
import vagabond.testing.PlacementMapExamples;
public class CNFSATMigrationBudgetTests {
......
......@@ -28,6 +28,7 @@ public class ILPCustomDataSource extends IloCustomOplDataSource {
// Variable r
handler.startElement("r");
Integer r = Math.min(place.getMaxNumberOfVMsPerClient(), place.getMaxNumberOfSlotsPerMachine());
System.out.println("[ILPCustomDataSource] r = " + r);
handler.addIntItem(r);
handler.endElement();
......
package vagabond.reduction.ilp;
import java.io.FileWriter;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
......@@ -62,6 +64,17 @@ public class ReduceToILP implements ReduceTo {
_currentPlacement = _history._latestPlacementMap;
_sumPlacement = new SumOfClientVMsPerMachine(_currentPlacement);
try {
if (logger.isLoggable(Level.FINE)) {
FileWriter writeOutILP = new FileWriter(settings.getIlpFile());
String ilpString = WriteILPFile.toILPString(eh, _sumPlacement);
writeOutILP.write(ilpString);
writeOutILP.close();
}
} catch (IOException e) {
e.printStackTrace();
}
// Changes between production mode and debugging mode
if (logger.isLoggable(Level.FINE)) {
IloOplFactory.setDebugMode(true);
......@@ -106,7 +119,10 @@ public class ReduceToILP implements ReduceTo {
/*TIMING*/timing.stopTimer(tp + "ReduceToILP::reduce::generate");
// Set the optimization parameters
opl.getCplex().setParam(IloCplex.Param.MIP.Tolerances.MIPGap, settings.relativeMIPGapTolerance);
// opl.getCplex().setParam(IloCplex.Param.MIP.Tolerances.MIPGap, settings.relativeMIPGapTolerance);
// opl.getCplex().setParam(IloCplex.Param.MIP.Tolerances.AbsMIPGap, settings.absoluteMIPGapTolerance);
// opl.getCplex().setParam(IloCplex.IntParam.MIPEmphasis, IloCplex.MIPEmphasis.Optimality);
// opl.getCplex().setParam(IloCplex.Param.Simplex.Tolerances.Optimality, 1e-9);
/*TIMING*/timing.stopTimer(tp + "ReduceToILP::reduce");
return true;
......
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