GPU PDHG part on separate instance
回答済みHi,
Been testing beta 13 version with GPU support. In many cases, especially for large problem instances, the GPU part is relatively fast, but the following crossover and everything after that can take a long time.
Hence a feature request, maybe initially for instant cloud. It would be nice to have two instances starting at the same time, one GPU and one without. Once the GPU part is complete the problem would continue on the non-GPU machine, saving valuable GPU-time.
I tried to run multiple problems on the same machine, staging them in time (next one starting as soon as GPU phase on the previous is complete). It works, but memory management was hard. GPU phase ending seems to create a spike in host machine RAM usage. Moving the problem to a separate machine would therefore be more stable.
-
Hi Per,
Thanks for getting in touch and for testing the beta!
This seems like quite a specific application. There would be a significant overhead between the machines (GPU → host → other machine). Have you tried benchmarking against defaults or barrier?What you can also try is solve the problem with
Crossover=0 Method=6 PDHGGPU=1 Threads=1and save the solution to an.attrfile. Once this is done you can kick off the next GPU job (with the same parameters), and a new CPU job that runs crossover on the solution (you can do this by reading the.attrfile andMethod=6 PDHGIterLimit=1 Threads=1this will skip straight to crossover after presolve and use a single thread. You will ~~not~~ only be able to queuen-1CPU-only jobs as well as a single GPU job.But my guess would be that this would slower than solving in parallel or even serial with defaults.
Cheers,
David0
サインインしてコメントを残してください。
コメント
1件のコメント