12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Threads and Performance ConsiderationsThe benefit of applying more threads to optimizing a specific problem varies depending onthe optimizer you use and the characteristics of the problem. You should experiment toassess performance improvements and degradation when you apply more or fewerprocessors.For example, consider the following results:Root node processing (before b&c):Real time = 3.22Parallel b&c, 2 threads:Real time = 8.29Sync time (average) = 2.74Wait time (average) = 2.48-------Total (root+branch&cut) = 11.51 sec.When the wait time is particularly high, as in that example, consider changing the parallelmode from deterministic to opportunistic or changing from parallel to sequential processing.Determinism of Results on page 493 explains more about these choices.Another key consideration in setting optimizer and global thread limits is your managementof overall system load.Determinism of ResultsBy default, <strong>CPLEX</strong> will employ parallel algorithms only as long as the optimization remainsdeterministic. In this context, deterministic means that repeated solving of the same modelwith the same parameter settings on the same computing platform will follow exactly thesame solution path, yielding the same level of performance and the same values in thesolution.The parallel barrier optimizer can not work deterministically because of designconsiderations. Likewise, by design, the concurrent optimizer cannot work deterministically.(Even though determinism cannot be guaranteed theoretically for parallel barrier orconcurrent optimization, these optimizers rarely exhibit behavior that is not deterministic inpractice.) Because of this consideration about determinism in their design, and because of itsimplicit contract to use parallel algorithms deterministically by default, <strong>ILOG</strong> <strong>CPLEX</strong> doesnot invoke these optimizers by default in parallel. Thus, in order to use parallel processorsfor concurrent optimization or for barrier optimization, you must explicitly set the threadsparameter (Threads, CPX_PARAM_THREADS) to a value strictly greater than one. Thishigher setting implicitly specifies to <strong>ILOG</strong> <strong>CPLEX</strong> that the user is willing to accept behaviorthat may not be deterministic.In contrast, for mixed integer programming (MIP), two parallel implementations areavailable in <strong>ILOG</strong> <strong>CPLEX</strong>: deterministic and opportunistic. Opportunistic parallel<strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL 493

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!