ExaModels

An algebraic modeling and automatic differentiation tool in Julia Language, specialized for SIMD abstraction of nonlinear programs.

https://github.com/exanauts/examodels.jl

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.1%) to scientific vocabulary

Keywords

automatic-differentiation julia-language mathematical-programming modeling-language modeling-tool nonlinear-optimization optimization
Last synced: 6 months ago · JSON representation ·

Repository

An algebraic modeling and automatic differentiation tool in Julia Language, specialized for SIMD abstraction of nonlinear programs.

Basic Info
  • Host: GitHub
  • Owner: exanauts
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 4.83 MB
Statistics
  • Stars: 62
  • Watchers: 3
  • Forks: 8
  • Open Issues: 6
  • Releases: 10
Topics
automatic-differentiation julia-language mathematical-programming modeling-language modeling-tool nonlinear-optimization optimization
Created almost 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Logo

An algebraic modeling and automatic differentiation tool in Julia Language, specialized for SIMD abstraction of nonlinear programs.


| License | Documentation | Build Status | Coverage | Citation | |:-----------------:|:----------------:|:----------------:|:----------------:|:----------------:| | License: MIT | doc doc | build | codecov | arXiv |

Overview

ExaModels.jl employs what we call SIMD abstraction for nonlinear programs (NLPs), which allows for the preservation of the parallelizable structure within the model equations, facilitating efficient, parallel reverse-mode automatic differentiation on the GPU accelerators.

ExaModels.jl is different from other algebraic modeling tools, such as JuMP or AMPL, in the following ways: - Modeling Interface: ExaModels.jl requires users to specify model equations within a restricted environment, ensuring that the model equations are always executable in a SIMD fashion. This structured approach enables ExaModels.jl to maintain the SIMD-compatible format of the model equations, facilitating parallel evaluations of both the model functions and their derivatives. This unique feature distinguishes ExaModels.jl from other algebraic modeling tools. - Performance: ExaModels.jl compiles (via Julia's compiler) derivative evaluation codes tailored to each computation pattern. Through reverse-mode automatic differentiation using these tailored codes, ExaModels.jl achieves significantly faster derivative evaluation speeds, even when using CPU. - Portability: ExaModels.jl goes beyond traditional boundaries of algebraic modeling systems by enabling derivative evaluation on GPU accelerators. Implementation of GPU kernels is accomplished using the portable programming paradigm offered by KernelAbstractions.jl. With ExaModels.jl, you can run your code on various devices, including multi-threaded CPUs, NVIDIA GPUs, AMD GPUs, and Intel GPUs. Note that Apple's Metal is currently not supported due to its lack of support for double-precision arithmetic.

Highlight

The performance comparison of ExaModels with other algebraic modeling systems for evaluating different NLP functions (obj, con, grad, jac, and hess) are shown below. Note that Hessian computations are the typical bottlenecks. benchmark

Supporting ExaModels.jl

Owner

  • Name: Exanauts
  • Login: exanauts
  • Kind: organization

An eclectic collection of ECP ExaSGD project codes

Citation (CITATION.bib)

@article{shin2024accelerating,
  title={Accelerating optimal power flow with {GPU}s: {SIMD} abstraction of nonlinear programs and condensed-space interior-point methods},
  author={Shin, Sungho and Anitescu, Mihai and Pacaud, Fran{\c{c}}ois},
  journal={Electric Power Systems Research},
  volume={236},
  pages={110651},
  year={2024},
  publisher={Elsevier}
}

GitHub Events

Total
  • Create event: 38
  • Commit comment event: 16
  • Release event: 6
  • Issues event: 26
  • Watch event: 12
  • Delete event: 12
  • Issue comment event: 65
  • Push event: 222
  • Pull request review comment event: 53
  • Pull request review event: 51
  • Pull request event: 80
  • Fork event: 3
Last Year
  • Create event: 38
  • Commit comment event: 16
  • Release event: 6
  • Issues event: 26
  • Watch event: 12
  • Delete event: 12
  • Issue comment event: 65
  • Push event: 222
  • Pull request review comment event: 53
  • Pull request review event: 51
  • Pull request event: 80
  • Fork event: 3

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 27
  • Total pull requests: 127
  • Average time to close issues: 4 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 15
  • Total pull request authors: 8
  • Average comments per issue: 2.33
  • Average comments per pull request: 0.41
  • Merged pull requests: 102
  • Bot issues: 1
  • Bot pull requests: 33
Past Year
  • Issues: 11
  • Pull requests: 43
  • Average time to close issues: 15 days
  • Average time to close pull requests: 7 days
  • Issue authors: 10
  • Pull request authors: 6
  • Average comments per issue: 1.55
  • Average comments per pull request: 0.44
  • Merged pull requests: 23
  • Bot issues: 1
  • Bot pull requests: 17
Top Authors
Issue Authors
  • sshin23 (6)
  • amontoison (4)
  • mlubin (3)
  • jbcaillau (2)
  • KSepetanc (2)
  • frapac (2)
  • tmigot (1)
  • sharabhshukla (1)
  • SanjayJohnson02 (1)
  • binkob (1)
  • joaquimg (1)
  • pulsipher (1)
  • jerryfung110 (1)
  • JuliaTagBot (1)
Pull Request Authors
  • sshin23 (102)
  • github-actions[bot] (47)
  • frapac (7)
  • amontoison (5)
  • klamike (3)
  • michel2323 (2)
  • jbcaillau (2)
  • jerryfung110 (2)
  • blegat (1)
  • FHoltorf (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels
formatting (38) automated pr (38) no changelog (38)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 114 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 18
juliahub.com: ExaModels

An algebraic modeling and automatic differentiation tool in Julia Language, specialized for SIMD abstraction of nonlinear programs.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 114 Total
Rankings
Dependent repos count: 10.2%
Average: 35.6%
Dependent packages count: 37.6%
Stargazers count: 40.6%
Forks count: 54.2%
Last synced: 6 months ago