+ All Categories
Home > Documents > Parallelism in Linear and Mixed Integer Programming (slides)

Parallelism in Linear and Mixed Integer Programming (slides)

Date post: 19-Jan-2017
Category:
Upload: vutu
View: 226 times
Download: 1 times
Share this document with a friend
41
Parallelism in Linear and Mixed Integer Programming Ed Rothberg
Transcript
Page 1: Parallelism in Linear and Mixed Integer Programming (slides)

Parallelism in Linear and Mixed Integer Programming

Ed Rothberg

Page 2: Parallelism in Linear and Mixed Integer Programming (slides)

Problem Statement - LP

uxl

bAxtoSubject

xcMinimize T

A linear program (LP) is an optimization problem of the form

2 © 2013 Gurobi Optimization

Page 3: Parallelism in Linear and Mixed Integer Programming (slides)

Problem Statement - MIP

integerallorsome j

T

x

uxl

bAxtoSubject

xcMinimize

A mixed-integer program (MIP) is an optimization problem of the form

3 © 2013 Gurobi Optimization

Page 4: Parallelism in Linear and Mixed Integer Programming (slides)

Three Important Characteristics

Broadly applicable

Computationally demanding

Solutions have significant financial value ◦ Can be worth millions of $’s

4 © 2013 Gurobi Optimization

Page 5: Parallelism in Linear and Mixed Integer Programming (slides)

Accounting

Advertising

Agriculture

Airlines

ATM provisioning

Compilers

Defense

Electrical power

Energy

Finance

Food service

Forestry

Gas distribution

Government

Internet applications

Logistics/supply chain

Medical

Mining

National research labs

Online dating

Portfolio management

Railways

Recycling

Revenue management

Semiconductor

Shipping

Social networking

Sourcing

Sports betting

Sports scheduling

Statistics

Steel Manufacturing

Telecommunications

Transportation

Utilities

Workforce scheduling

5

Customer Applications (Q4 2011-Q3 2012)

© 2013 Gurobi Optimization

Page 6: Parallelism in Linear and Mixed Integer Programming (slides)

Linear Programming

Simplex solution path

Interior-point central path

o Predictor

o Corrector

Optimum

© 2013 Gurobi Optimization 6

Page 7: Parallelism in Linear and Mixed Integer Programming (slides)

LP relaxation at root node:

18 hours

Branch-and-bound

1710 nodes, first feasible

3.7% gap

Time: 92 days!!

MIP does not appear to be difficult: LP can

be a bottleneck

Example 1: LP still can be HARD

LP Mostly a Solved Problem SGM: Schedule Generation Model

157323 rows, 182812 columns

7 © 2013 Gurobi Optimization

Page 8: Parallelism in Linear and Mixed Integer Programming (slides)

MIP solution framework: LP based Branch-and-Bound

G

A

P

Root

Integer

Integer

Infeas

Lower Bound

Upper Bound

Remarks: (1) GAP = 0 Proof of optimality (2) In practice: good quality solution often enough

Solve LP relaxation:

v=3.5 (fractional)

8 © 2013 Gurobi Optimization

Page 9: Parallelism in Linear and Mixed Integer Programming (slides)

MIP Definitely Not a Solved Problem

A customer model: 44 constraints, 51 variables, maximization 51 general integer variables (and no bounds)

Branch-and-bound: Initial integer solution -2186.0 Initial upper bound -1379.4

…after 1.4 days, 32,000,000 B&B nodes, 5.5 Gig tree Integer solution and bound: UNCHANGED

9 © 2013 Gurobi Optimization

Page 10: Parallelism in Linear and Mixed Integer Programming (slides)

Financial Impact

Example: NFL ◦ Profitability of a $9B company heavily

dependent on the solution to one extremely difficult MIP model

Many other examples

10 © 2013 Gurobi Optimization

Page 11: Parallelism in Linear and Mixed Integer Programming (slides)

Throw Hardware at the Problem?

The landscape… ◦ Broadly applicable

◦ Computationally demanding

◦ Solutions have significant financial value

Plus… ◦ “Obvious” sources of parallelism in the algorithms

Yet… ◦ Parallel computing has had a very limited impact

in practice

11 © 2013 Gurobi Optimization

Page 12: Parallelism in Linear and Mixed Integer Programming (slides)

Parallelism in Linear Programming

12 © 2013 Gurobi Optimization

Page 13: Parallelism in Linear and Mixed Integer Programming (slides)

Simplex Steps

Maintain a basis B

◦ And a basis factorization B=LU

In each iteration:

◦ Choose entering variable

◦ Compute direction (Dx = B-1 A

*j)

◦ Compute step length

◦ Update basis and basis factor

Periodically recompute B=LU

13 © 2013 Gurobi Optimization

Page 14: Parallelism in Linear and Mixed Integer Programming (slides)

Barrier Steps

Pre-compute a fill-reducing ordering for

A -1 A’

In each iteration:

◦ Form A -1 A’

◦ Factor A -1 A’ = L D L’

◦ Solve L D L’ x = b

