ExaAdmm.jl
ExaAdmm.jl copied to clipboard
Julia implementation of ADMM solver on multiple GPUs
Release
The first version will be released after the abstraction going on in branch `youngdae/abstraction`.
This implemented the normalized residuals and absolute/relative tolerances, resolving #54. - Any two-level ADMM should not be affected much because the residuals are used in the inner part, where the...
This is simple to implement based on https://arxiv.org/pdf/1704.06209.pdf. It looks effective for QPsub. This requires #55.
We can generalize the tolerance-based termination criteria according to this paper: https://arxiv.org/pdf/1704.06209.pdf. The current implementation terminates ADMM based on the absolute tolerance only.
Why should this be separate from the above? Why does this have to use a different CUDA setting? https://github.com/exanauts/ExaAdmm.jl/blob/863850352a81857685220ae220e0b60d52e8887e/src/models/ucmp/ucmp_admm_update_x_gpu.jl#L42-L47
``` # TODO: Parallelize the time horizon. Can we parallelize this? ``` https://github.com/exanauts/ExaAdmm.jl/blob/863850352a81857685220ae220e0b60d52e8887e/src/models/ucmp/ucmp_admm_update_x_gpu.jl#L15
Issue with #43: observe sync/wait in SQOPF test with ExaAdmm branch [https://github.com/exanauts/ExaAdmm.jl/tree/bowen/qp](url) - testing with `] test`, SQOPF stuck with sync/wait error as [error.txt](https://github.com/exanauts/ExaAdmm.jl/files/11277305/error.txt) - Running the following code block,...
Right now, `Solution` does not contain `Vm` and `Va`. This required in https://github.com/exanauts/ProxAL.jl/issues/72 . https://github.com/exanauts/ExaAdmm.jl/blob/18dcaeee26456e6e2e8ddb48926dfdd90651d9c9/src/utils/environment.jl#L175
Check out eq.(3.8) in https://link.springer.com/article/10.1007/s00186-020-00713-x
These are TODOs for refactoring. - [ ] Refactor the `mpec` model - [ ] Refactor the `pf` model - [x] #15 - [x] #13