# OR-Tools for JuMP

**URL:** https://discourse.julialang.org/t/or-tools-for-jump/106171
**Category:** Optimization (Mathematical)
**Created:** [November 14, 2023, 12:44am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171 "2023-11-14T00:44:12Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Stuart\_Rogers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stuart_rogers/32/10694_2.png) [@Stuart\_Rogers](https://discourse.julialang.org/u/Stuart_Rogers)
#### Post date: [November 14, 2023, 12:44am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/1 "2023-11-14T00:44:12Z")

</div>

Are there plans to add the solvers in OR-Tools to JuMP? OR-Tools has 2 LP solvers, PDLP and GLOP, and a constraint programming solver, CP-SAT, which solves integer linear programs (no continuous variables) and more general constraint programs.

> **[GitHub - google/or-tools: Google's Operations Research tools:](https://github.com/google/or-tools/tree/stable)**
>
> stable

> **[OR-Tools  |  Google for Developers](https://developers.google.com/optimization?hl=ko)**
>
> OR-도구 제품군은 제약 조건 최적화, 선형 최적화, 흐름 및 그래프 알고리즘을 위한 운영 연구 소프트웨어 라이브러리와 API를 제공합니다.

---

<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: [November 14, 2023, 1:07am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/2 "2023-11-14T01:07:03Z")

</div>

@dourouc05 works at Google on the OR-Tools team and is slowly chipping away at this when they can spare the time.

See for recent progress: [Add builder for OR-Tools by dourouc05 · Pull Request #7278 · JuliaPackaging/Yggdrasil · GitHub](https://github.com/JuliaPackaging/Yggdrasil/pull/7278)

---

<div class="post-metadata">

### Author: ![dourouc05](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dourouc05/32/2646_2.png) [@dourouc05](https://discourse.julialang.org/u/dourouc05)
#### Post date: [November 14, 2023, 1:25am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/3 "2023-11-14T01:25:57Z")

</div>

To give more details, the first step of brining OR-Tools to Julia will focus on MathOpt and the solvers that it can access, i.e. Glop, PDLP (but up to 2-GB models), and CP-SAT (but only for MIP formulations). I’ll make an announcement here when there is something useable :)!

(However, the Julia interface will probably never be officially supported, unlike the C++, C#, Java, and Python ones. There is currently no ETA, but it will probably have to wait until OR-Tools 10.0 at least for the required C API to be available and supported.)

---

<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: [November 14, 2023, 1:28am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/4 "2023-11-14T01:28:38Z")

</div>

A MathOptInterface wrapper for MathOpt, plus Yggdrasil support for PDLP would go a long way.

See [https://www.youtube.com/watch?v=L5b4YQowXBg](https://www.youtube.com/watch?v=L5b4YQowXBg) for the distinction between MathOpt and MOI.

---

<div class="post-metadata">

### Author: ![Stuart\_Rogers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stuart_rogers/32/10694_2.png) [@Stuart\_Rogers](https://discourse.julialang.org/u/Stuart_Rogers)
#### Post date: [January 10, 2024, 7:23pm UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/5 "2024-01-10T19:23:05Z")

</div>

There are Julia and C implementations of the LP algorithm PDLP that run on an Nvidia GPU. I suspect that the C implementation is faster than the Julia implementation. Is it possible to add one or both of these as JuMP solvers?

> **[cuPDLP.jl: A GPU Implementation of Restarted Primal-Dual Hybrid Gradient for...](https://arxiv.org/abs/2311.12180)**
>
> In this paper, we provide an affirmative answer to the long-standing question: Are GPUs useful in solving linear programming? We present cuPDLP.jl, a GPU implementation of restarted primal-dual hybrid gradient (PDHG) for solving linear programming...

> **[GitHub - jinwen-yang/cuPDLP.jl](https://github.com/jinwen-yang/cuPDLP.jl)**
>
> Contribute to jinwen-yang/cuPDLP.jl development by creating an account on GitHub.

> **[GitHub - COPT-Public/cuPDLP-C: Code for solving LP on GPU using first-order...](https://github.com/COPT-Public/cuPDLP-C)**
>
> Code for solving LP on GPU using first-order methods - GitHub - COPT-Public/cuPDLP-C: Code for solving LP on GPU using first-order methods

---

<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: [January 11, 2024, 8:18pm UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/6 "2024-01-11T20:18:21Z")

</div>

I have no plans to write the wrapper, but I’m happy to review or give pointers to anyone who wants to give it a go.

---

<div class="post-metadata">

### Author: ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)
#### Post date: [February 18, 2025, 7:04am UTC](https://discourse.julialang.org/t/or-tools-for-jump/106171/7 "2025-02-18T07:04:54Z")

</div>

For future reference, I just added a JuMP interface to [GitHub - jinwen-yang/cuPDLP.jl](https://github.com/jinwen-yang/cuPDLP.jl) so you can now use it with JuMP
