The SMG DSM system: enabling shared memory for the grid - Ryan, John Paul (Trinity College (Dublin, Ireland). School of Computer Science & Statistics, 2007)
Parallel computing has taken the rst steps along its next evolutionary route: com- putational grids are now a reality. Success, however, depends not only on the tools available, but allowing the knowledge base that currently exists in constructing parallel applications to be employed by those same engineers, scientists and other groups that will make use of this new platform. One basic requirement will be the availability of familiar programming methods and paradigms. Message passing has a natural a nity towards wide area network computing and requires little e ort, if any, in order to grid enable. Implementations exist for the most common operating systems and hardware architectures. The shared memory paradigm is a di erent question as the necessary physical memory resources cannot be readily shared among distributed processors. Distributed Shared Memory (DSM) has being promoted since the 1990s as a method to execute shared memory programs on distributed machines. In this thesis the barriers to a successful DSM implementation are highlighted; some of these include: support for heterogeneous environments, overall application performance, and absence of a standard programming interface. It will show how the latter problem could be resolved by provid- ing a source-to-source compiler that takes as input a shared-memory application written using a standard such as OpenMP, where the target is the DSM API. If implemented, many applications written for a shared memory setting would require minimal changes in order to execute in a grid setting. The approach taken involving DSM is less e cient than message passing, but this is mitigated by using the DSM to help identify the areas of a program that account for the most overhead, and in a localised fashion and with minimal e ort on behalf of the programmer convert these areas of shared memory code to the more e cient message passing code; this process can be done in an incremental fashion, thereby allowing for the exertion of resources only where necessary. In order to achieve this a hybrid shared- memory/message passing environment was developed, in addition to tools to direct the 'hybridisation'. Since grids are coming into the mainstream, it would be most bene cial if the most natural parallel computing paradigm, shared memory, was supported. At this time the most obvious way to do this is to construct a DSM run-time system for the grid, that provides various levels of user con guration and allows user-directed optimisations to mask the latencies between physically distributed nodes.
Keywords: Computer Science, Ph.D.; Ph.D. Trinity College Dublin