The Decomposition Algorithm

Parallel Execution

At each iteration of the decomposition method, the subproblem is solved over the reduced cost that is derived from the dual information that solving the master problem provides. As discussed in the section Overview: Decomposition Algorithm, the subproblem often has a block-diagonal structure that enables the solver to process each block independently.

The decomposition algorithm can be run in either a single-machine or a distributed computing environment. In single-machine mode, the computation is executed by multiple threads on a single computer. You can specify options for parallel execution in the PERFORMANCE statement, which is documented in the section PERFORMANCE Statement of Chapter 4: Shared Concepts and Topics. You can control the number of threads that are used by specifying the NTHREADS= option in the PERFORMANCE statement. In distributed mode, the computation is executed in a distributed computing environment. You can control the number of grid nodes (machines) that are used by specifying the NODES= option in the PERFORMANCE statement. The decomposition algorithm supports only the deterministic mode of the PARALLELMODE= option in the PERFORMANCE statement. The default mode of operation is single-machine mode, where the number of concurrent threads is based on the number of CPUs (cores) on the machine (subject to any system configuration limitations).

The specified number of threads is used at each iteration to designate the number of blocks to be processed simultaneously. This same value is also used to determine the number of threads to be used for solving the master problem if the chosen solver method supports multithreading. To avoid contention, the number of threads that are allocated to each subproblem solve is 1.

Note: The SAS High-Performance Optimization license is required to invoke the DECOMP option in distributed mode.