[ News | IPCA | Mirrors | Add | Search | Mail | Help | WoTUG ]
ADSMITH: An efficient Object-Based Distributed Shared Memory Environment on PVM.
Abstract: This paper introduces an ob ject-based distributed shared memory (DSM) system called Adsmith. The primary goal of Adsmith is to provide a low-cost, portable, and efficient DSM for networks of workstations (NOW). Adsmith achieves this goal by building on top of PVM, a widely supported communication subsystem, as a user-level library and by incorporating many traffic reduction and latency hiding techniques. Issues involved in the design of Adsmith and our solution strategies will be discussed. Preliminary performance evaluation of Adsmith on a network of Pentium computers will be presented. The results show that programs developed with Adsmith can achieve a performance comparable to that developed with PVM.
Authors: Wen-Yew Liang; Chun-Ta King and Feipei Lai.
Abstract: Message passing is the most often used communication model in distributed-memory systems. With message passing, programmers are forced to manage the data flows explicitly. They have to know where a piece of data is located and when to set up the send/receive pair between two communicating entities. Such a task is tedious and error-prone. On the other hand, with a virtual or physical shared memory, programmers can use shared variables for communication among concurrently executing threads --- just as in traditional sequential programs. Programmers need not manage the shared data explicitly. Thus, programs can be developed more easily.
To provide a shared-memory environment on top of distributed-memory systems, the concept of distributed shared memory (DSM) was proposed and soon attracted wide spread attention. Current implementations of DSMs mostly concentrate on the hardware and/or operating system layers. Problems with such implementations are that they are difficult to support heterogeneous systems, expensive in developing, and difficult to port to different architectures.
In this report, we propose a new concept of building DSMs, called the structure-based approach. In a structure-based DSM, the shared memory consists of many shared objects. Each object in turn consists of many structure units, which contain logically related data. Shared-memory accesses are performed on the structure units. Structure-based DSMs can be implemented at higher layers such as in libraries. The resultant environment is thus very system independent, portable, inexpensive to build, and flexible. Controlling shared data partition and allocation can be very easy. Most importantly, the environment can support heterogeneous systems.
We have implemented a structure-based DSM, called ADSMITH. ADSMITH is built on top of PVM at the library layer using traditional C language. In the report we will examine different design considerations and study various strategies to developing DSMs. We will show how we arrive at the current design for ADSMITH. Usages of ADSMITH and its implementations will be introduced, and some preliminary performance results will be presented. The results show that even though ADSMITH is implemented on top of PVM, programs running on ADSMITH can achieve a comparable performance as those running directly on PVM.
Authors: Wen-Yew. Liang (wyliang@orchid.ee.ntu.edu.tw) and Chung-Ta King (king@cs.nthu.edu.tw). Department of Computer Science & Information Engineering National Taiwan University, Taipei, Taiwan.
Abstract: Distributed systems receive much attention because parallelism and scalability are achieved with relatively low costs. Many researches favor distributed shared memory (DSM) systems since the concept of shared-memory can increase programmability without much performance loss. In this paper, a new language for distributed computing is introduced. We have implemented a compiler which will generates executables running on the Adsmith DSM system. What we provide is a simple, efficient, general purposed, and portable solution. Programming in the language can greatly reduce the inconveniences programmers need to face when they only have low level library routines at their hands. With the help of our compiler, effective optimizations including bulk transfer, non-blocking lock and nonexclusive lock are done to help programmers from doing routinely hand-tuned optimizations.
Authors: Rung-Ji Shang; Wen-Yew Liang; Jen-Chiun Lin and Feipei Lai.