Affiliation:
1. Univ. of Saskatchewan, Saskatoon, Sask., Canada
2. Univ. of Washington, Seattle
Abstract
Parallel computing is increasingly important in the solution of large-scale numerical problems. The difficulty of efficiently hand-coding parallelism, and the limitations of parallelizing compilers, have nonetheless restricted its use by scientific programmers.
In this paper we propose a new paradigm,
chores
, for the run-time support of parallel computing on shared-memory multiprocessors. We consider specifically uniform memory access shared-memory environments, although the chore paradigm should also be appropriate for use within the clusters of a large-scale nonuniform memory access machine.
We argue that chore systems attain both the high efficiency of compiler approaches for the common case of data parallelism, and the flexibility and performance of user-level thread approaches for functional parallelism. These benefits are achieved within a single, simple conceptual model that almost entirely relieves the programmer and compiler from concerns of granularity, scheduling, and enforcement of synchronization constraints. Measurements of a prototype implementation demonstrate that the chore model can be supported more efficiently than can traditional approaches to either data or functional parallelism alone.
Publisher
Association for Computing Machinery (ACM)
Cited by
19 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Analyzing the Performance Trade-Off in Implementing User-Level Threads;IEEE Transactions on Parallel and Distributed Systems;2020-08-01
2. Gecko;Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores - PMAM'19;2019
3. A portable runtime interface for multi-level memory hierarchies;Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming - PPoPP '08;2008
4. MODELING LINEAR DYNAMICAL SYSTEMS BY CONTINUOUS-VALUED CELLULAR AUTOMATA;International Journal of Modern Physics C;2007-05
5. FairThreads: mixing cooperative and preemptive threads in C;Concurrency and Computation: Practice and Experience;2006