Affiliation:
1. Queen's Univ., Kingston, Ont., Canada
2. Univ. della Calabria, Rende, Italy
Abstract
We survey parallel programming models and languages using six criteria to assess their suitability for realistic portable parallel programming. We argue that an ideal model should by easy to program, should have a software development methodology, should be architecture-independent, should be easy to understand, should guarantee performance, and should provide accurate information about the cost of programs. These criteria reflect our belief that developments in parallelism must be driven by a parallel software industry based on portability and efficiency. We consider programming models in six categories, depending on the level of abstraction they provide. Those that are very abstract conceal even the presence of parallelism at the software level. Such models make software easy to build and port, but efficient and predictable performance is usually hard to achieve. At the other end of the spectrum, low-level models make all of the messy issues of parallel programming explicit (how many threads, how to place them, how to express communication, and how to schedule communication), so that software is hard to build and not very portable, but is usually efficient. Most recent models are near the center of this spectrum, exploring the best tradeoffs between expressiveness and performance. A few models have achieved both abstractness and efficiency. Both kinds of models raise the possibility of parallelism as part of the mainstream of computing.
Publisher
Association for Computing Machinery (ACM)
Subject
General Computer Science,Theoretical Computer Science
Cited by
156 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Programming Tools for High-Performance Data Analysis;Proceedings of the 33rd International Symposium on High-Performance Parallel and Distributed Computing;2024-06-03
2. Exploiting Julia for Parallel RBF-Based 3D Surface Reconstruction: A First Experience;2024 32nd Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP);2024-03-20
3. Models, Languages and Tools for High-Performance Computing;Reference Module in Life Sciences;2024
4. A Survey on Parallelism and Determinism;ACM Computing Surveys;2023-02-02
5. Domain-Specific Architectures: Research Problems and Promising Approaches;ACM Transactions on Embedded Computing Systems;2023-01-24