Decision Optimization

Decision Optimization

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

 View Only
  • 1.  Parallel Optimizers -

    Posted Thu June 03, 2010 11:38 AM

    Originally posted by: IBMCPLEX


    Hi,

    We use CPLEX11.1 to solve MIP Optimization problems with sequential processing ( deterministic and number of threads = 1). The code we have written (model building and CPLEX interfaces) are with assumption that it would run sequential operation. Currently, we are moving it to CPLEX12 where parallel optimizer comes as default. Is parallel optimizer is with the internal processing of CPLEX algorithms or do the interfaces (concert technolgy) should have multi threading support. (ie) Are the model we created earlier assuming sequential processing can be used for parallel optimizers?

    regards
    #CPLEXOptimizers
    #DecisionOptimization


  • 2.  Re: Parallel Optimizers -

    Posted Thu June 03, 2010 05:35 PM

    Originally posted by: SystemAdmin


    First I like to point out that w.r.t. default parallelism, there is no difference between CPLEX 11.1 and CPLEX 12.1. The main difference of CPLEX 12 in this regard is that you do no longer need a special license to activate parallel algorithms, and this is why you are now being able to use parallelism with CPLEX.

    To answer your question, as long as you are not using callbacks, you do not need to care about parallelism. The model population process (done with Concert in your case) did not change. So, if you did this in a sequential fashion before, it will still be sequential. If you want to exploit parallelism while constructing your model you need to take care of the thread handling yourself; I wouldn't recommend this as this can become quite messy.

    The solving process that is performed internally by CPLEX runs with parallel threads, but as I said: you only need to care about this if you want to use callbacks. If you are using control callbacks, CPLEX will not use parallel execution in default settings. If you force CPLEX to go parallel by explicitly setting the "threads" and/or "parmode" parameters, then you need to make sure that your callback functions are thread safe. Typically, you would use a lock to protect your shared data against concurrent access.
    Tobias
    #CPLEXOptimizers
    #DecisionOptimization