FATCOP: A Mixed Integer Program Solver Michael Ferris Qun Chen University of Wisconsin-Madison Jeffrey Linderoth Argonne National Laboratories
Jan 17, 2016
FATCOP: A Mixed Integer Program Solver
Michael Ferris Qun ChenUniversity of Wisconsin-Madison
Jeffrey Linderoth Argonne National Laboratories
MIP formulationMIP formulation
minimize cTxsubject to Ax b
l x uand some xj integer
Problems are specified by application convenient format - GAMS, AMPL, or MPS
Branch-and-Bound Branch-and-Bound AlgorithmAlgorithm
0 Top node
Integer infeasible
Integer feasibleincumbent = Z
LP relaxationZlp > Z
LP infeasible
21
xf 1xf 0
3 4
xg 0 xg 1
The “Seymour Problem”
• Set covering problem used in proof of four color theorem
• CPLEX 6.0 and Condor (2 option files)• Running since June 23, 1999• Currently >340 days CPU time per
job• (7.9 million nodes; 1.5 million nodes)
FAT COP
• FAT - large # of processors – opportunistic environment (Condor)
• COP - Master Worker control– fault tolerant: task exit, host suspend– portable parallel programming
• Mixed Integer Program Solver– Branch and Bound: LP relaxations – MPS file, AMPL or GAMS input
condor
master worker
Condor Pool
startd
startdstartd
startd
startd startd
startd
startd
startd
startd
condorINTERNET
shadow(global RM)
FATCOP
Master pvmd
FATCOP worker
worker pvmd
starter(local RM)
GAMS AMPLMPS
FATCOPFATCOP
MW
Condor-PVM
CPLEXOSL
SOPLEXMINOS
...
Application Problem
PVM
Internet Protocol
LPSO
LVER
INTER
FAC
E
FATCOP Daily Log
MIP Technology
• Each task is a subtree, time limit– Diving heuristic– Cutting planes (global)– Pseudocosts– Preprocessing
• Master checkpoint• Worker has state, how to share
info?
TEST on MIPLIB TEST on MIPLIB problemsproblems
MIPLIB: 57 problems, varying size and difficulty (several not proven optimal)
Solved by FATCOP sequential solver: 41 (72%)
Solved by FATCOP: 46 (80%)
EXECUTION TIME TREE SIZESEQUENTIAL PARALLEL SPEEDUP SEQUENTIAL PARALLEL
10TEAMSAIR04AIR05DANOINTL1521AVPK1PP08ACUTSQIUROUTVPM2
3.2 8.716.3-
0.683.66.4
0.51-
0.55
0.20 0.73 0.4216.8
0.06 0.78 2.8
0.0811.7
0.18
16.011.939.1 -11.9 4.6 2.3 6.1 - 3.2
10,130 3,606 18,512 - 4,0463,564,0813,469,870 13,842 - 626,358
9,340 3,666 14,755 686,680 4,7023,047,9815,001,600 9,6874,510,6701,088,824
Time in hours (“-“ means time limit of 48 hours exceeded)
FATCOP: sequential/parallel
Name Executiontime
Tree size Avg. # ofMachines
SolutionGap
Applicationarea
MCSCHED
NSA
SP97IC
SP98AR
SP98IC
1.3 hrs
31.8 hrs
2.1 hrs
1.1 hrs
0.7 hrs
1,331,176
255,854,364
22,588
147,597
130,600
41
111
35
33
23
0%
0%
3%
3%
3%
ConferenceScheduling
NationalSecurity
Dutch Railway
Dutch Railway
Dutch Railway
FATCOP on real problems
5% 3% 1% 0%Name
FATCOP CPLEX FATCOP CPLEX FATCOP CPLEX FATCOP CPLEX
Applicationarea
MCSCHED
NSA
SP97IC
SP98AR
SP98IC
1.2
18.6
0.7
0.4
0.3
-
-
3.2
2.4
1.4
1.3
24.5
2.1
1.1
0.7
-
-
-
3.8
1.4
2.8
29.2
-
-
-
-
-
-
-
-
1.3
31.8
-
-
-
-
-
-
-
-
ConferenceSchedulingNationalSecurityDutchRailwayDutchRailwayDutchRailway
Time unit is hour.“-“ indicates reached time limit of 48 hours.
FATCOP vs CPLEX
Machine utilization
• For one run of “NSA” problem, used 122 machines (linux, intel/solaris, sun), 26 from UNM, 11 from NCSA.– Average number of machines in use
111– Wall clock time - 31.8 hrs – Total worker cpu time - 3014 hrs– Total worker suspension time - 40 hrs
Simple Interfaces
• Write the heuristic code in C/C++– Perform heuristics at root node– Rounding/reformulation at any node– Searching heuristics at integer nodes
• Compile and copy the object file to the solver directory
• Turn on option “perform heuristics”
Product Design Product Design ProblemProblem
• Maximize market share by choosing a product profile (or other objectives)– Product has K attributes, and each
attribute has L levels, N customers
• Important marketing problem• NP hard, but good heuristics
– How good are these solutions?
MIP Solution for MIP Solution for Product Design using Product Design using
FATCOPFATCOP• Run FATCOP parallel solver
• Incorporate following user defined heuristics:– Upper bound (NP/GA heuristics)– Priority Branching (Greedy heuristic)– Reformulation (both in root and
subtrees)
Product design - optimality
• K=12, L=3, N=200• Use FATCOP parallel solver• Turn on all user defined heuristics• Provable optimal solution found• The FATCOP job lasted 10.110.1 hours,
evaluated 18,115,88318,115,883 nodes and utilized 7575 machines on average
Product design - practicality
• K=12, L=3, N=200• Use FATCOP sequential solver• Turn on all user defined heuristics• Prove the solution found by
heuristics is within 20% gap in about 90,000 nodes.
• Run CPLEX MIP solver for comparison
Back to Seymour
• Schmieta, Pataki, Linderoth and Ferris– explored to depth 8 in tree– applied cuts at each of these 256 nodes– solved in parallel, using whatever resources
available (CPLEX, FATCOP,...)
• Problem solved with over 1 year CPU– over 10 million nodes, 11,000 hours
Seymour Node 319
• FATCOP– 47.0 hrs with 2,887,808 nodes– average number of machine used is
108
• CPLEX– 12 days, 10 hrs with 356,600 nodes– single machine, clique cuts useful