Storing a Compiled Program for Computation-Intensive DATA Steps
Another technique that can improve CPU performance is to store a DATA step that is
executed repeatedly as a compiled program rather than as SAS statements. This is
especially true for large DATA step jobs that are not I/O-intensive. For more information
about storing compiled DATA steps, see Chapter 28, “Stored Compiled DATA Step
Programs,” on page 679.
Reducing Search Time for SAS Executable Files
The PATH= system option specifies the list of directories (or libraries, in some operating
environments) that contain SAS executable files. Your default configuration file
specifies a certain order for these directories. You can rearrange the directory
specifications in the PATH= option so that the most commonly accessed directories are
listed first. Place the least commonly accessed directories last.
Operating Environment Information
The PATH= system option is not available in some operating environments. See the
documentation for your operating environment for more information.
Specifying Variable Lengths
When SAS processes the program data vector, it typically moves the data in one large
operation rather than by individual variables. When data is properly aligned (in 8-byte
boundaries), data movement can occur in as little as two clock cycles (a single load
followed by a single store). SAS moves unaligned data by more complex means, at
worst, a single byte at a time. This would be at least eight times slower for an 8-byte
variable.
Many high-performance RISC (Reduced Instruction Set Computer) processors pay a
very large performance penalty for movement of unaligned data. When possible, leave
numeric data at full width (eight bytes). Note that SAS must widen short numeric data
for any arithmetic operation. On the other hand, short numeric data can save both
memory and I/O. You must determine which method is most advantageous for your
operating environment and situation.
Note: Alignment can be especially important when you process a data set by selecting
only specific variables or when you use WHERE processing.
Using Parallel Processing
SAS System 9 supports a new wave of SAS functionality related to parallel processing.
Parallel processing means that processing is handled by multiple CPUs simultaneously.
This technology takes advantage of SMP computers and provides performance gains for
two types of SAS processes: threaded I/O and threaded application processing.
For information, see Chapter 13, “Support for Parallel Processing,” on page 207.
Reducing CPU Time By Modifying Program Compilation
Optimization
When SAS compiles a program, the code is optimized to remove redundant instructions,
missing value checks, and repetitive computations for array subscripts. The code detects
Techniques for Optimizing CPU Performance 205