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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

If you set the memory emphasis parameter to its optional value of 1 (one), then<strong>ILOG</strong> <strong>CPLEX</strong> will adopt memory conservation tactics at the beginning of optimizationrather than only after the shortage becomes apparent. These tactics may still have anoticeable impact on solution speed because these tactics change the emphasis from speed tomemory utilization, but they could give an improvement over the default in the case wherememory is insufficient.The following sections offer further guidance about memory conservation if memoryemphasis alone does not do enough for your problem.Warning MessagesIn certain cases, <strong>ILOG</strong> <strong>CPLEX</strong> issues a warning message when it cannot perform anoperation, but it continues to work on the problem. Other <strong>ILOG</strong> <strong>CPLEX</strong> messages indicatethat <strong>ILOG</strong> <strong>CPLEX</strong> is compressing the problem to conserve memory. These warnings meanthat <strong>ILOG</strong> <strong>CPLEX</strong> finds insufficient memory available, so it is following an alternate—lessdesirable—path to a solution. If you provide more memory, <strong>ILOG</strong> <strong>CPLEX</strong> will return to thebest path toward a solution.Paging Virtual MemoryIf you observe paging of memory to disk, then your application is incurring a performancepenalty. If you increase available memory in such a case, performance will speed updramatically.Refactoring Frequency and Memory RequirementsThe <strong>ILOG</strong> <strong>CPLEX</strong> primal and dual simplex optimizers refactor the problem basis at a rateset by the ReInv parameter.The longer <strong>ILOG</strong> <strong>CPLEX</strong> works between refactoring, the greater the amount of memory itneeds for each iteration. Consequently, one way of conserving memory is to decrease theinterval between refactoring. In fact, if little memory is available to it, <strong>ILOG</strong> <strong>CPLEX</strong> willautomatically decrease the refactoring interval in order to use less memory at each iteration.Since refactoring is an expensive operation, decreasing the refactoring interval (that is,factoring more often) will generally slow performance. You can tell whether performance isbeing degraded in this way by checking the iteration log file.In an extreme case, lack of memory may force <strong>ILOG</strong> <strong>CPLEX</strong> to refactor at every iteration,and the impact on performance will be dramatic. If you provide more memory in such asituation, the benefit will be tremendous.Preprocessing and Memory RequirementsBy default, <strong>ILOG</strong> <strong>CPLEX</strong> automatically preprocesses your problem before optimizing, andthis preprocessing requires memory. If memory is extremely tight, consider turning offpreprocessing, by setting the PreInd parameter to 0. But doing this foregoes the potentialperformance benefit of preprocessing, and should be considered only as a last resort.184 <strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL

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

Saved successfully!

Ooh no, something went wrong!