Re:The software routing 260,000 grocery deliveries a week
by sandGorgon on Tuesday August 15, 2017 @03:32PM
(#15021549)
did you not try to do this on the GPU by any chance ? Especially using CUDA libraries. I'm wondering what is the state of art in this field.
Re:The software routing 260,000 grocery deliveries a week
by michaelt on Tuesday August 15, 2017 @05:13PM
(#15022646)
Our current design isn't well suited to adaption to a GPU, because it branches a lot and the memory accesses aren't strided evenly. So we couldn't just plug our current code into a java-to-cuda compiler; we'd need to change the design.
So no, we haven't yet tested using GPUs.
Re:The software routing 260,000 grocery deliveries a week
by sandGorgon on Wednesday August 16, 2017 @12:56AM
(#15025032)
Thank you for the answer. I was not aware that these kind of considerations impact the cpu vs gpu debate. I was under the impression that most cpu heavy computations can be ported to the gpu.
Re:The software routing 260,000 grocery deliveries a week
by FractalNerve on Wednesday August 16, 2017 @06:42PM
(#15031956)
I take that it's a 'kind' of decision tree or random forest with gradient boosting, so usually it 'can' run faster on a CPU if optimized than on a GPU (if I'm not mistaken). That's at least what I get from BigML's offering.
edit: Can you provide insight?
Re:The software routing 260,000 grocery deliveries a week
by loserboss on Wednesday August 16, 2017 @07:23PM
(#15032223)
It is not decision tree or any machine learning algorithm.
It is a local search algorithm that probably has simulated annealing or tabu search as a metaheuristic.
Although, they probably segment the deliveries to some common starting points and the problem size is reduced significantly - maybe to around thousand orders per starting point.
Research can easily optimize thousands of deliveries very effectively.
Re:The software routing 260,000 grocery deliveries a week
by FractalNerve on Wednesday August 16, 2017 @07:47PM
(#15032388)
wow I'm intrigued and haven't even heard of tabu search before you mentioned it, thank you very much! You surely are my hero today loserboss =)
The JIT compiler works pretty well, and with tools like JITWatch, Honest Profiler and the -XX:+LogCompilation -XX:+PrintAssembly options you can understand how the hot paths are running in a lot of detail.
For our current operation, the optimisers' servers run Ubuntu on bare metal in our own data centres. Of course, like in any large organisation we make plenty of use of virtualization and EC2 - just not for our optimisers at this point in time.