Science Score: 77.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
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
4 of 15 committers (26.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
A solver for nonlinear programming with GPU support
Basic Info
Statistics
- Stars: 213
- Watchers: 10
- Forks: 19
- Open Issues: 36
- Releases: 28
Topics
Metadata Files
README.md
A nonlinear programming solver based on the filter line-search interior point method (as in Ipopt) that can handle/exploit diverse classes of data structures, either on host or device memories.
| License | Documentation | Build Status | Coverage | DOI |
|:-----------------:|:-----------------:|:----------------:|:----------------:|:----------------:|
| |
|
|
|
|
Installation
julia
pkg> add MadNLP
Optionally, various extension packages can be installed together:
julia
pkg> add MadNLPHSL, MadNLPPardiso, MadNLPMumps, MadNLPGPU
These packages are stored in the lib subdirectory within the main MadNLP repository. Some extension packages may require additional dependencies or specific hardware. For the instructions for the build procedure, see the following links:
Usage
Interfaces
MadNLP is interfaced with modeling packages:
Users can pass various options to MadNLP also through the modeling packages. The interface-specific syntax are shown below. To see the list of MadNLP solver options, check the documentation.
JuMP interface
julia
using MadNLP, JuMP
model = Model(()->MadNLP.Optimizer(print_level=MadNLP.INFO, max_iter=100))
@variable(model, x, start = 0.0)
@variable(model, y, start = 0.0)
@NLobjective(model, Min, (1 - x)^2 + 100 * (y - x^2)^2)
optimize!(model)
NLPModels interface
julia
using MadNLP, CUTEst
model = CUTEstModel("PRIMALC1")
madnlp(model, print_level=MadNLP.WARN, max_wall_time=3600)
Linear Solvers
MadNLP is interfaced with non-Julia sparse/dense linear solvers: - Umfpack - Lapack - HSL solvers (requires extension) - Pardiso (requires extension) - Pardiso-MKL (requires extension) - Mumps (requires extension) - cuSOLVER (requires extension) - cuDSS (requires extension)
Each linear solver in MadNLP is a Julia type, and the linear_solver option should be specified by the actual type. Note that the linear solvers are always exported to Main.
Built-in Solvers: Umfpack, LapackCPU
```julia using MadNLP, JuMP
...
model = Model(()->MadNLP.Optimizer(linearsolver=UmfpackSolver)) # default model = Model(()->MadNLP.Optimizer(linearsolver=LDLSolver)) # works only for convex problems model = Model(()->MadNLP.Optimizer(linearsolver=CHOLMODSolver)) # works only for convex problems model = Model(()->MadNLP.Optimizer(linearsolver=LapackCPUSolver)) ```
HSL (requires extension MadNLPHSL)
```julia using MadNLPHSL, JuMP
...
model = Model(()->MadNLP.Optimizer(linearsolver=Ma27Solver)) model = Model(()->MadNLP.Optimizer(linearsolver=Ma57Solver)) model = Model(()->MadNLP.Optimizer(linearsolver=Ma77Solver)) model = Model(()->MadNLP.Optimizer(linearsolver=Ma86Solver)) model = Model(()->MadNLP.Optimizer(linear_solver=Ma97Solver)) ```
Mumps (requires extension MadNLPMumps)
```julia using MadNLPMumps, JuMP
...
model = Model(()->MadNLP.Optimizer(linear_solver=MumpsSolver)) ```
Pardiso (requires extension MadNLPPardiso)
```julia using MadNLPPardiso, JuMP
...
model = Model(()->MadNLP.Optimizer(linearsolver=PardisoSolver)) model = Model(()->MadNLP.Optimizer(linearsolver=PardisoMKLSolver)) ```
CUDA (requires extension MadNLPGPU)
```julia using MadNLPGPU, JuMP
...
model = Model(()->MadNLP.Optimizer(linearsolver=LapackGPUSolver)) # for dense problems model = Model(()->MadNLP.Optimizer(linearsolver=CUDSSSolver)) # for sparse problems model = Model(()->MadNLP.Optimizer(linearsolver=CuCholeskySolver)) # for sparse problems model = Model(()->MadNLP.Optimizer(linearsolver=GLUSolver)) # for sparse problems model = Model(()->MadNLP.Optimizer(linear_solver=RFSolver)) # for sparse problems ```
Citing MadNLP.jl
If you use MadNLP.jl in your research, we would greatly appreciate your citing it.
bibtex
@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}
}
@article{shin2021graph,
title={Graph-based modeling and decomposition of energy infrastructures},
author={Shin, Sungho and Coffrin, Carleton and Sundar, Kaarthik and Zavala, Victor M},
journal={IFAC-PapersOnLine},
volume={54},
number={3},
pages={693--698},
year={2021},
publisher={Elsevier}
}
Supporting MadNLP.jl
- Please report issues and feature requests via the GitHub issue tracker.
- Questions are welcome at GitHub discussion forum.
Owner
- Name: MadNLP
- Login: MadNLP
- Kind: organization
- Email: sshin@anl.gov
- Repositories: 2
- Profile: https://github.com/MadNLP
Citation (CITATION.bib)
@article{shin2023accelerating,
title={Accelerating optimal power flow with {GPU}s: {SIMD} abstraction of nonlinear programs and condensed-space interior-point methods},
author={Shin, Sungho and Pacaud, Fran{\c{c}}ois and Anitescu, Mihai},
journal={arXiv preprint arXiv:2307.16830},
year={2023}
}
@article{shin2020graph,
title={Graph-Based Modeling and Decomposition of Energy Infrastructures},
author={Shin, Sungho and Coffrin, Carleton and Sundar, Kaarthik and Zavala, Victor M},
journal={arXiv preprint arXiv:2010.02404},
year={2020}
}
GitHub Events
Total
- Create event: 43
- Commit comment event: 43
- Release event: 3
- Issues event: 46
- Watch event: 38
- Delete event: 51
- Issue comment event: 251
- Push event: 320
- Pull request review event: 64
- Pull request review comment event: 31
- Pull request event: 126
- Fork event: 3
Last Year
- Create event: 43
- Commit comment event: 43
- Release event: 3
- Issues event: 46
- Watch event: 38
- Delete event: 51
- Issue comment event: 251
- Push event: 320
- Pull request review event: 64
- Pull request review comment event: 31
- Pull request event: 126
- Fork event: 3
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Sungho Shin | s****n@w****u | 140 |
| Sungho Shin | s****n@a****v | 132 |
| François Pacaud | f****c | 103 |
| Alexis Montoison | 3****n | 30 |
| github-actions[bot] | 4****] | 18 |
| Carleton Coffrin | c****n@c****m | 13 |
| Michel Schanen | m****n@a****v | 7 |
| Fredrik Bagge Carlson | b****n@g****m | 4 |
| Sungho Shin | s****n@m****v | 3 |
| Oscar Dowson | o****w | 2 |
| Victor M Zavala | v****a | 2 |
| Guillaume Marques | g****s@p****m | 1 |
| Jordan Jalving | j****g@g****m | 1 |
| Tommaso Sartor | t****r@p****m | 1 |
| CompatHelper Julia | c****y@j****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 75
- Total pull requests: 275
- Average time to close issues: 7 months
- Average time to close pull requests: about 1 month
- Total issue authors: 28
- Total pull request authors: 11
- Average comments per issue: 5.6
- Average comments per pull request: 1.05
- Merged pull requests: 200
- Bot issues: 0
- Bot pull requests: 48
Past Year
- Issues: 26
- Pull requests: 111
- Average time to close issues: 11 days
- Average time to close pull requests: 6 days
- Issue authors: 11
- Pull request authors: 7
- Average comments per issue: 1.77
- Average comments per pull request: 0.89
- Merged pull requests: 84
- Bot issues: 0
- Bot pull requests: 8
Top Authors
Issue Authors
- amontoison (14)
- sshin23 (11)
- frapac (10)
- baggepinnen (6)
- Franc-Z (3)
- dlcole3 (3)
- KSepetanc (3)
- jbcaillau (2)
- franckgaga (2)
- apozharski (2)
- sharabhshukla (1)
- sathvikbhagavan (1)
- bzhangcw (1)
- mohamed82008 (1)
- pjavanrood (1)
Pull Request Authors
- frapac (120)
- sshin23 (78)
- github-actions[bot] (67)
- amontoison (62)
- michel2323 (6)
- apozharski (4)
- baggepinnen (4)
- guimarqu (2)
- jalving (2)
- tmmsartor (2)
- odow (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 8
-
Total downloads:
- julia 299 total
-
Total dependent packages: 10
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 89
juliahub.com: MadNLP
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLP/stable/
- License: MIT
-
Latest release: 0.8.10
published 5 months ago
Rankings
juliahub.com: MadNLPKrylov
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPKrylov/stable/
- License: MPL-2.0
-
Latest release: 0.3.3
published almost 2 years ago
Rankings
juliahub.com: MadNLPHSL
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPHSL/stable/
- License: MPL-2.0
-
Latest release: 0.6.0
published 11 months ago
Rankings
juliahub.com: MadNLPPardiso
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPPardiso/stable/
- License: MPL-2.0
-
Latest release: 0.3.4
published over 1 year ago
Rankings
juliahub.com: MadNLPMumps
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPMumps/stable/
- License: MPL-2.0
-
Latest release: 0.5.1
published 8 months ago
Rankings
juliahub.com: MadNLPTests
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPTests/stable/
- License: MPL-2.0
-
Latest release: 0.5.2
published 12 months ago
Rankings
juliahub.com: MadNLPGPU
- Documentation: https://docs.juliahub.com/General/MadNLPGPU/stable/
- License: MPL-2.0
-
Latest release: 0.7.14
published 4 months ago
Rankings
juliahub.com: MadNLPGraph
A solver for nonlinear programming with GPU support
- Documentation: https://docs.juliahub.com/General/MadNLPGraph/stable/
- License: MPL-2.0
-
Latest release: 0.1.0
published about 5 years ago
Rankings
Dependencies
- JuliaRegistries/TagBot v1 composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/setup-julia latest composite