Affiliation:
1. HP Laboratories, Palo Alto, CA
Abstract
In many environments, multi-threaded code is written in a language that was originally designed without thread support (e.g. C), to which a library of threading primitives was subsequently added. There appears to be a general understanding that this is not the right approach. We provide specific arguments that a pure library approach, in which the compiler is designed independently of threading issues, cannot guarantee correctness of the resulting code.We first review why the approach almost works, and then examine some of the surprising behavior it may entail. We further illustrate that there are very simple cases in which a pure library-based approach seems incapable of expressing an efficient parallel algorithm.Our discussion takes place in the context of C with Pthreads, since it is commonly used, reasonably well specified, and does not attempt to ensure type-safety, which would entail even stronger constraints. The issues we raise are not specific to that context.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference35 articles.
1. A. Alexandrescu H.-J. Boehm K. Henney B. Hutchings D. Lea and B. Pugh. Memory model for multithreaded C++: Issues. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1777.pdf. A. Alexandrescu H.-J. Boehm K. Henney B. Hutchings D. Lea and B. Pugh. Memory model for multithreaded C++: Issues. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1777.pdf.
2. A. Alexandrescu H.-J. Boehm K. Henney D. Lea and B. Pugh. Memory model for multithreaded C++. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1680.pdf. A. Alexandrescu H.-J. Boehm K. Henney D. Lea and B. Pugh. Memory model for multithreaded C++. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1680.pdf.
3. An overview of the PL.8 compiler
4. Fine-grain design space exploration for a cartographic SoC multiprocessor
5. Fast mutual exclusion for uniprocessors
Cited by
37 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. OpenCilk;Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2023-02-21
2. Nowa: A Wait-Free Continuation-Stealing Concurrency Platform;2021 IEEE International Parallel and Distributed Processing Symposium (IPDPS);2021-05
3. Advanced control‐flow and concurrency in C∀;Software: Practice and Experience;2020-12
4. Thread Evolution Kit for Optimizing Thread Operations on CE/IoT Devices;IEEE Transactions on Consumer Electronics;2020-11
5. Design-space evaluation for non-blocking synchronization in Ada: lock elision of protected objects, concurrent objects, and low-level atomics;Journal of Systems Architecture;2020-11