Distributed Shared Memory (DSM) provides a virtual shared memory abstraction on top of a message-passing distributed system that makes parallel programming on a distributed system similar to programming a shared-memory multiprocessor computer. A software DSM system can remove the burden from programmers of moving shared data explicitly between processors when parallel programming is carried out in a distributed system. However, a software DSM system also brings extra overhead to parallel computations. The principle challenge in the development of an efficient software DSM system lies in reducing the amount of communication necessary to maintain the coherence of shared data in the system, and in preserving the expressiveness of the system for parallel programming. In addition, hardware independence is also a consideration in developing software DSM systems given that heterogeneity is often the norm.
This thesis presents Jasmine - a
shared-object multi-locking DSM system for heterogeneous computers. To address the problem of heterogeneity on computer hardware for software DSM systems. Jasmine is built completely on top of the Java Virtual Machine (JVM) to take advantage of the portability of JVM to heterogeneous hardware. To address the efficiency and the expressiveness of shared-object DSM systems, two novel techniques are proposed for shared-object DSM systems which are also implemented in Jasmine. First, the Operation-Scope Consistency (OScC) memory model is proposed for shared-object DSM systems, which allows consistency of a partial state rather than the whole state of a shared object to be maintained between operation calls on the shared object, and thus reduces communication overhead in maintaining the consistency of shared data in the shared-object DSM system. Second, a multi-locking mechanism on shared objects is proposed for shared-object DSM systems, which allows
multiple read and write operations be able to be executed concurrently on the same shared object, and thus maximizes concurrent execution power. The multi-locking mechanism can tackle the problem of internal false sharing within a shared object in shared-object DSM systems, and also improves the expressiveness of shared objects for data-parallelism.
Through the implementation of these research ideas in a shared-object DSM system. Jasmine, we have demonstrated that the combination of the effects from the multi-locking mechanism and operation-scope consistency has produced a shared-object DSM system which is suitable for data-oriented parallel programming. The performance analysis of some representative parallel computing problems has shown that Jasmine can improve both the performance and expressive power of a shared-object DSM system for parallel computation problems which fit the definition of the data-parallelism, or does not
introduce major overheads otherwise.