Skip to content

Conversation

@tmckayus
Copy link
Contributor

This change provides remote execution from solve_lp and solve_mip, thereby available from all interfaces and transparent to the user.

The remote mode is triggered by setting CUOPT_REMOTE_HOST and CUOPT_REMOTE_PORT env vars currently. Later, API calls will be added that allow the mode to be specified through the API.

The essential change here is to make all problem input and solution output use CPU memory exclusively outside of solve_lp and solve_mip. This alllows efficient serialization and deserialziation to and from the server, and also will allow cuopt to be run on a host without a GPU for remote solves.

Still to do: enhancing the server implementation to provide job queues, job abort, etc.

rgsl888prabhu and others added 10 commits October 27, 2025 17:02
<!--

Thank you for contributing to cuOpt :)

Here are some guidelines to help the review process go smoothly.

Many thanks in advance for your cooperation!

Note: The pull request title will be included in the CHANGELOG.
-->


## Description
Update introduction to use engine instead of library

## Checklist

- [x] I am familiar with the [Contributing
Guidelines](https://github.com/NVIDIA/cuopt/blob/HEAD/CONTRIBUTING.md).
- Testing
   - [ ] New or existing tests cover these changes
   - [ ] Added tests
   - [ ] Created an issue to follow-up
   - [x] NA
- Documentation
   - [ ] The documentation is up to date with these changes
   - [x] Added new documentation
   - [ ] NA
Forward-merge branch-25.10 into branch-25.12
Hot fix with the following commits:
- NVIDIA#541
- NVIDIA#544
- NVIDIA#550
Forward-merge branch-25.10 into branch-25.12
moved solution and optimization problems to host memory
Move to and from GPU is now local to solve_lp and solve_mip in
local solving cases
@tmckayus tmckayus requested review from a team as code owners November 13, 2025 15:43
@tmckayus tmckayus requested review from hlinsen, nguidotti and rgsl888prabhu and removed request for a team November 13, 2025 15:43
@coderabbitai
Copy link

coderabbitai bot commented Nov 13, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@tmckayus
Copy link
Contributor Author

tmckayus commented Nov 13, 2025

Note: remote solve is not working for the moment, switching to protocol buffers ....

The remote server will be created by build.sh. It is written in C++ and is called "cuopt_remote_server".

You can run it like this:

$ cuopt_remote_server 9999

On the client side, just set the env vars and then solve normally:

$ CUOPT_REMOT_HOST=localhost CUOPT_REMOTE_PORT=9999 cuopt_cli mydata.mps

Copy link
Collaborator

@rgsl888prabhu rgsl888prabhu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there an approach on how to make a client backward compatible so new client will not break with any old server and any other such scenarios ?

find_package(CUDSS REQUIRED)

# Find Protocol Buffers for remote solve support
find_package(Protobuf REQUIRED)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may need to add protobuf requirement to both cli and library in dependecies.yaml, conda/receipe/libcuopt

@@ -0,0 +1,457 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights
* SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights

@@ -0,0 +1,457 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights
* reserved. SPDX-License-Identifier: Apache-2.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may want to refer to this latest PR on adding new shortened licensed header. https://github.com/NVIDIA/cuopt/pull/573/files

@rgsl888prabhu rgsl888prabhu changed the base branch from branch-25.12 to main November 13, 2025 17:54
@anandhkb anandhkb added this to the 25.12 milestone Nov 16, 2025
@rgsl888prabhu rgsl888prabhu changed the base branch from main to release/25.12 November 17, 2025 21:34
@chris-maes chris-maes modified the milestones: 25.12, 26.02 Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants