Shared Memory and OpenMP on Clusters

Clusters, i.e., several computers interconnected with acommunication network, provide a cost efficient way to achievehigh performance. Messages are the natural way of communicationin this kind of systems. However, it is widely argued thatusing a shared memory programming model reduces the programmin...

Full description

Bibliographic Details
Main Author: Karlsson, Sven
Format: Doctoral Thesis
Language:English
Published: KTH, Mikroelektronik och informationsteknik, IMIT 2004
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-3831
Description
Summary:Clusters, i.e., several computers interconnected with acommunication network, provide a cost efficient way to achievehigh performance. Messages are the natural way of communicationin this kind of systems. However, it is widely argued thatusing a shared memory programming model reduces the programmingeffort. Hence it is interestingto investigate systems thatprovide shared memory on clusters. This thesis describes some performance aspects of providingsuch a shared memory using software. The systems that provide ashared memory in software are commonly called softwaredistributed shared memory systems, software DSM systems. Thethesis consists of seven papers that each describe differentaspects of software DSM systems. One of the main performance bottlenecks is the communicationnetwork and three papers in the thesis investigates thisbottleneck. One paper analyzes the traffic sent on the networkwhen applications are executed. In another paper a latencyhiding technique is described and evaluated that substantiallyincreases the performance of iterative applications, i.e.,applications with loops. The last paper investigates the use ofpriorities to reduce the latency of certain messages used bythe software DSM system. One paper is devoted to discussing how a portable softwareDSM system should be designed and this paper forms the basisfor the remaining three papers. These papers also present acompiler and run-time library for OpenMP which is a recentindustry shared memory programming model. The compiler and therun-time library were developed as part of the thesis. One ofthe three papers describes a prototype system for runningOpenMP applications on clusters. The second presents thecompiler and compares the performance of applications compiledwith the compiler with that of the applications compiled with acommercial compiler. The last paper describes the OpenMPrun-time library.