Skip to main content

MILP Parallelism

Answered

Comments

1 comment

  • Maliheh Aramon
    • Gurobi Staff

    Hi Nastaran,

    1. Yes, you are right. The default value for the Threads parameter is 0 where Gurobi uses up to all the available logical processors on the machine. There is a soft limit of 32 threads under the default setting. If the number of logical processors on a machine is more than 32, Gurobi will only use up to the number of physical cores threads unless the parameter Threads is explicitly set to a higher value. For example, if a machine has 24 physical cores and each core has 2 threads, you would need to explicitly set the parameter Threads to 48 to use all available threads, otherwise Gurobi will use 24 threads under the default setting. 
    2. You would need to adjust the value of the Threads parameter given the explanation in the previous bullet point.
    3. If your supercomputer has a higher clock speed, it is very likely that the Gurobi performance would improve because the node throughput would increase. However, it would be hard to comment on whether the increased number of cores would be necessarily effective. The speedup from adding cores is limited by various factors such as fraction of time spent at the root node, number of nodes explored, the tree topology, and the load balancing. The best approach is to experiment with different values for the Threads parameter to experimentally find out the optimal value for the Threads parameter. 

    Changing a model formulation to make it tighter can significantly decrease the runtime to optimality, but this is not related to parallelism and the type of hardware used to solve the model.

    You might find the article What hardware should I select when running Gurobi? a useful read.

    Best regards,

    Maliheh

    0

Please sign in to leave a comment.