Hi, thanks for your reply.
We are indeed already setting the THREADS param.
We set it using Runtime.getRuntime().availableProcessors() so whatever machine we host it, it should use all available threads.
During our tests, we've been using 20 or so vehicles, and 1000+ jobs. I'm assuming there's multiple routes!
What we're seeing is that it the searchSolutions() phase does indeed use all the available cores, but they're only utilised to about 10-50%.
I'm wondering if there's something we're doing wrong that's holding that method back from using 100% of the available cores.