PHDG and Warmstart
OngoingDear Gurobi Support Team
First of all, thank you very much for all your efforts, especially the rapid implementation of PDHG on GPU. I am currently making extensive use of Gurobi’s PDHG GPU capability and find it very promising. However, I noticed that when I enable LPWarmStart (which I believe is the default), PDHG is used only for the first subproblem, while the remaining subproblems are solved with dual simplex. I am curious about the reason for this behavior and would greatly appreciate any clarification you could provide. Below are the logs I obtained. I am solving the problem with Benders Decomposition. Therefore, RHS of subproblem changes.
1. LPWarmStart = 0 (the following is two consecutive log)


2. Default LPWarmStart (automatic) (the following is two consecutive log)


Thank you very much!
-
Hi Inho,
Can you provide a Minimal Reproducible Example that we can work with?
I have tried reproducing this, but was not successful - in my experiments PDHG is used and is warm started by the existing basis.
- Riley
0 -
Hi Riley,
I’ve noticed that warm start works well on my workstation but not on the supercomputer. There is a version difference between them (official 13.0.0 on the supercomputer and 13.0.0 beta on the workstation), but I don’t think that’s the reason. I’ll run some additional experiments and try to gain more insight.
By the way, I really appreciate your guidance about providing a reproducible example; I’ll make sure to include one from now on. I have one question: do you only accept Gurobi API–based or Python-based code? I’m currently using Julia for modeling and calling Gurobi as a solver, so I’m not sure whether I can provide a Julia example.
0 -
Hi Inho,
There is a version difference between them (official 13.0.0 on the supercomputer and 13.0.0 beta on the workstation), but I don’t think that’s the reason.
Note that the beta version is now expired and it won't be able to be run. But in case you are not aware it is expected that Gurobi will run differently on different machines and to make an accurate comparison between the performance on the machines you will need to solve many times with different values of the Seed parameter (or otherwise test against a large set of instances).
do you only accept Gurobi API–based or Python-based code? I’m currently using Julia for modeling and calling Gurobi as a solver
You're welcome to post Julia code, it's been a long time since I have used it in a meaningful way but I can generally get the idea of what is going on. It may be that the Julia package is the issue here.
- Riley
0
Please sign in to leave a comment.
Comments
3 comments