ILOG CPLEX 11.0 User's Manual > Advanced Programming Techniques > Parallel Optimizers > Parallel MIP Optimizer

By default, ILOG CPLEX uses the deterministic parallel MIP optimizer to solve a mixed integer programming problem. In doing so, it exploits parallel computations while it solves nodes of the MIP branch & cut tree. It also executes strong branching computations in parallel.

Besides these applications of parallel processes, there may be additional possibilities for parallel computation at the root node. However, these additional possibilities are not deterministic; they are known as opportunistic. In order to exploit such opportunities, your application must allow ILOG CPLEX to run opportunistically in parallel. To do so, either you can explicitly set the parallel mode parameter (ParallelMode, CPX_PARAM_PARALLELMODE) to the value -1 (minus one), or you can implicitly allow opportunistic parallel optimization by setting the threads parameter (Threads, CPX_PARAM_THREADS) to a value strictly greater than one.

As explained in Determinism of Results, you may find it advantageous to develop your application in deterministic parallel mode, where you can rely on the invariance and repeatability of the search path and results to evaluate the correctness of your model and solutions. After you are convinced of correctness of your model, there are two different approaches you can take in deployment of your application. If performance is critical, consider deploying in opportunistic parallel mode. While faster performance in opportunistic mode cannot be guaranteed, it does generally out-perform deterministic mode. On the other hand, if performance is not critical, you may prefer to deploy in deterministic mode to retain the possibility of reproducing any problems that your end-user may encounter during deployment. In summary, you need to evaluate for your model and application which mode is more appropriate.

The following sections offer further insight into managing MIP optimization in parallel.