Multi-Core Box |
The Multi-Core box on the Linear Solver tab:
may be used to perform parallel solves of linear programs on multiple cores. One of four different linear solvers is chosen for each core. LINGO will take the solution from the solver that finishes first and then interrupt the remaining solver threads.
The idea behind this approach is that different linear solvers will have relatively better or worse performance on different classes of models. However, it may be difficult to predict beforehand the solver that is most likely to outperform. So, by enabling multi-core solves, we guarantee that we will always get top performance, even without knowledge beforehand of which solver is likely to run the fastest.
Note: | The multi-core feature requires that your machine have at least one core free for each solver you wish to run. Using this feature with an inadequate number of cores will tend to decrease overall performance. |
For the Cores to Use parameter, you have the following choices: Off, 2, 3, or 4. When the default Off option is selected, the multi-core feature is disabled, and LINGO will run only one solver on linear programs, namely the one specified as part of the Solver Method option detailed above. When either option 2, 3, or 4 is selected, LINGO will run linear solvers in the requested number of cores.
When selecting 2 or more cores, you will have the option to specify which of the linear solvers to use in each of the running cores as part of the Core1 - Core4 list boxes. The available linear solvers are:
• | Primal1 - Primal simplex algorithm 1 |
• | Dual - Dual simplex algorithm |
• | Barrier - Barrier/Interior point solver (available as a option) |
• | Primal2 - Primal simplex algorithm 2, installed as part of the Barrier option |
As an example, the settings of the Multi-Core box below are requesting to run LP solvers in two cores, with core 1 running the dual simplex solver and core 2 running the barrier solver:
While LINGO is solving linear programs it normally displays solver statistics in the Solver Status Window. This will also be true with muti-core solves. However, LINGO reports the statistics from only one of the solvers, specifically, the solver selected to run in Core 1. Once optimization is complete, LINGO will populate the Solver Status Window with statistics from the solver that finished first. Finally, as part of the solution report, LINGO will display a line indicating the solver that finished first. In the solution report excerpt below, we see that the barrier solver was the first to completion:
First returning solver: BARRIER
Global optimal solution found.
Objective value: -247203.9
Infeasibilities: 0.000000
Total solver iterations: 68
Elapsed runtime seconds: 28.35