◦ A few Ax and A’x computations

◦ A bunch of vector stuff

Perform a crossover to a basic solution

14 © 2013 Gurobi Optimization

Page 15: Parallelism in Linear and Mixed Integer Programming (slides)

For Any LP/MIP

Presolve step to reduce the size of

the model

◦ Remove fixed variables

◦ Remove trivially satisfied constraints

◦ Use equalities to eliminate variables

◦ Etc.

15 © 2013 Gurobi Optimization

Page 16: Parallelism in Linear and Mixed Integer Programming (slides)

Comparison of Steps

Iterations ◦ Simplex: cheap, thousands-millions ◦ Barrier: expensive, several dozen

Sparse linear algebra ◦ Simplex: triangular solves on a very sparse, constantly

changing matrix ◦ Barrier: Cholesky factorization of a matrix with static

structure

Parallelism ◦ Simplex: no general-purpose parallel algorithm ◦ Barrier: Cholesky factorization, triangular solves,

matrix-vector multiplies, ordering, …

16 © 2013 Gurobi Optimization

Page 17: Parallelism in Linear and Mixed Integer Programming (slides)

Performance Comparison

Run a set of 1242 LP test models

◦ Public benchmarks and customer models

Exclude those that are…

◦ Too easy: solved in less than 0.01 seconds by both

methods

◦ Too hard: not solved in 2 hours by either method

◦ Leaves 809 models

Compute geometric mean of runtime ratios

17 © 2013 Gurobi Optimization

Page 18: Parallelism in Linear and Mixed Integer Programming (slides)

Performance Comparison

Results:

Gurobi 5.6, quad-core i7-3770K processor

Barrier run on 4 cores, includes crossover

18

Wins GeoMean

Dual simplex 541 1.00

Barrier 483 0.95

Simplex wins more often, but barrier is 5%

faster on average

© 2013 Gurobi Optimization

Page 19: Parallelism in Linear and Mixed Integer Programming (slides)

Exclude Simpler Models

What if you change the ‘too easy’

threshold…?

19

Wins Bar/Dual

MinTime Dual Barrier GeoMean

>0.01s 541 483 0.95

>0.1s 275 298 0.70

>1s 121 207 0.49

As models get more difficult, barrier pulls

ahead

Not on all models, though

© 2013 Gurobi Optimization

Page 20: Parallelism in Linear and Mixed Integer Programming (slides)

Peak Performance

Peak DP Gflops, from 2001 to today:

20

0

50

100

150

200

250

Pentium 4

(2GHz, SSE2,

2001)

Core 2 (2.4GHz,

4 cores, 2008)

i7 2600K

(3.5GHz, 4

cores, AVX,

2011)

i7 4770K

(3.5GHz, 4

cores, AVX2,

2013)

© 2013 Gurobi Optimization

Page 21: Parallelism in Linear and Mixed Integer Programming (slides)

Parallel Barrier Performance

Parallel speedups ◦ Models that take > 1s to solve

21 © 2013 Gurobi Optimization

1.29

1.51

1.72

1

1.2

1.4

1.6

1.8

P=2 P=4 P=12

Page 22: Parallelism in Linear and Mixed Integer Programming (slides)

Barrier Runtime Breakdown

For models that require more than 1s:

22

0%

5%

10%

15%

20%

25%

30%

35%

P=4

P=12

© 2013 Gurobi Optimization

Page 23: Parallelism in Linear and Mixed Integer Programming (slides)

Barrier Runtime Breakdown

As models get harder (P=4)…

23

0%

10%

20%

30%

40%

50%

60%

>1s

>10s

>100s

© 2013 Gurobi Optimization

Page 24: Parallelism in Linear and Mixed Integer Programming (slides)

Concurrent Optimization

Run both algorithms, stop when the

first one finishes

Results:

Gurobi 5.6, quad-core i7-3770K

Dual simplex on 1 core, barrier on 3 cores

Models that take >1s

24

GeoMean

Dual simplex 1.00

Barrier 0.49

Concurrent 0.38

© 2013 Gurobi Optimization

Page 25: Parallelism in Linear and Mixed Integer Programming (slides)

Parallelism in Mixed-Integer Programming

25 © 2013 Gurobi Optimization

Page 26: Parallelism in Linear and Mixed Integer Programming (slides)

26 © 2013 Gurobi Optimization

Subtrees in branch-and-bound are independent

MIP – Embarrassingly Parallel?

Trivial to distribute them among processors

Page 27: Parallelism in Linear and Mixed Integer Programming (slides)

Parallel MIP – Reality

MIPLIB2010 test set: ◦ Benchmark subset: 87 models, not too easy, not too hard

27 © 2013 Gurobi Optimization

2.18

3.28

1

1.5

2

2.5

3

3.5

P=4 P=12

Page 28: Parallelism in Linear and Mixed Integer Programming (slides)

28 © 2013 Gurobi Optimization

Parallel Speedup By Model (P=12)

0

5

10

15

20

25

30

35

1 100 10000 1000000 100000000

Sp

eedup

