Runnable notebooks from GPU Acceleration in Optimization and Optimal Control, pre-congress workshop WS-12 at the 23rd IFAC World Congress (BEXCO, Busan, Sunday 23 August 2026).
Workshop page, lecture slides, and rendered notebooks: https://madsuite.org/ifac2026/
| Notebook | Contents |
|---|---|
1-gpu-computing.ipynb |
GPU computing in the Julia language: arrays, broadcasting, map/reduce, linear algebra, KernelAbstractions.jl kernels, batched simulation |
2-optimal-control-and-estimation.ipynb |
Direct transcription, pendulum swing-up, Goddard's rocket by orthogonal collocation, particle steering, parameter estimation for the Boehm STAT5 model |
reductions-solution.ipynb |
Worked solution to the interior-point reductions exercise |
montecarlo-pi-solution.ipynb |
Worked solution to the Monte-Carlo π exercise |
minimum-time-solution.ipynb |
Worked solution to the minimum-time swing-up exercise |
particle-steering-solution.ipynb |
Worked solution to the particle steering exercise |
The notebooks ship without outputs, so every output you see is one you generated. Executed versions, with outputs from the workshop's GPU servers (NVIDIA Quadro GV100), are rendered on the workshop page.
The GPU parts need an NVIDIA GPU; the CPU parts (Ipopt solves, plotting) run anywhere. During the workshop itself, a hosted notebook server with this environment preinstalled is provided in the room, so none of this setup is needed there.
-
Install Julia 1.12.
-
Instantiate the project environment (
Project.tomlpins the package versions the notebooks were executed with):julia --project=. -e 'using Pkg; Pkg.instantiate()' -
Install the Jupyter kernel, pointed at this environment:
using Pkg; Pkg.add("IJulia") using IJulia installkernel("julia-ifac2026", "--project=@.")
-
Start Jupyter in this directory and select the
julia-ifac2026kernel:jupyter lab
The notebooks read boehm_data.jl and figs/ by relative path, so run
them from this directory.
MIT