Skip to content

infiniteopt/InfiniteExaModels.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InfiniteExaModels.jl

This package provides a transformation backend for InfiniteOpt such that InfiniteOpt models are efficiently transformed into ExaModels via automated direct transcription. The underlying ExaModels models leverage recurrent algebraic structure to facilitate accelerated solution on CPUs and GPUs (up to two orders-of-magnitude faster). Moreover, InfiniteOpt provides an intuitive interface that automates transcription and drastically reduced model creation time relative to solving JuMP models via ExaModels' Optimizer interface.

Abstract

Status

Build Status codecov.io

InfiniteExaModels is tested on Windows, MacOS, and Linux on Julia's LTS and the latest release.

Installation

InfiniteExaModels is a registered Julia package and is installed like any other:

using Pkg
Pkg.add("InfiniteExaModels")

Usage

InfiniteExaModels primarily provides ExaTranscriptionBackend which can be passed to an InfiniteModel along with a solver that is compliant with JuliaSmoothOptimizers standards.

CPU Usage

Typical CPU workflows will use Ipopt:

using InfiniteOpt, InfiniteExaModels, NLPModelsIpopt

model = InfiniteModel(ExaTranscriptionBackend(IpoptSolver))

GPU Usage

Typical GPU workflows will use MadNLP, CUDA, and CUDss (a compatible Nvidia GPU is required):

using InfiniteOpt, InfiniteExaModels, MadNLP, CUDA # be sure to install CUDSS first as well

model = InfiniteModel(ExaTranscriptionBackend(MadNLPSolver, backend = CUDABackend()))

Citation

If this is useful for your work please consider citing it:

@article{Gondosiswanto2025advances,
  title = {Advances to modeling and solving infinite-dimensional optimization problems in InfiniteOpt.jl},
  journal = {Digital Chemical Engineering},
  volume = {15},
  pages = {100236},
  year = {2025},
  issn = {2772-5081},
  doi = {https://doi.org/10.1016/j.dche.2025.100236},
  url = {https://www.sciencedirect.com/science/article/pii/S2772508125000201},
  author = {Evelyn Gondosiswanto and Joshua L. Pulsipher},
}

The article is freely available here.