Towards transparent and efficient software distributed shared memory
Daniel J. Scales, Kourosh Gharachorloo · 1997
Despite a large research effort, software distributed shared memory systems have not been widely used to run parallel applications across clusters of computers.The higher performance of hardware multiprocessors makes them the preferred platform for developing and executing applications.In addition, most applications are distributed only in binary format for a handful of popular hardware systems.Due to their limited functionality, software systems cannot directly execute the applications developed for hardware platforms.We have developed a system called Shasta that attempts to address the issues of efficiency and transparency that have hindered wider acceptanceof software systems.Shastais adistributedsharedmemory system that supports coherence at a fine granularity in software and can efficiently exploit small-scale SMP nodes by allowing processes on the same node to share data at hardware speeds.This paper focuses on our goal of tapping into large classes of commercially available applications by transparently executing the same binaries thatrun on hardware platforms.We diicussthe issues involved in achieving transparent execution of binaries, which include supporting the full instruction set architecture, implementing an appropriate memory consistency model, and extending OS services across separatenodes.We also describe the techniquesusedin Shastatosolvetheabovepmblems.TheShastasystemisfullyfunctional on a prototype cluster of Alpha multiprocessors connected through Digital's Memory Channel network and can transparently run parallel applications on the cluster that were compiled to run on a single shared-memory multiprocessor.As an example of Shasta's flexibility, it can execute Oracle 7.3, a commercial database engine, across the cluster, including workloads modeled after the TPC-B and TPC-D database benchmarks.To characterize the performance of the system and the cost of providing complete transparency, we present performance results for microbenchmarks and applications running on the cluster, include preliminary results for Oracle runs.