Originally posted by: EdKlotz
Paul,
Regarding the lower iteration count, that is indeed a thread synchronization issue. This is fundamental to performing deterministic synchronization; the bottom line is that you cannot have the threads communicate at any time other than a synch. point if you want deterministic behavior. And unless you can come up with a metric that measures deterministic time in a way that guarantees that fewer simplex iterations since the last synch. point on one thread (since the last synch. point) is guaranteed to take less deterministic time than more iterations on another thread, this non monotonicity can happen. Given the variability associated with basis factorizations and the associated solves, along with the differences in node processing in different threads, I am not optimistic such a metric exists.
You can avoid this node log behavior by switching to single threaded or opportunistic parallel mode, but in exchange for monotonic cumulative iteration counts you get either the slower performance of single threaded mode, or the possible lack of reproducibility with two consecutive runs on the same machine with the same configurations.
I too believe it's harmless, but if you can upload a SAV file of the model if you see it again, or just upload a SAV file that seems reasonably close, I can run it with different random seeds and see if anything shows up. Also, did you get this log with interactive CPLEX or only with a program? If the latter, you might as well try running with the datacheck parameter set to 1 just to see if it sheds any light on this. Given that you vary the set of constraints used in the optimization, maybe there's one or two constraints in the program that have an infinite or really large right hand side that somehow comes into play here.
Ed
#CPLEXOptimizers#DecisionOptimization