Originally posted by: Falcon_G
Dear all
I have done this before in earlier versions without any problem but with 12.5 seems to have an issue.
I have several different callbacks including a UserCutcallback where I generate cuts.
To make use of threads, I declare an instance of IloFastMutex and pass it to every callback.
Of course I lock it when I enter and unlock it when I return.
Every thing is fine, there is no deadlock, I think.
Visual studio 10 C++ compiler reports like:
{code}
The thread 'Win32 Thread' (0xea88) has exited with code 0 (0x0).
The thread 'CLazyConstraintCallback::main' (0xc1cc) has exited with code 0 (0x0).
The thread 'CUserCutCallback::main' (0xc0c4) has exited with code 0 (0x0).
First-chance exception at 0x77d745ce in mphlppt-benders-bc-multi-thread.exe: 0xC0000005: Access violation reading location 0xfeeefeee.
Unhandled exception at 0x77d615de in mphlppt-benders-bc-multi-thread.exe: 0xC0000005: Access violation reading location 0xfeeefeee.
First-chance exception at 0x77d5016e in mphlppt-benders-bc-multi-thread.exe: 0x00000000: The operation completed successfully.
Unhandled exception at 0x77d615de in mphlppt-benders-bc-multi-thread.exe: 0x00000000: The operation completed successfully.
The program '[49468] mphlppt-benders-bc-multi-thread.exe: Native' has exited with code 0 (0x0).
{code}
but in the end the just before end I am re-directed to this function with an error message:
{code}
IloBool solve() { return IloAlgorithm::solve(); }
{code}
Apparently something went wrong which is not clear what it was and there is no message clarifying it.
The few last lines of cplex report are the following:
{code}
29 2 132691.7570 25 139302.9383 131215.3395 23116 5.81% y[1][0][9] N 65 33 5
* 30 1 integral 0 136576.4953 131215.3395 23397 3.93% y[1][1][9] U 69 65 6
GUB cover cuts applied: 0
Clique cuts applied: 0
Cover cuts applied: 5
Implied bound cuts applied: 7
Flow cuts applied: 0
Mixed integer rounding cuts applied: 9
Flow path cuts applied: 0
Zero-half cuts applied: 0
Gomory fractional cuts applied: 0
Disjunctive cuts applied: 0
User cuts applied: 1089
Root node processing (before b&c):
Real time = 58.09 sec. (34873.18 ticks)
Parallel b&c, 4 threads:
Real time = 22.93 sec. (8373.74 ticks)
Sync time (average) = 0.00 sec.
Wait time (average) = 0.00 sec.
------------
Total (root+branch&cut) = 81.03 sec. (43246.92 ticks)
{code}
I appreciate constructive comments.
#CPLEXOptimizers#DecisionOptimization