Previous releases of Base SAS 9.4 support programs written in the SAS DS2
programming language or the SAS Federated SQL language. These languages can take
advantage of threading. Many other SAS products also use threading technology. For
example, the SAS High-Performance Analytics procedures, SAS Stored Processes, and
SAS Embedded Process either execute or generate code that executes in high-
performance distributed computing environments.
What Is Threading Technology in SAS?
Threading technology provides multiple paths of execution within an operating
environment. Each path of execution is called a thread, and each thread can handle a
program task or data transfer. The result is multiple program tasks and data I/O
operations performed at the same time, in parallel. A thread requires a context (like a
register set and a program counter), a segment of code to execute, and some amount of
memory to use in the process. A threading operating environment might have multiple
CPUs but only one core per CPU. Other more high-performance configurations might
include multiple CPUs with multiple cores per CPU and even multiple threads per core.
In situations in which each CPU might execute only one thread at a time, the CPU’s
ability to quickly switch between threads provides near-simultaneous execution.
Threaded execution in SAS software includes one or both of these two general
techniques.
Threaded I/O means that data (frequently in very high volume) is delivered to an
application in threads so that the application is continually processing, not waiting on
data. In Base SAS and SAS/STAT, several procedures take advantage of threaded
reads. Also Base SAS includes the SPD engine that reads from a data set that is
partitioned to optimize for threaded input to the application. The SAS High-
Performance Analytics procedures require very rapid data delivery. They require
threaded reads from data distributed across a computing cluster to deliver huge
amounts of data to the application (which is also processing on the cluster) and then
write the data in parallel to the data storage appliance. SAS 9.4M5 includes access to
SAS Viya, which supports distributed, in-memory, multithreaded processing. See
“What is SAS Cloud Analytic Services?” on page 403 for more information about
SAS Cloud Analytic Services with SAS Viya.
Threaded application processing means that the application itself is structured to
perform certain tasks in parallel on multiple-CPU machines. Threaded application
processing enables the application to process large amounts of data to be processed
more quickly because multiple threads execute on smaller segments of data.
Applications can be designed to take advantage of machines with multiple CPUs
whether it is a local four-way desktop or a server-class machine. The SAS High-
Performance Analytics Server executes on appliances that distribute both the data
and copies of the application across the appliance nodes so that the data is co-located
with the application processing
With SAS 9.4 and SAS Analytics 12.1, customers can access a wide variety of products
and components that use threading to support ever-increasing amounts of data as well as
computationally intensive algorithms and models. Base SAS and Foundation SAS
threading technologies support all of these.
208 Chapter 13 Support for Parallel Processing

Get SAS 9.4 Language Reference, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.