PERFORMANCE Statement

PERFORMANCE <performance-options> ;

The PERFORMANCE statement is available in the OPTMODEL, OPTLP, OPTMILP, OPTQP, and OPTLSO procedures. You can use this statement to control the parallel execution of parallel features, such as the concurrent LP algorithm and the OPTMILP option tuner. For an example that demonstrates the use of the PERFORMANCE statement in the OPTMODEL procedure, see Example 8.5 in Chapter 8: The Nonlinear Programming Solver.

The PERFORMANCE statement is available in both single-machine mode and distributed mode. This section focuses on single-machine mode. For information about the PERFORMANCE statement in distributed mode, see Chapter 2: Shared Concepts and Topics in Base SAS 9.4 Procedures Guide: High-Performance Procedures.

Note: Distributed mode requires SAS High-Performance Optimization.

In single-machine mode, the PERFORMANCE statement enables you to control the number of threads used and the output of the ODS table that reports procedure timing. When you specify the PERFORMANCE statement, the PerformanceInfo ODS table is produced. This table lists performance characteristics such as execution mode and number of threads. You can specify the following performance-options in the PERFORMANCE statement:

DETAILS

Produces the Timing ODS table. This table shows a breakdown of the time used in each step of the procedure.

NTHREADS=number

specifies the number of threads that the procedure can use. The value of number can be any integer between 1 and 256 inclusive. This option overrides the SAS system option THREADS | NOTHREADS and the SAS system option CPUCOUNT=. If you do not specify the NTHREADS= option, the number of threads is determined by the SAS sytem option CPUCOUNT=.

Setting the NTHREADS= option to a number greater than the actual number of available physical cores might result in reduced performance. Specifying a high NTHREADS= value does not guarantee shorter solution time; the actual change in solution time depends on the computing hardware and the scalability of the underlying algorithms in the specified procedure. In some circumstances, the procedure might use fewer threads than the specified value of the NTHREADS= option because the procedure’s internal algorithms have determined that a smaller number is better.

The SAS system options THREADS | NOTHREADS and CPUCOUNT= are documented in SAS System Options: Reference.

PARALLELMODE=number | string

specifies the parallel processing mode. This option affects the solution results that are obtained from running the same model and the same option values on the same platform multiple times.

The values of number and the corresponding values of string are listed in Table 4.1.

Table 4.1: Values for PARALLELMODE= Option

number

string

Description

0

DETERMINISTIC

Requires algorithms to produce the same results every time.

1

NONDETERMINISTIC

Permits algorithms to produce different solution results. This mode requires less synchronization in parallel processing and might attain better performance than DETERMINISTIC mode.


Some procedures support only one mode; the modes that a procedure supports are detailed in its chapter.