Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Jon Shahen
vagabond
Commits
d1bfc6f2
Commit
d1bfc6f2
authored
May 23, 2016
by
Jonathan Shahen
Browse files
Changes made before Conference deadline
parent
9c288ca3
Changes
32
Hide whitespace changes
Inline
Side-by-side
VagabondILPExample/ilpData.dat
0 → 100644
View file @
d1bfc6f2
/* 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]
];
data/TestData/.oplproject
View file @
d1bfc6f2
...
...
@@ -13,7 +13,7 @@
<ref
name=
"ilpDataNoMig.dat"
type=
"data"
>
</ref>
</config>
<config
category=
"opl"
default=
"
tru
e"
name=
"ilpNoMigration_sum"
>
<config
category=
"opl"
default=
"
fals
e"
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
data/TestData/ilp.mod
View file @
d1bfc6f2
...
...
@@ -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;
...
...
data/TestData/ilpNoMigration.mod
View file @
d1bfc6f2
...
...
@@ -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;
...
...
data/TestData/ilpNoMigration_sum.mod
View file @
d1bfc6f2
...
...
@@ -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)
...
...
data/TestData/ilp_sum.mod
View file @
d1bfc6f2
...
...
@@ -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;
...
...
data/TestData/outILP.dat
0 → 100644
View file @
d1bfc6f2
/* 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]
];
data/ilp.mod
View file @
d1bfc6f2
...
...
@@ -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]);
...
...
data/ilpNoMigration.mod
View file @
d1bfc6f2
...
...
@@ -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]);
...
...
data/ilpNoMigration_sum.mod
View file @
d1bfc6f2
...
...
@@ -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]);
...
...
data/ilp_sum.mod
View file @
d1bfc6f2
...
...
@@ -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]);
...
...
logs/vagabond.stats.csv
View file @
d1bfc6f2
...
...
@@ -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,
src/vagabond/VagabondInstance.java
View file @
d1bfc6f2
...
...
@@ -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!"
);
}
...
...
src/vagabond/VagabondOptionString.java
View file @
d1bfc6f2
...
...
@@ -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
...
...
src/vagabond/
testing
/PlacementMapExamples.java
→
src/vagabond/
placement
/PlacementMapExamples.java
View file @
d1bfc6f2
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
...
...
src/vagabond/placement/RandomPlacement.java
View file @
d1bfc6f2
...
...
@@ -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
;
}
/**
...
...
src/vagabond/reduction/cnfsat/RunSolverCNFSAT.java
View file @
d1bfc6f2
...
...
@@ -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
);
...
...
src/vagabond/reduction/cnfsat/tests/CNFSATMigrationBudgetTests.java
View file @
d1bfc6f2
...
...
@@ -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
{
...
...
src/vagabond/reduction/ilp/ILPCustomDataSource.java
View file @
d1bfc6f2
...
...
@@ -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
();
...
...
src/vagabond/reduction/ilp/ReduceToILP.java
View file @
d1bfc6f2
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
;
...
...
Prev
1
2
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment