Skip to content

Add ExaModels.jl / ExaModelsPower.jl backend for AC OPF model generation #6

@kibaekkim

Description

@kibaekkim

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

  • Add ExaModels.jl and ExaModelsPower.jl as dependencies.
  • Implement AC OPF model construction using ExaModelsPower.jl.
  • Add a config option (e.g., model_backend = :jump or :examodels).
  • Integrate the ExaModels backend into the existing data-generation workflow.
  • Support GPU execution (backend = CUDABackend()) where available.
  • Document usage in README.

Impact
Significantly improved AD and solve performance for AC OPF, with optional GPU acceleration and minimal changes to the existing workflow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions