Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  optimization limitations on different PCs

    Posted 07/24/17 09:15 AM

    Originally posted by: a.teuffel


    Hi everybody,

     

    I have an optimization problem in a .lp-file. When I read this file in cplex in the command line, I can optimize it and get a solution on a standard desktop PC.

    When I try to solve the same problem from the same file on a rather fast PC with 16 cores and 32 GB RAM, it seems cplex can not find a solution.

    The RAM is full soon and nothing works anymore. (Actually CPLEX terminates with an out of memory warning)

     

    Does anybody have any clue why this happens?


    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: optimization limitations on different PCs

    Posted 07/25/17 03:38 AM

    At which point does CPLEX go out of memory on the 16 core machine? Does it require a larger search tree and eventually runs out of memory or does it run out of memory rather early in the search?

    One problem could be that with 16 cores CPLEX by default uses 16 threads and thus requires 16 copies of your model. Depending on how big your model is that may already eat quite a lot of your 32 GB memory. Does it help to reduce either CPX_PARAM_THREADS or CPX_PARAM_AUXROOTTHREADS?

    Another problem could be performance variability. If you change anything in the environment of the solver (machine, thread count, RAM, parameters, ...) then small and subtle differences may make the algorithm take a different path through the search tree and this may change solution time from seconds to hours (or vice versa). If this is the case then you should just get a very large search tree on that 16 core machine and eventually run out of memory.


    #CPLEXOptimizers
    #DecisionOptimization


  • 3.  Re: optimization limitations on different PCs

    Posted 07/25/17 05:25 AM

    Originally posted by: a.teuffel


    Thanks for your answer! I don't want to crash the machine again (since other people also depend on it) and check the point at which cplex aborted.

    But I guess your point with the 16 threads makes a lot of sense. The problem is rather large and using 16 threads leading to 16 copies of my problem is killing the RAM..

    I will try CPX_PARAM_THREADS and CPX_PARAM_AUXROOTTHREADS. What do they acutally do? The first one limits the threads CPLEX uses in total I assume. I read the article to the second one here: https://www.ibm.com/support/knowledgecenter/SS9UKU_12.4.0/com.ibm.cplex.zos.help/Parameters/topics/Threads.html but I have to admit I don't understand all of it. Is there something like a "main/root" thread and then additional auxiliary threads? With the second parameter I can limit the number of these auxiliary threads?


    #CPLEXOptimizers
    #DecisionOptimization


  • 4.  Re: optimization limitations on different PCs

    Posted 07/25/17 08:47 AM

    CPX_PARAM_THREADS just limits the global number of threads CPLEX can use.

    CPX_PARAM_AUXROOTTHREADS applies only to the root node solve. The bare minimum you have to do at the root node is to solve the LP relaxation and do cutting planes. Additionally, CPLEX can do optional things (for example run some heuristics) in parallel to the LP solve and the root cut loop. The parameter controls how many threads are devoted to these optional tasks. Sometimes it is sufficient to limit these threads, and once the root node is done do B&B with all available cores. That is why there is a specific parameter for the number parallel threads used at the root.


    #CPLEXOptimizers
    #DecisionOptimization