Originally posted by: SystemAdmin
First of all, the solution pool is certainly not the reason for the performance degradation of parallel MIP that you are seeing. Moreover, you need to note that the parallel MIP solver will just take a different path than the sequential solver. For example, it will take different branching decisions and thereby construct a different search tree.
This difference is unavoidable, and it is just random which of the algorithms produces a smaller search tree. So, my guess is that the performance degradation that you are seeing is really just bad luck on a single model. If you see a consistent degradation on a larger set of models, then something structural must happen, but I don't think that this will be the case. On average, the parallel MIP solver should be faster because it processes more nodes per second.
The solutions you have in the solution pool after calling cplex.solve() are just the solutions that CPLEX encountered during the search process. There is no additional overhead involved to produce these solutions. We just do not throw them away if we find a better incumbent but instead keep them in the solution pool. Therefore, limiting the number of pool solutions will most probably not change anything w.r.t. solving speed. The only benefit that you will get is a very small reduction in memory consumption.
If you really want to limit the solution pool size, you can do so by setting the CPX_PARAM_SOLNPOOLCAPACITY parameter to 0. Please look at the manual to find out how this parameter is called in Concert.
Tobias
#CPLEXOptimizers#DecisionOptimization