The PERFORMANCE statement is available in the OPTMODEL, OPTLP, OPTMILP, and OPTQP procedures. This statement can be used to
control the parallel execution of multithreaded 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 10.5 in Chapter 10: The Nonlinear Programming Solver.
The PERFORMANCE statement is available in both multithreaded and distributed computing environments. This section focuses
on the multithreaded computing environment. For information about the PERFORMANCE statement in a distributed computing environment,
see Chapter 3: Shared Concepts and Topics in Base SAS 9.4 Procedures Guide: High-Performance Procedures, Third Edition.
Note: Distributed computing mode requires SAS High-Performance Optimization.
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
-
requests that the procedure produce the Timing ODS table. This table shows a breakdown of the time used in each step of the
procedure.
-
NTHREADS=number | CPUCOUNT
-
specifies the number of threads that a procedure can use. It overrides the SAS system option THREADS | NOTHREADS. The value
of number can be any integer between 1 and 256 inclusive. The default value is CPUCOUNT, which sets the thread count to the number
that is determined by the SAS system option CPUCOUNT=.
Setting the NTHREADS= option to a number greater than the actual number of available 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,
a 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 preferable.
-
PARALLELMODE=string
-
specifies the parallel processing mode. This mode determines the solution results that are obtained from running the same
model with the same option values on the same platform multiple times.
The values of string are listed in Table 4.1.
Table 4.1: Values for PARALLELMODE= Option
string
|
Description
|
DETERMINISTIC
|
Requires algorithms to produce the same results every time.
|
NONDETERMINISTIC
|
Permits algorithms to produce different solution results. This mode requires less synchronization and might attain better
performance than DETERMINISTIC mode.
|
Some procedures support only one mode; the modes that a procedure supports are detailed in its documentation.