gRPC API (reference)#
The CuOptRemoteService gRPC API is defined in Protocol Buffers under the cuopt.remote package. Source files in the repository:
cpp/src/grpc/cuopt_remote_service.proto— service and job/chunk/log RPCscpp/src/grpc/cuopt_remote.proto— LP/MIP problem, settings, and result messages
Most users do not call these RPCs directly: the NVIDIA cuOpt Python API, C API, and cuopt_cli submit jobs using solver APIs plus environment variables. Custom clients call CuOptRemoteService over gRPC using these definitions. This page summarizes the service for custom integrators and debugging.
Service: CuOptRemoteService#
Asynchronous jobs#
RPC |
Purpose |
|---|---|
|
Submit an LP or MILP job in one message (within gRPC message size limits). |
|
Poll job status by |
|
Fetch a completed result (unary, when the payload fits one message). |
|
Remove a stored result from server memory. |
|
Cancel a queued or running job. |
|
Block until the job finishes (status only; use |
Chunked upload (large problems)#
RPC |
Purpose |
|---|---|
|
Begin a session; send problem metadata and settings (arrays follow as chunks). |
|
Upload one slice of a numeric array field. |
|
Finalize the upload and return |
Chunked download (large results)#
RPC |
Purpose |
|---|---|
|
Begin a download session; returns scalar result fields and array descriptors. |
|
Fetch one chunk of a result array. |
|
End the download session and release server state. |
Streaming and callbacks#
RPC |
Purpose |
|---|---|
|
Server-streaming solver log lines for a job. |
|
MILP incumbent solutions since a given index. |
Messages and constraints#
Problem types — LP and MILP in the enum; the problem payload can include quadratic objective data for QP-style solves where the client API supports it. Routing over this gRPC service is not available yet; it is planned for an upcoming release (use REST for remote routing today).
Solver settings — Carried as
PDLPSolverSettingsorMIPSolverSettingsinside the request or chunked header, aligned with the NVIDIA cuOpt solver options documentation.Errors — gRPC status codes carry failures (see comments at the end of
cuopt_remote_service.proto).
Further reading#
gRPC server behavior — Server process model and job lifecycle (overview); Advanced configuration for
cuopt_grpc_serverflags. Contributor details:cpp/docs/grpc-server-architecture.md.Advanced configuration — TLS, Docker, client environment variables, and limitations.