Open DrWatt opened 6 days ago
Yes, I think that to get an actual performance benefit from a distributed (Dask-based) version of Simulated Annealing, we need to think about a custom implementation of the algorithm instead of using the SimulatedAnnealingSampler
by D-Wave, which is not meant to run in a distributed setting.
An easier short-term approach would be instead to implement the parallelization of the SA algorithm at the sampler reads level.
Suppose for example the problem requires you to run the SimulatedAnnealingSampler
with num_reads=1000
(the number of reads is simply the number of times you execute the whole global optimization algorithm). Each read is starting from exactly the same BinaryQuadraticModel
and it is completely independent from any other read. So, if you have for instance 10 worker nodes available in your distributed computation setting, you can run in parallel just 100 reads per node getting roughly a 10x speedup compared to a single-node execution.
The idea of using distributed computing to tackle the simulated annealing task has come up.
A first test using Dask is being worked on, the first results will come in shortly, but working on that it becomes evident that some work should be done directly on the library to make it more compliant with this kind of implementation.