gRPC Remote Execution#
NVIDIA cuOpt can run LP, MIP, and QP solves on a remote GPU host through
cuopt_grpc_server. There are two ways to reach that server:
- Remote execution (zero code change)
Set
CUOPT_REMOTE_HOSTandCUOPT_REMOTE_PORTon the client machine. The Python solver APIs, the C APIcuOptSolve, andcuopt_cliforward the solve automatically. No client code changes are required. See Quick Start.- gRPC clients (explicit client)
Your program opens a gRPC connection and manages jobs itself. Use the Python async gRPC client (
cuopt.grpc.linear_programming.Client) for job management, or speakCuOptRemoteServicedirectly from a custom client (gRPC API (Reference)).
In this section, remote execution always means the zero-code-change path above. When talking about programs that construct a client and call gRPC themselves, we say gRPC client.
Note
Problem types: LP, MIP, and QP are supported today. Routing (VRP, TSP, PDP, and related APIs) over gRPC is not available yet; support is planned for an upcoming release. For remote routing today, use the HTTP/JSON REST self-hosted server.
This is not the HTTP/JSON REST self-hosted server (FastAPI). REST is for arbitrary HTTP clients; gRPC serves remote execution (client integrated into the solver APIs) and explicit gRPC clients.
When to choose which path#
Remote execution — drop-in remote solves with no code changes; same scripts and APIs as a local solve.
Python async gRPC client — explicit job control: submit now, wait or poll later, cancel, stream solver logs, stream MIP incumbents.
Custom ``CuOptRemoteService`` client — non-Python (or fully custom) integrations that speak the protos directly. See gRPC API (Reference).
Start with Quick Start (install, server, and a minimal LP). Use Python Async gRPC Client for the Python gRPC client; Advanced Configuration for TLS, Docker, environment variables, and troubleshooting; Examples for additional patterns.
In this section
See System Requirements for GPU, CUDA, and OS requirements.