KTH ROYAL INSTITUTE OF TECHNOLOGY
Distributed L-shaped Algorithms in Julia
Martin Biel
KTH - Royal Institute of Technology
November 16, 2018
Distributed L-shaped Algorithms in Julia Martin Biel KTH - Royal - - PowerPoint PPT Presentation
KTH ROYAL INSTITUTE OF TECHNOLOGY Distributed L-shaped Algorithms in Julia Martin Biel KTH - Royal Institute of Technology November 16, 2018 Motivation - Stochastic programming decision x Martin Biel (KTH) November 16, 2018 2/19 Motivation
KTH ROYAL INSTITUTE OF TECHNOLOGY
Distributed L-shaped Algorithms in Julia
Martin Biel
KTH - Royal Institute of Technology
November 16, 2018
Motivation - Stochastic programming
decision x
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Stochastic programming
decision x →
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Stochastic programming
decision x →
→ recourse y
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Stochastic programming
decision x →
→ recourse y
x based on predicted outcomes {ωi}n
i=1
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Stochastic programming
decision x →
→ recourse y
x based on predicted outcomes {ωi}n
i=1
◮ Power systems ◮ Finance ◮ Transportation
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Stochastic programming
decision x →
→ recourse y
x based on predicted outcomes {ωi}n
i=1
◮ Power systems ◮ Finance ◮ Transportation
◮ Formulate deterministically equivalent optimization problem ◮ Optimize extended form using standard solvers
Martin Biel (KTH) November 16, 2018 2/19
Motivation - Limitations of standard approaches
Martin Biel (KTH) November 16, 2018 3/19
Motivation - Limitations of standard approaches
◮ 16,384 scenarios ◮ 1.95 billion variables and constraints in the extended form ◮ ~ 1 hour computation time on a Titan supercomputer
Martin Biel (KTH) November 16, 2018 3/19
Motivation - Limitations of standard approaches
◮ 16,384 scenarios ◮ 1.95 billion variables and constraints in the extended form ◮ ~ 1 hour computation time on a Titan supercomputer
Martin Biel (KTH) November 16, 2018 3/19
Motivation - Limitations of standard approaches
◮ 16,384 scenarios ◮ 1.95 billion variables and constraints in the extended form ◮ ~ 1 hour computation time on a Titan supercomputer
Martin Biel (KTH) November 16, 2018 3/19
Motivation - Limitations of standard approaches
◮ 16,384 scenarios ◮ 1.95 billion variables and constraints in the extended form ◮ ~ 1 hour computation time on a Titan supercomputer
Parallel algorithms that work on distributed data are required
Martin Biel (KTH) November 16, 2018 3/19
Contribution
Martin Biel (KTH) November 16, 2018 4/19
Contribution
Martin Biel (KTH) November 16, 2018 4/19
Contribution
Martin Biel (KTH) November 16, 2018 4/19
Contribution
Martin Biel (KTH) November 16, 2018 4/19
Contribution
Rapidly formulate and solve real-world problems as stochastic programs
Martin Biel (KTH) November 16, 2018 4/19
Contribution - Framework
Run time
Worker 1 Worker N Master
Workers
· Local scenario data · Local JuMP model · Cuts for global problem
Master
· Global problem · Global solver · Worker coordination Domain-specific models Hydromodels.jl Algebraic modeling language StochasticPrograms.jl Scalable distributed solvers LShapedSolvers.jl
Design time
Figure: Overview of software framework.
Martin Biel (KTH) November 16, 2018 4/19
Outline
Martin Biel (KTH) November 16, 2018 5/19
Background - Stochastic programming
Two-stage linear stochastic program minimize
x∈Rn
cTx + Eω[Q(x, ξ(ω))] s.t. Ax = b x ≥ 0 where Q(x, ξ(ω)) = min
y∈Rm
qT
ωy
s.t. Tωx + Wy = hω y ≥ 0
Martin Biel (KTH) November 16, 2018 6/19
Background - Stochastic programming
Two-stage linear stochastic program minimize
x∈Rn
cTx + Eω[Q(x, ξ(ω))] s.t. Ax = b x ≥ 0 where Q(x, ξ(ω)) = min
y∈Rm
qT
ωy
s.t. Tωx + Wy = hω y ≥ 0 Deterministically equivalent form minimize
x∈Rn,yi∈Rm
cTx +
n
πiqT
i yi
s.t. Ax = b Tix + Wiyi = hi, i = 1, . . . , n x ≥ 0, yi ≥ 0, i = 1, . . . , n
Martin Biel (KTH) November 16, 2018 6/19
Background - Stochastic programming
Figure: L-shaped structure.
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X x0 Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X x0 Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X x0 x1 Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X x0 x1 Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Cutting-plane algorithms
X = {x ∈ Rn | Ax = b, x ≥ 0} ˆ X = Optimal set ˆ X x0 x1 x2 Figure: L-shaped cutting planes
Martin Biel (KTH) November 16, 2018 6/19
Background - L-shaped algorithm
Master problem minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0 Subproblems minimize
yi∈Rm
Qk
i = qT i yi
s.t. Wyi = hi − Tixj yi ≥ 0 ∂Qj = πiλT
i,jTi
qj = πiλT
i,jhi Martin Biel (KTH) November 16, 2018 7/19
Background - L-shaped algorithm
Master problem minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0 Subproblems minimize
yi∈Rm
Qk
i = qT i yi
s.t. Wyi = hi − Tixj yi ≥ 0 ∂Qj = πiλT
i,jTi
qj = πiλT
i,jhi
Martin Biel (KTH) November 16, 2018 7/19
Implementation - StochasticPrograms.jl
◮ Lightweight sampler objects to generate data ◮ Lightweight model recipes to generate second stage problems
Martin Biel (KTH) November 16, 2018 8/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
Martin Biel (KTH) November 16, 2018 9/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
JuMP syntax
Martin Biel (KTH) November 16, 2018 9/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
minimize
x1,x2∈R
100x1 + 150x2 s.t. x1 + x2 ≤ 120 x1 ≥ 40 x2 ≥ 20
Martin Biel (KTH) November 16, 2018 9/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
minimize
y1,y2∈R
q1(ξ) y1 + q2(ξ) y2 s.t. 6y1 + 10y2 ≤ 60 x1 8y1 + 5y2 ≤ 80 x2 0 ≤ y1 ≤ d1(ξ) 0 ≤ y2 ≤ d2(ξ)
Martin Biel (KTH) November 16, 2018 9/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
minimize
y1,y2∈R
q1(ξ) y1 + q2(ξ) y2 s.t. 6y1 + 10y2 ≤ 60 x1 8y1 + 5y2 ≤ 80 x2 0 ≤ y1 ≤ d1(ξ) 0 ≤ y2 ≤ d2(ξ)
Martin Biel (KTH) November 16, 2018 9/19
Implementation - Model recipes
✞ ☎
@first_stage sp = begin @variable(model, x1 >= 40) @variable(model, x2 >= 20) @objective(model, Min, 100*x1 + 150*x2) @constraint(model, x1 + x2 <= 120) end @second_stage sp = begin @decision x1 x2 ξ = scenario @variable(model, 0 <= y1 <= ξ.d1) @variable(model, 0 <= y2 <= ξ.d2) @objective(model, Min, ξ.q1*y1 + ξ.q2*y2) @constraint(model, 6*y1 + 10*y2 <= 60*x1) @constraint(model, 8*y1 + 5*y2 <= 80*x2) end
✝ ✆
minimize
y1,y2∈R
q1(ξ) y1 + q2(ξ) y2 s.t. 6y1 + 10y2 ≤ 60 x1 8y1 + 5y2 ≤ 80 x2 0 ≤ y1 ≤ d1(ξ) 0 ≤ y2 ≤ d2(ξ)
Martin Biel (KTH) November 16, 2018 9/19
Implementation - LShapedSolvers.jl
Martin Biel (KTH) November 16, 2018 10/19
Implementation - LShapedSolvers.jl
◮ Three different regularization procedures ◮ Distributed variants of each algorithm ◮ Numerous tweakable parameters
Martin Biel (KTH) November 16, 2018 10/19
Implementation - LShapedSolvers.jl
◮ Three different regularization procedures ◮ Distributed variants of each algorithm ◮ Numerous tweakable parameters
Martin Biel (KTH) November 16, 2018 10/19
Implementation - LShapedSolvers.jl
◮ Three different regularization procedures ◮ Distributed variants of each algorithm ◮ Numerous tweakable parameters
Martin Biel (KTH) November 16, 2018 10/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed computations in Julia
◮ Remote references: administer which node data resides on ◮ Remote calls: schedule execution tasks on the distributed data
Martin Biel (KTH) November 16, 2018 11/19
Implementation - Distributed L-shaped channels
Master node
Worker nodes
Martin Biel (KTH) November 16, 2018 12/19
Implementation - Distributed L-shaped channels
Master node
Worker nodes
Martin Biel (KTH) November 16, 2018 12/19
Implementation - Distributed L-shaped tasks
Master node ✞ ☎
function do_work!(master::Master, cuts::CutQueue, decisions::Decisions, workers::Vector{Work}) x0 = initialize() put!(decisions, 0, x0) send_work(workers, 1) while true wait(cuts) (t,Q,cut) = take!(cuts) add_cut!(master,cut) if added_cuts(master,t) ≥ κ*nscenarios(master) # Enough information to resolve master xt+1 = solve(master) # Send new work to remote nodes put!(decisions, t+1, xt+1) send_work(workers, t+1) end if added_cuts(master,t) == nscenarios(master) && converged(master) return :Optimal end end end
✝ ✆
Martin Biel (KTH) November 16, 2018 13/19
Implementation - Distributed L-shaped tasks
Worker nodes
✞ ☎
function do_work!(worker::Worker, work::Work, cuts::CutQueue, decisions::Decisions) subproblems::Vector{SubProblem} = fetch(worker) while true wait(work) t::Int = take!(work) if t == -1 # Worker finished return end x = fetch(decisions,t) # Update and solve all local subproblems @sync for subproblem in subproblems @async begin update_subproblem!(subproblem,x) cut = subproblem() Q = cut(x) # Send optimality cut to master, with timestamp # of decision and objective value put!(cuts,(t,Q,cut)) end end end end
✝ ✆
Martin Biel (KTH) November 16, 2018 14/19
Implementation - Distributed L-shaped
D : · · · C : · · · minimize
x∈Rn
cTx + s.t. Ax = b x ≥ 0
Master
W1 : · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Ts ys ≥ 0
Worker 1
Wr : · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Ts ys ≥ 0
Worker r
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 · · · C : · · · minimize
x∈Rn
cTx + s.t. Ax = b x ≥ 0
Master
W1 : 1 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Ts ys ≥ 0
Worker 1
Wr : 1 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Ts ys ≥ 0
Worker r
pass pass
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 · · · C : · · · minimize
x∈Rn
cTx + s.t. Ax = b x ≥ 0
Master
W1 : 1 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker 1
Wr : 1 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
fetch fetch
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 · · · C : · · · minimize
x∈Rn
cTx + s.t. Ax = b x ≥ 0
Master
W1 : 1 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker 1
Wr : 1 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
pass
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 · · · C : · · · minimize
x∈Rn
cTx + s.t. Ax = b x ≥ 0
Master
W1 : 1 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker 1
Wr : 1 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
pass
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 · · · C : · · · minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0
Master
W1 : 1 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker 1
Wr : 1 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
pass
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 x1 · · · C : · · · minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0
Master
W1 : 1 2 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker 1
Wr : 1 2 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
pass pass pass
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 x1 · · · C : · · · minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0
Master
W1 : 1 2 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx1 ys ≥ 0
Worker 1
Wr : 1 2 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx0 ys ≥ 0
Worker r
pass fetch |Q − Θ| ≤ τ(ǫ + |Q|)?
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Implementation - Distributed L-shaped
D : x0 x1 · · · C : · · · minimize
x∈Rn
cTx +
n
θi s.t. Ax = b ∂Qx + θi ≥ q, i = 1, . . . , n x ≥ 0
Master
W1 : 1 2 · · · S1 : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx1 ys ≥ 0
Worker 1
Wr : 1 2 · · · Sr : minimize
yi∈Rm
qT
s ys
s.t. Wys = hs − Tsx1 ys ≥ 0
Worker r
pass fetch
Figure: Distributed L-shaped procedure
Martin Biel (KTH) November 16, 2018 15/19
Numerical experiments - Day-ahead problem
Martin Biel (KTH) November 16, 2018 16/19
Numerical experiments - Convergence
1.0 6.0 11.0 16.0 21.0 26.0 31.0 36.0 41.0 46.0 51.0 56.0 61.0
Iteration
Q Q
Figure: L-shaped convergence for a day-ahead problem with 10 price scenarios.
Martin Biel (KTH) November 16, 2018 16/19
Numerical experiments - Single node
10 50 100 200 300 Number of Scenarios N 0.0 14.8 29.5 44.3 59.0 Computation Time T [s]
Trust-region L-shaped Gurobi Linearized Regularized Linearized Level set
Figure: Median computation time required to solve day-ahead problems.
Martin Biel (KTH) November 16, 2018 16/19
Numerical experiments - Strong scaling
1 2 4 8 16 Number of Cores P 0.0 37.2 74.5 111.7 Computation Time T [s]
Distributed TR Distributed L-shaped Distributed LV Distributed RD
Figure: Computation time.
1 2 4 8 16 Number of Cores P 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 Parallel Efficiency E [% of linear scaling]
Distributed TR Distributed L-shaped Distributed LV Distributed RD
Figure: Parallel efficiency.
Martin Biel (KTH) November 16, 2018 16/19
Numerical experiments - Load imbalance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Iteration i 1 2 3 4 5 Computation Time T [s]
Master Worker Mean computation time per iteration
Figure: 4 workers.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Iteration i 1 2 3 4 5 Computation Time T [s]
Master Worker Mean computation time per iteration
Figure: 16 workers.
Martin Biel (KTH) November 16, 2018 16/19
Numerical experiments - Load imbalance
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Iteration i 1 2 3 4 5 Computation Time T [s]
Master Worker Mean computation time per iteration
Figure: 4 workers with κ = 1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Iteration i 1 2 3 4 5 Computation Time T [s]
Master Worker Mean computation time per iteration
Figure: 4 workers with κ = 0.5.
Martin Biel (KTH) November 16, 2018 16/19
Final Remarks
Discussion
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Outlook on future work
◮ Larger scale ◮ Less flat
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Outlook on future work
◮ Larger scale ◮ Less flat
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Outlook on future work
◮ Larger scale ◮ Less flat
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Discussion
Outlook on future work
◮ Larger scale ◮ Less flat
Martin Biel (KTH) November 16, 2018 17/19
Final Remarks
Julia as an alternative to MPI
◮ Abstractions for distributed computing are simple and efficient ◮ High-level features for modeling optimization problems
Martin Biel (KTH) November 16, 2018 18/19
Final Remarks
Julia as an alternative to MPI
◮ Abstractions for distributed computing are simple and efficient ◮ High-level features for modeling optimization problems
Martin Biel (KTH) November 16, 2018 18/19
Final Remarks
Julia as an alternative to MPI
◮ Abstractions for distributed computing are simple and efficient ◮ High-level features for modeling optimization problems
Martin Biel (KTH) November 16, 2018 18/19
Final Remarks
Summary
Martin Biel (KTH) November 16, 2018 19/19
Final Remarks
Summary
Martin Biel (KTH) November 16, 2018 19/19
Final Remarks
Summary
Martin Biel (KTH) November 16, 2018 19/19
Final Remarks
Summary
Martin Biel (KTH) November 16, 2018 19/19
Final Remarks
Summary
https://github.com/martinbiel
Martin Biel (KTH) November 16, 2018 19/19