Nodes Explored

Page 29: Parallelism in Linear and Mixed Integer Programming (slides)

A Bit of Noise Mixed In

Random noise plays a big role

Example - model 60WA01: ◦ Default settings: 509s

◦ Seed=2: 23s

22X speedup from changing the random number seed

29 © 2013 Gurobi Optimization

Page 30: Parallelism in Linear and Mixed Integer Programming (slides)

30 © 2013 Gurobi Optimization

Parallel Speedup By Model (P=12)

0

2

4

6

8

10

12

14

16

0 0.2 0.4 0.6 0.8 1

Sp

eedup

Fraction of runtime at root

Page 31: Parallelism in Linear and Mixed Integer Programming (slides)

31 © 2013 Gurobi Optimization

More Accurate Picture of Search Tree

Page 32: Parallelism in Linear and Mixed Integer Programming (slides)

Root Computations

What happens at the root node? ◦ Presolve ◦ Root relaxation solution ◦ Cutting planes ◦ Heuristics ◦ Symmetry detection ◦ Initial branch variable selection ◦ …

Basic motivation ◦ Better to discover something at the root than

rediscover it at every node

32 © 2013 Gurobi Optimization

Page 33: Parallelism in Linear and Mixed Integer Programming (slides)

Example – Cutting Planes

Identify constraints that cut off continuous solutions but don’t cut off integer solutions ◦ Simple example: clique cut (binary variables)

x + y <= 1, y + z <= 1, x + z <= 1

Feasible relaxation solution: x=y=z=0.5

Implied: x + y + z <= 1

Add redundant constraints to the model to tighten the relaxation ◦ 13 different cutting plane types in Gurobi

33 © 2013 Gurobi Optimization

Page 34: Parallelism in Linear and Mixed Integer Programming (slides)

Example – Symmetry

Identify symmetry in the model ◦ Given a MIP

min {c’x | Ax <= b}

◦ Find all automorphisms:

Row permutation a

Column permutation b

(b, a)(A) = A, a(c) = c, b(b) = b

During search, prune subtrees that are isomorphic to already explored subtrees

34 © 2013 Gurobi Optimization

Page 35: Parallelism in Linear and Mixed Integer Programming (slides)

Test environment ◦ Internal test set (~6000 models)

◦ Solvable by at least one version

◦ At least one version takes > 100 seconds

◦ Geometric means speedup

◦ P=4*

Version-to-version improvements ◦ Gurobi 1.0 -> 2.0: 2.4X

◦ Gurobi 2.0 -> 3.0: 2.2X (5.1X)

◦ Gurobi 3.0 -> 4.0: 1.3X (6.6X)

◦ Gurobi 4.0 -> 5.0: 2.0X (12.8X)

◦ Gurobi 5.0 -> 5.5: 1.3X (16.4X)

◦ Gurobi 5.5 -> 5.6: 1.3X (20.9X)**

*p=4 vs. p=1 for V5.1 – 1.9X

**Approximately 2x per year

MIP Speedup 2009-Present

35 © 2013 Gurobi Optimization

Page 36: Parallelism in Linear and Mixed Integer Programming (slides)

The Nature of the Improvements

MIP improvements generally reduce the number of nodes explored ◦ Speed of processing branch-and-bound nodes

hasn’t changed much over the years

◦ Improvements often increase the time spent at the root node

Consequence ◦ Better MIP algorithms -> fewer opportunities for

parallelism

36 © 2013 Gurobi Optimization

Page 37: Parallelism in Linear and Mixed Integer Programming (slides)

Concurrent MIP

Same idea as for LP: ◦ Apply different algorithms on different

processors ◦ First one that finishes wins

For MIP: ◦ Consider different strategies rather than

different algorithms More/less aggressive cuts More/less aggressive heuristics Different branch variable selection More/less aggressive presolve

◦ Most effective strategy we’ve found so far… Different random number seeds

37 © 2013 Gurobi Optimization

Page 38: Parallelism in Linear and Mixed Integer Programming (slides)

Concurrent MIP

MIPLIB2010 test set: ◦ Models that require >100s

◦ Different random number seeds on each instance

38 © 2013 Gurobi Optimization

1.72

1.89

1

1.2

1.4

1.6

1.8

2

P=5 P=25

Page 39: Parallelism in Linear and Mixed Integer Programming (slides)

39 © 2013 Gurobi Optimization

Distributed MIP

Not all is lost

Still plenty of models with large search trees

Simple distributed scheme sometimes works well

Page 40: Parallelism in Linear and Mixed Integer Programming (slides)

Distributed MIP

Parallel speedups, versus a single machine

40 © 2013 Gurobi Optimization

1

3

5

7

9

11

13

4 machines 8 machines 16 machines

danoint

neos5

ran14x18

Page 41: Parallelism in Linear and Mixed Integer Programming (slides)

Conclusions

Significant demand for performance ◦ The data is there

◦ The money is there

Despite “obvious” sources of parallelism, parallel computing continues to play only a modest role

41 © 2013 Gurobi Optimization


Recommended