# Linear constraint optimisation on GPU

**URL:** <https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692>\
**Category:** Optimization (Mathematical)\
**Tags:** question, jump, optimization\
**Created:** [September 24, 2021, 11:16am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692 "2021-09-24T11:16:39Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Huy\_Nguyen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huy_nguyen/32/19188_2.png) [@Huy\_Nguyen](https://discourse.julialang.org/u/Huy_Nguyen)\
**Post date:** [September 24, 2021, 11:16am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/1 "2021-09-24T11:16:39Z")

</div>

I currently use JuMP and Ipopt to solve Linear Constraints Optimisation problems, primarily with linear equality and inequality constraints. I would like to either solve many of these problems in parallel, or sequentially but with GPU acceleration. Are there any packages that would allow this kind of computation?

---

<div class="post-metadata">

**Author:** ![LaurentPlagne](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/laurentplagne/32/10103_2.png) [@LaurentPlagne](https://discourse.julialang.org/u/LaurentPlagne)\
**Post date:** [September 24, 2021, 10:01pm UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/2 "2021-09-24T22:01:43Z")

</div>

Not a specialist of mathematical optimization but I would guess that most of underlying algorithms are strongly divergent (branching all the time) which is not a good fit for GPUs.

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [September 25, 2021, 12:41am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/3 "2021-09-25T00:41:00Z")

</div>

SCS has GPU support: [GitHub - jump-dev/SCS.jl: Julia Wrapper for SCS (https://github.com/cvxgrp/scs)](https://github.com/jump-dev/SCS.jl#scs-on-gpu)

If you’re using Ipopt, you should try a different linear solver: [https://github.com/jump-dev/Ipopt.jl#linear-solvers](https://github.com/jump-dev/Ipopt.jl#linear-solvers)

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [September 25, 2021, 12:44am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/4 "2021-09-25T00:44:35Z")

</div>

Check [https://github.com/sshin23/MadNLP.jl](https://github.com/sshin23/MadNLP.jl) with cuSOLVER.

---

<div class="post-metadata">

**Author:** ![Huy\_Nguyen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huy_nguyen/32/19188_2.png) [@Huy\_Nguyen](https://discourse.julialang.org/u/Huy_Nguyen)\
**Post date:** [September 29, 2021, 9:45am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/5 "2021-09-29T09:45:06Z")

</div>

Thank you very much for the suggestion. I was wrong, I was actually using Tulip, which is reasonably fast for solving one problem at a time, but not at scale.

---

<div class="post-metadata">

**Author:** ![Huy\_Nguyen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/huy_nguyen/32/19188_2.png) [@Huy\_Nguyen](https://discourse.julialang.org/u/Huy_Nguyen)\
**Post date:** [September 29, 2021, 9:45am UTC](https://discourse.julialang.org/t/linear-constraint-optimisation-on-gpu/68692/6 "2021-09-29T09:45:33Z")

</div>

Thank you! this is what I will probably try first, since it interfaces with JuMP 🙂. There does not appear to be a lot of documentation as to how to get the cuSolver extension however?
