Summary
The current AC OPF model is built with JuMP, whose sparse AD backend behaves like an interpreter and limits AD performance. For AC OPF, ExaModels.jl provides compiled derivative callbacks and can deliver >2× speed-ups on CPU. ExaModelsPower.jl already implements AC OPF using ExaModels and can run on GPU with backend = CUDABackend().
Requested Feature
Add an alternative model-generation backend using ExaModels.jl and/or ExaModelsPower.jl, with optional GPU support. The JuMP version should remain available for comparison but ExaModels should be selectable through a configuration flag.
Tasks
Impact
Significantly improved AD and solve performance for AC OPF, with optional GPU acceleration and minimal changes to the existing workflow.
Summary
The current AC OPF model is built with JuMP, whose sparse AD backend behaves like an interpreter and limits AD performance. For AC OPF, ExaModels.jl provides compiled derivative callbacks and can deliver >2× speed-ups on CPU. ExaModelsPower.jl already implements AC OPF using ExaModels and can run on GPU with
backend = CUDABackend().Requested Feature
Add an alternative model-generation backend using ExaModels.jl and/or ExaModelsPower.jl, with optional GPU support. The JuMP version should remain available for comparison but ExaModels should be selectable through a configuration flag.
Tasks
ExaModels.jlandExaModelsPower.jlas dependencies.model_backend = :jumpor:examodels).backend = CUDABackend()) where available.Impact
Significantly improved AD and solve performance for AC OPF, with optional GPU acceleration and minimal changes to the existing workflow.