טכניון מכון טכנולוגי לישראל
הטכניון מכון טכנולוגי לישראל - בית הספר ללימודי מוסמכים  
M.Sc Thesis
M.Sc StudentKohn Emil
SubjectA Transparent DSM System
DepartmentDepartment of Computer Science
Supervisor Professor Assaf Schuster


Abstract

Multi-threading has become the programming model of choice for developing high performance parallel applications. On the one hand it scales very well on symmetric multi-processor (SMP) machines, and on the other hand it is portable due to the vast support from most today’s operating systems. However, the main problem with multi-threading and with SMPs in general is that the number of processors is relatively small due to hardware costs which drastically increase with the number of processors.

Computing clusters come as an alternative to SMPs. A computing cluster consists of several computers interconnected by a fast communication network. A distributed shared memory (DSM) system is a hardware or software layer that provides sharing of a portion of the memory among all the nodes from the cluster. The number of nodes that can be connected in a cluster can be much larger than the maximum number of processors if an SMP. Therefore the scalability of the clusters can be much better than the scalability of the SMPs. Moreover, when using sequential consistency, the DSM programming model resembles multi-threading, which makes application programming straightforward.

However, a major problem with the current software DSMs, which hinders their wide-scale adoption, is their lack of portability. Every DSM comes with its own set of incompatible APIs, which makes porting of applications from one DSM to the other or from a multi-threaded environment to a DSM a tedious and error-prone task.

In our work we propose combining the advantages of the multi-threaded programming model with the extra level of scalability provided by a DSM. We designed and implemented a software DSM that is able to run standard multi-threaded applications on a cluster of computers. The DSM uses only the application’s executable, no re-compilation, code instrumentation, or compiler/linker support is necessary. In other words, our DSM is completely transparent. We show that we can achieve results which are comparable with those obtained by running the applications on a standard DSM or on an SMP machine. To the best of our knowledge, this DSM system is the first page-based DSM that achieves transparency at the binary code level.