Orca: a Portable User-Level Shared Object System * HENRI E. BAL RAOUL BHOEDJANG RUTGER HOFMAN CERIEL JACOBS KOEN LANGENDOEN TIM RÜHL Dept. of Mathematics and Computer Science Vrije Universiteit Amsterdam, The Netherlands M. FRANS KAASHOEK M.I.T. Laboratory for Computer Science Cambridge, MA ABSTRACT Orca is an object-based distributed shared memory system that is designed for writing portable and efficient parallel programs. Orca hides the communication sub- strate from the programmer by providing an abstract communication model based on shared objects. Mutual exclusion and condition synchronization are cleanly integrated in the model. Orca has been implemented using a layered system, con- sisting of a compiler, a runtime system, and a virtual machine (Panda). To imple- ment shared objects efficiently on a distributed-memory machine, the Orca compiler generates regular expressions describing how shared objects are accessed. The run- time system uses this information together with runtime statistics to decide which objects to replicate and where to store nonreplicated objects. The Orca system has been implemented on a range of platforms (including Solaris, Amoeba, Parix, and the CM-5). Measurements of several benchmarks and applications across four plat- forms show that the new Orca system achieves portability with good performance. In addition, the measurements show that performance of the new system is as good as the previous implementation that was specialized for Amoeba. Categories and Subject Descriptors: D.1.3 [Programming Techniques ]: Concurrent Programming—Distributed programming, Parallel programming; D.3.2. [Program- ming Languages]: Language Classifications—Concurrent, distributed, and parallel languages; D.3.4 [Programming Languages]: Processors—Compilers; Run-time environments General Terms: Languages, Design, Performance Additional Key Words and Phrases: distributed shared memory, parallel processing, portability * This research was supported in part by the Netherlands organization for scientific research (N.W.O.) under grant 125-30-10.