Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3620 +/- ##
==========================================
+ Coverage 89.66% 89.67% +0.01%
==========================================
Files 902 903 +1
Lines 105609 105926 +317
==========================================
+ Hits 94696 94992 +296
- Misses 10913 10934 +21
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
mrmundt
left a comment
There was a problem hiding this comment.
We are working on making cuopt available in our testing infrastructure; can you please add tests to this PR?
|
@Iroy30 - We've been able to make cuopt available on our internal testing machines. Can you please add tests to this PR? |
5dbf9dd to
6f64094
Compare
|
@mrmundt Thanks! We have added tests by enabling testing cuopt with LP and MILP capabilities in tests/solvers.py. Let us know if:
The following is the testing output I get relevant to cuOpt |
| t0 = time.time() | ||
| self.solution = cuopt.linear_programming.solver.Solve(self._solver_model) | ||
| t1 = time.time() |
There was a problem hiding this comment.
This is fine, but just so you're aware, we have this lovely little utility called TicTocTimer that you may want to consider using: https://pyomo.readthedocs.io/en/latest/api/pyomo.common.timing.TicTocTimer.html
|
@mrmundt What do you think about including this solver interface in pyomo.contrib.solvers? Would it make sense to pull-in new solver interfaces there, since that's where the new solver API is evolving? |
@whart222 - I am evenly split. Because we are still messing with what the new solver interfaces are going to actually do / how they will handle input and present output, I don't know if we want to put "new" solvers there or just "well-established" ones that we can robustly test / really know what they are supposed to do and return. |
|
@Iroy30 - I forgot to post this last week, but all of the failures are of the variety: |
|
@Iroy30 - Two more things:
|
Co-authored-by: Miranda Mundt <55767766+mrmundt@users.noreply.github.com>
Co-authored-by: John Siirola <jsiirola@users.noreply.github.com>
|
There are a few tests failing. I'm looking into these new failures with recent changes |
michaelbynum
left a comment
There was a problem hiding this comment.
Once tests pass, I think this is good to go.
|
@jsiirola @michaelbynum Is the CI running cuOpt tests? Could you confirm, since I mostly see it SKIPPED on CI unless I'm interpreting it wrong. I still see failures on tests on my local runs |
cuOpt is only getting tested through Jenkins - the GHA runners don't have GPUs, so the cuOpt tests should all be getting skipped there. Unfortunately, the Jenkins logs aren't published - only overall pass/fail. If you need any detail from those tests, let us know and we can manually pull it out. |
@jsiirola Is it possible for you to paste the Jenkins errors |
|
We are seeing 3 errors: On all versions of Python: Only on Python 3.13: and |
|
Ive fixed the first error. I am unable to reproduce the other two locally on my python 3.13 environment. Could be that is because I'm using the most recent cuOpt 26.02 version, I see that the CI runs on 25.10. I will have to downgrade the version and re-evaluate the fails |
|
Thanks everyone! Is this going to be included in 6.10 release of pyomo? If yes, when is the release slated for |
|
@Iroy30 yes, this will be included in the 6.10 release which should be out in the next couple days |
Fixes #3626
Summary/Motivation:
Add cuOpt math optimization (includes LP and MILP) solver backend to Pyomo so users can solve pyomo models with cuOpt
Changes proposed in this PR:
Legal Acknowledgement
By contributing to this software project, I have read the contribution guide and agree to the following terms and conditions for my contribution: