Some applications can process data faster than the data can be delivered
to the application. When an application cannot keep the available
CPUs busy, the application is said to be I/O-bound.
SAS supports
threaded I/O for SAS applications by providing the SAS Scalable Performance
Data (SPD) engine. The SPD engine boosts the performance of SAS applications
that are I/O-bound through parallel processing of partitioned data
sets. Partitioned data sets can span disk drives but still be referenced
as a single data set. In this way, the SPD engine can read many millions
of observations into SAS applications very rapidly. It spawns a thread
for each data partition and evaluates WHERE expressions in multiple
CPUs. SAS 9.1 support for multiple CPUs, for example on a Symmetric
Multiprocessor (SMP) computer, and support for multiple disks per
CPU make SPD engine's parallel I/O possible. See
SAS Scalable Performance Data Engine: Reference for full details about this engine's capabilities.
The benefits of support
for multiple disks in SAS 9.1 is not limited to use by the SPD engine.
Multiple disks can be on an SMP computer, but they can also be a bank
of disks on a single-CPU computer. Increasing the number of disks
that can be accessed simultaneously increases the amount of data that
can be delivered to an application. This is because reading or writing
data to and from disk takes much more time than the associated CPU
processing that directs the I/O. Even a single-CPU computer can support
multiple disk drives, which boosts performance. When an SMP computer
is used, the performance gain can be quite significant because each
CPU can support multiple disk drives. However, multiple CPUs cannot
speed up I/O from a single disk drive. The minimum configuration for
I/O performance gain is at least one controller per CPU and at least
two disk drives for each controller. For example, a site with four
CPUs should have at least four controllers and eight disk drives.