Gap in callbacks

140 views
Skip to first unread message

Rich LaSota

unread,
Mar 26, 2019, 9:01:34 PM3/26/19
to Gurobi Optimization

Our client would like periodic updates on the progress of a gurobi optimization.

We have implemented a callback utilizing where == GRB.callback.MIP to check the progress of a solution about every 5 sec, but noticed there were still stretches of time (almost a minute) where we received no updates.

Upon examination of all possible gurobi callbacks for this model, we found that there is a gap where gurobi issues no callbacks:


Furthermore, it appears that gurobi is holding onto the GIL (Global Interpreter Lock) during this time -- our other python threads get no timeslice.

This period of inactivity seems to occur at the end of processing the root node:

    Nodes    |    Current Node    |     Objective Bounds      |     Work
 Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time
   ....
     0     0 -423267.16    0  606          - -423267.16      -     -   20s
     0     0 -423250.72    0  572          - -423250.72      -     -   23s      <==== GAP starts here
     0     2 -423250.72    0  569          - -423250.72      -     -   89s
     7    14 -422822.58    3  548          - -422822.58      -   469   90s
   170   172 -409636.35   31  409          - -422480.32      -   108   95s


Should there not be at least POLLING callbacks during this period?
Can you explain what gurobi is doing during this time?

This happens with many of our models.
I have an .mps file that I could send if needed (but of course this is a large model).

Thanks!

Michael Winkler

unread,
Mar 28, 2019, 3:48:54 AM3/28/19
to Gurobi Optimization
Hi Rich,

could you provide the instance (in MPS format and additional settings you use)? Best if you make it available via a cloud storage/file sharing site, if possible.

Best, Michael
Reply all
Reply to author
Forward
0 new messages