Font Size: a A A

Comparison of programming models on distributed memory multiprocessors

Posted on:2002-02-20Degree:Ph.DType:Dissertation
University:Princeton UniversityCandidate:Shan, HongzhangFull Text:PDF
GTID:1468390014450236Subject:Computer Science
Abstract/Summary:
High-performance computing has converged to mainly two types of platforms: (i) tightly-coupled multiprocessors, which increasingly support a cache-coherent shared address space in hardware, and in which the hardware support is leveraged to implement the message passing models, efficiently as well, and (ii) less tight-coupled clusters of either uniprocessors or such tightly-coupled multiprocessors, in which all the programming models are implemented in software across nodes. This convergence has made it common for different programming models to be supported on the same platform. From both a user's and a system designer's perspective, this state of affairs makes it important to understand the relative advantages and disadvantages of different programming models, both in programmability as well as in performance, for different types of applications when implemented on both these types of platforms. Hybrids of the communication architecture and programming models are also possible and increasingly common.; We studied this problem in a layered framework, including all the layers relevant to the applications' end performance (application layer, programming model layer and communication architecture layer). At the application layer, we examine whether the algorithms that deliver the best performance for each programming model are similar, and whether there exists substantial difference in ease of programming for the algorithms across programming models. At the programming model layer, we compare three programming models, message passing, distributed, symmetric address space (SHMEM), and shared address space, and study how the end application's performance affected by the implementation of programming model itself. At the communication architecture layer, we select two platforms, one from each type, and study how they affect the performance and application algorithms. Hybrid programming is also discussed for clusters.
Keywords/Search Tags:Programming, Performance
Related items