The
SPD Engine exploits a hardware and software architecture known as
symmetric multiprocessing. An
SMP computer has multiple central processing units (CPUs) and an operating system that
supports threads. An SMP computer is usually configured with multiple controllers
and multiple disk drives per
controller. When the SPD Engine reads a data file, it launches one or more threads for each
CPU; these threads then read data in parallel from multiple disk drives, driven by
one or more controllers per CPU. The SPD Engine running on an SMP computer provides
the capability to read and deliver much more data to an application in a given elapsed
time.
Reading a data set with an SMP computer that has 5 CPUs and 10 disk drives could be
as much as 5 times faster than
I/O on a single-CPU computer. In addition to
threaded
I/O, an SMP computer enables
threading of application processes (for example, threaded sorting in the SORT procedure in
SAS 9.1 or later).
The exact number of CPUs on an SMP computer varies by manufacturer and model. The
operating system of the computer is
also specialized; it must be capable of scheduling code segments so that they execute
in parallel. If the operating system kernel is threaded, performance is further enhanced
because it prevents contention between the executing threads.
As threads run on the SMP computer, managed by a threaded operating system, the available
CPUs work together.
The synergy between the CPUs and threads enables the software to scale processing
performance. The
scalability, in turn, significantly increases overall processing speed for tasks such as creating
data sets, appending data, and querying the data by using WHERE statements.