Trends in shared memory multiprocessing
P rogress in shared memory multiprocessing research has led to its industrial recognition as a key technology for application domains such as decision support systems and multimedia processing. Although uniprocessor performance continues to increase roughly 50 percent each year, developers have recognized that these applications have computational needs that current uniprocessors cannot meet. Because such applications often have inherent parallelism, parallel processing is an effective way to
... et their computational needs. Like uniprocessors, current shared memory multiprocessors are often built from high-performance microprocessors, so there is a clear transition path from uniprocessor to multiprocessor program implementations. The challenge lies in making this transition as smooth as possible, both in performance and the programming required to achieve it. The first step in meeting this challenge is to carefully examine the current use of shared memory multiprocessing and arrive at intelligent projections of future use based on application and technology trends. The second step is to begin filling gaps in programming models and architectures for shared memory multiprocessing. Finally-and possibly concurrently with the second step-researchers must look at ways to make the development of parallel software more feasible, including the development of compilers and tools. In this article, we look at the issues in these three steps. We also show how architectural issues are tightly interwoven with application trends. APPLICATION AREAS Research has focused heavily on scientific applications-sometimes to the detriment of other important domains. Commercial applications have been sadly neglected. Most users do not develop their own applications, primarily because they lack the appropriate tools and the shared memory programming paradigm is far from easy to manage. Figure 1 shows the dominant applications in the 1995 market and the projected market for the same applications in 2000, according to Dataquest. An "application" not shown, but nonetheless an important piece of software for a shared memory machine, is the operating system. Dominant domains • Databases. Commercial databases are primarily online transaction processing systems, such as airline reservation systems or decision support systems, such as the selection of addresses for direct-mail campaigns. Database vendors typically support both shared memory and message-passing versions of their products. Significant concerns include reliability, availability, and serviceability. • File servers. Commercial file servers service a large number of workstations or PCs. Concerns include the performance of the I/O subsystem (both on the network and disk sides) and reliability, availability, and serviceability. • Scientific and engineering. These applications include those used both commercially and in research. They typically solve some scientific or engineering problem, such as the simulation of physical phenomena and the simulation of engineering systems. Even when run on a shared memory architecture, these applications can use a message-passing style of programming, typically with a message-passing library, such as MPI (Message-Passing Interface). • Media and e-mail servers. These servers service a large number of accesses, or hits, to a widely available information pool. Once again, reliability, availability, and serviceability are important concerns. • Other commercial applications. These applications do not fall into any of the above categories, such as customized applications developed by end users. Figure 2 shows scientific and engineering and other commercial applications in the context of cost per machine for the 1995 market, according to Dataquest. As the figure shows, 79 percent of the 1995 server market (combined bars for <$10,000, <$50,000, and <$250,000) was covered by machines below $250,000. These machines, which typically have fewer than 16 Current application and technology trends are causing researchers and developers to revisit shared memory multiprocessing. The authors look at what is needed to maintain growth, particularly for commercial applications.