Skip to content

Commit a910db6

Browse files
committed
bench: case studies with multithreading on the pendulum
1 parent fe68b7b commit a910db6

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

benchmark/3_bench_predictive_control.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,12 +264,24 @@ nmpc_ipopt_ms = NonLinMPC(estim; Hp, Hc, Mwt, Nwt, Cwt, optim, transcription)
264264
nmpc_ipopt_ms = setconstraint!(nmpc_ipopt_ms; umin, umax)
265265
JuMP.unset_time_limit_sec(nmpc_ipopt_ms.optim)
266266

267+
optim = JuMP.Model(optimizer_with_attributes(Ipopt.Optimizer,"sb"=>"yes"), add_bridges=false)
268+
transcription = MultipleShooting(f_threads=true)
269+
nmpc_ipopt_mst = NonLinMPC(estim; Hp, Hc, Mwt, Nwt, Cwt, optim, transcription)
270+
nmpc_ipopt_mst = setconstraint!(nmpc_ipopt_mst; umin, umax)
271+
JuMP.unset_time_limit_sec(nmpc_ipopt_mst.optim)
272+
267273
optim = JuMP.Model(optimizer_with_attributes(Ipopt.Optimizer,"sb"=>"yes"), add_bridges=false)
268274
transcription = TrapezoidalCollocation()
269275
nmpc_ipopt_tc = NonLinMPC(estim; Hp, Hc, Mwt, Nwt, Cwt, optim, transcription)
270276
nmpc_ipopt_tc = setconstraint!(nmpc_ipopt_tc; umin, umax)
271277
JuMP.unset_time_limit_sec(nmpc_ipopt_tc.optim)
272278

279+
optim = JuMP.Model(optimizer_with_attributes(Ipopt.Optimizer,"sb"=>"yes"), add_bridges=false)
280+
transcription = TrapezoidalCollocation(f_threads=true)
281+
nmpc_ipopt_tct = NonLinMPC(estim; Hp, Hc, Mwt, Nwt, Cwt, optim, transcription)
282+
nmpc_ipopt_tct = setconstraint!(nmpc_ipopt_tct; umin, umax)
283+
JuMP.unset_time_limit_sec(nmpc_ipopt_tct.optim)
284+
273285
optim = JuMP.Model(MadNLP.Optimizer, add_bridges=false)
274286
transcription = SingleShooting()
275287
nmpc_madnlp_ss = NonLinMPC(estim; Hp, Hc, Mwt, Nwt, Cwt, optim, transcription)
@@ -301,11 +313,21 @@ CASE_MPC["Pendulum"]["NonLinMPC"]["Noneconomic"]["Ipopt"]["MultipleShooting"] =
301313
sim!($nmpc_ipopt_ms, $N, $ry; plant=$plant, x_0=$x_0, x̂_0=$x̂_0),
302314
samples=samples, evals=evals, seconds=seconds
303315
)
316+
CASE_MPC["Pendulum"]["NonLinMPC"]["Noneconomic"]["Ipopt"]["MultipleShooting (threaded)"] =
317+
@benchmarkable(
318+
sim!($nmpc_ipopt_mst, $N, $ry; plant=$plant, x_0=$x_0, x̂_0=$x̂_0),
319+
samples=samples, evals=evals, seconds=seconds
320+
)
304321
CASE_MPC["Pendulum"]["NonLinMPC"]["Noneconomic"]["Ipopt"]["TrapezoidalCollocation"] =
305322
@benchmarkable(
306323
sim!($nmpc_ipopt_tc, $N, $ry; plant=$plant, x_0=$x_0, x̂_0=$x̂_0),
307324
samples=samples, evals=evals, seconds=seconds
308325
)
326+
CASE_MPC["Pendulum"]["NonLinMPC"]["Noneconomic"]["Ipopt"]["TrapezoidalCollocation (threaded)"] =
327+
@benchmarkable(
328+
sim!($nmpc_ipopt_tct, $N, $ry; plant=$plant, x_0=$x_0, x̂_0=$x̂_0),
329+
samples=samples, evals=evals, seconds=seconds
330+
)
309331
CASE_MPC["Pendulum"]["NonLinMPC"]["Noneconomic"]["MadNLP"]["SingleShooting"] =
310332
@benchmarkable(
311333
sim!($nmpc_madnlp_ss, $N, $ry; plant=$plant, x_0=$x_0, x̂_0=$x̂_0),

0 commit comments

Comments
 (0)