Decision Optimization

Decision Optimization

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


#Analytics
#DecisionOptimization
#DecisionOptimization
 View Only
  • 1.  Multiple CPLEX single-thread instances

    Posted 01/09/20 08:54 AM

    Originally posted by: healyp


    If I run  several identical instances of CPLEX in single-thread mode I note that the more instances I run the slower the solve time is.  I am curious as to what specifically causes this slowdown.

     

    At a facile level one might say "well, what else did you expect?!" but I'd like to know a little more about what the bottle-neck is. 

     

    Can anybody explain where the contention is, even when the number of instances is smaller than the no. of CPUs available?

     

    Many thanks.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 2.  Re: Multiple CPLEX single-thread instances

    Posted 01/09/20 09:30 AM

    Hi,

    do you run all those instances in parallel ?

    how do you call them ?

    regards


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 3.  Re: Multiple CPLEX single-thread instances

    Posted 01/09/20 10:18 AM

    Originally posted by: healyp


    Each CPLEX instance is called via the JuMP interface of the julia programming language.  I have a master process that farms out jobs (in this case the very same instance) to a number of pre-specified workers on each remote machine.  I have come to notice that the instance solves fastest when it is the only one solved on that machine.  Assigning 2, 4, ... instances to the same machine causes each instance to be solved slower.  All machines, in a student lab, are identical.

     

    Thanks.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer


  • 4.  Re: Multiple CPLEX single-thread instances

    Posted 01/09/20 10:25 AM

    All the instances share the same memory and memory bus. So this is one bottle neck. This also includes the cache and things like cache misses etc.

    Also, if you don't use explicit CPU binding, multiple instances may end up on the same CPU, which will of course cause a slowdown as well.


    #DecisionOptimization
    #OPLusingCPLEXOptimizer