9308879 Carter The objective of this project is to develop a novel programming environment for distributed memory multiprocessors that provides efficient support for both the data shipping and function shipping programming paradigms. This is accomplished by integrating a distributed shared memory (DSM) system, which provides transparent data shipping, with a remote procedure call (RPC) system, which supports distributed function shipping. This integration addresses the most serious problems of both paradigms. DSM enables processes to share data across processors that only communicate via message passing, but experience with the Munin DSM system indicates that it is often inefficient to require all communications to occur through shared data. Conversely, in conventional RPC systems, it is difficult to pass complex data structures that use arbitrary pointers because clients and servers reside within distinct address spaces. This seriously restricts the programming model. Supporting a shared address space allows arbitrarily complex data structures to be passed as part of an RPC,. Preliminary results indicate that the combination of data and function shipping can significantly improve the performance of DSM and improve the programmability of RPC. The project also involves the development of simple performance monitoring and visualization tools to ease the task of programming such a system. ***