Release Notes#

Release Notes 24.11#

Breaking Changes#

  • Turn off prize collection when the prize objective weight is set to zero

  • Move python support from 3.9 to 3.10 as RAPIDS only supports >= 3.10 from 24.10 onwards

  • The cuOpt self-hosted endpoints are now fully asynchronous and will always return a request id or an error. The request id must be polled to obtain a result. This applies to /cuopt/request as well as the deprecated /cuopt/routes and /cuopt/lp endpoints. This will affect users of self-hosted instances who have written their own cuOpt clients. Users of the cuopt_sh_client package will not be affected.

Bug Fixes#

  • Fix an occasional error in the managed client when the Cloud returns an in-progress status

  • Gracefully handle routing problems where there is no valid solution

  • Add token cache check to delete_asset in managed client

  • Fix an indexing issue in remapping vehicle and break locations which caused the solver to run on an incorrect set of tasks

  • Enable service times when there are no task time windows

  • Fix a bug in the definition of heterogeneity when vehicle order match is present, which allows the solver to run different algorithms for producing better results

Documentation Updates#

  • Updated documentation with additional examples and helpful information to the user

New Features#

  • Add Linear Programming (LP) feature

  • Add Mixed Integer Linear Programming (MILP) feature

  • New endpoint /cuopt/request for self-hosted has been added, /cuopt/routes and /cuopt/lp have been deprecated

  • Support for the option to abort job and flush out all the jobs for self-hosted service

  • Treat not returning an initial primal and dual or all 0 as not an error

  • Implement non-uniform breaks, where vehicles/technicians can take different sets of breaks

  • Turn off prize collection when the prize objective weight is zero

Improvements#

  • cuOpt service endpoints /cuopt/request (and deprecated /cuopt/routes and /cuopt/lp) support multiple MIME types for input and output and have been optimized for speed. See the API documentation for details on supported MIME types.

  • Improve the initial solution generation step by adding available vehicles to pending tasks

  • ARM container support

Release Notes 24.07#

GPU Support#

  • Ampere and Hopper GPUs are supported.

  • Multiple GPUs per instance are not yet supported.

Breaking Changes#

None

Bug Fixes#

  • Fix a bug in shared memory allocation which caused cuda error while using prize collection.

  • cuOpt service add configurable exec timeout to client .

Documentation Updates#

New Features#

Improvements#

  • Add -v option to cuOpt client for print version.

  • Distroless cuOpt image; this would restrict interactive shell in the container.

  • Record an exception in the cuOpt service for jobs terminated in a shutdown, so each of those jobs will get an update of failure rather than an abrupt end of connection.

  • Switch the managed service client to use pexec ; this just changes the URL on how the service is accessed.

  • Improved techniques to find better routes. With this, cuOpt explores the search space more efficiently.

  • Lazy allocation of routes to reduce memory usage for large fleet size problems, and reduce any chance of exhausting GPU memory and crashing.

Release Notes 24.03#

GPU Support#

  • Ampere and Hopper GPUs are supported.

  • Multiple GPUs are not yet supported.

Breaking Changes#

  • Removed task priorities, vehicle priorities, drop infeasible tasks and mandatory task.

  • Adding data deprecating cost_matrix in data format for cost and time matrix.

Bug Fixes#

  • Report cost and arrival stamps in double precision to eliminate floating point overflow.

  • Restrict types of data that can be unpickled.

  • Fix a bug in single route PDP use case.

  • Fix a bug in handling vehicle order match constraint.

  • Fix bugs in repair solutions for min vehicles constraint.

  • Handle shared memory allocation failure gracefully.

Documentation Updates#

  • Update doc with SAK changes.

New Features#

  • Add warm up + internal timing to solver.

  • Support multiple break dimensions.

  • Implement vehicle usage cost in the objective.

  • Add cuOpt validator support to managed and self-hosted service.

Improvements#

  • Always return request id from self-hosted endpoint to align with managed service.

  • Improved logging for cuOpt microservice.

  • Handle solutions with different number of routes in EAX.

  • Adds response model for API endpoints.

  • Reduce overhead time in microservice ETL.

  • Handle shared memory issue gracefully in VRP moves.

  • Improve solver runtime checks.

  • Improve solution quality for vehicle order match constraints using a separate dimension.

  • Implement ordered crossover.

Release Notes 23.10#

Breaking Changes#

  • Change the cuOpt endpoint to expect an optimization data structure rather than a dictionary.

  • Remove penalty, precedence, Objectives : (vehicle, cumul_package_time, cumul_earliest_diff), max_slack, max_lateness_per_vehicle, solution_strategy, initial_solution_strategy, solution_scope, number_of_climbers, number_of_iterations.

  • Deprecate task/order priorities, use new feature prizes instead.

Bug Fixes#

  • Fix an out of bounds error in drop infeasible task workflow.

  • Fix a bug in the engine when the route size is equal to the route_size_limit.

Documentation Updates#

  • Add docs for building a user’s own thin client.

  • Add a user guide for breaking changes.

New Features#

  • Implement total duration objective which includes both drive times and wait times.

  • Implement prize collection.

Improvements#

  • Improve logic for time budgeting for initial solution generation.

  • Graceful exit when the shared memory limit is exceeded.

  • Add a check for client version compatibility to the server.

  • Improve the quality of routes and the scalability for TSP.

  • Improve file handling in the client for the cuOpt managed service.

  • Documentation updates.