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.