Widespread adaptation of shared memory programming for High Performance Computing has been inhibited by a lack of standardization and the resulting portability problems between platforms and APIs. In this paper we present the HAMSTER framework, which helps overcome these problems via cross-platform support and easy retargetability to a wide range of programming models. HAMSTER currently supports models ranging from thread APIs to onesided put/get interfaces, all on top of a single, core middleware architecture. The HAMSTER framework allows programmers to use any of these models — without modification — on top of SMPs, NUMA-like clusters, and Beowulf systems. In addition, our experiments show that HAMSTER achieves this flexibility and portability without sacrificing performance. 1 Motivation Shared memory provides parallel application programmers with a clean, natural programming model close to that ential programs. By abstracting away all details of low-level interprocessor com...
Martin Schulz, Sally A. McKee