How to solve a batch of instances?

Hi there, Cuopt has an impressive performance on solving a single instance as seen in the Homberger example, how can I test it with a batch of inputs just like the parallel computing in neural networks?


Thanks for your inquiry. cuOpt solvers are GPU accelerated so we already have a high device utilization and execute multiple instances concurrently. Running multiple partitions per GPU is on our roadmap. Are you attempting to feed different data models, or does search space need to be partitioned, or does your data needs to be enhanced with real time updates etc? Please share additional details on the problem you are attempting to solve with batched inputs so we understand correctly?

Thank You,

Thanks for your reply.

  1. What I’m trying to do is feed a batch of instances, e.g., the size of input TSP data is 10 x 100 x 2 like the input for the neural networks, meaning 10 TSP instances with the scale of 100, and then output 10 solutions simultaneously, rather than just input 100 x 2 data and solving 10 instances within a ‘For loop’. Furthermore, I think CuOpt should take a step to deal with solving a batch of instances with different scales, e.g. the input is a list of TSP instances: [20x2, 30x2,40x2,…] and output their solutions at the same time. I don’t know what’s going on in these cases. If it already supports these demands, feel free to make comments.

  2. It’s interesting about your description 'Running multiple partitions per GPU ', does it mean dividing a big problem into several small subproblems and optimizing each of them?

  3. I’m confused about the description of ‘different data models’, does CuOpt support different base solvers (heuristics) and you mean use different methods to solve an instance?



Thanks for your response.

We have a planned feature on our roadmap to accept multiple cost matrices. Currently, we accept a primary cost matrix of size nxn that stores an abstract cost representing any linear combination of multiple costs.
Today, we scale to 10K locations on a single instance of GPU. We can further partition to increase the problem space to accommodate larger cases that does not fit in a single GPU. We are currently in the process of benchmarking and results will be available in a future release.
cuOpt is a heuristics based solver and by different models, we mean variating the parameters that feed your current model.