Brown, Neil (2007) C++CSP2: A Many-to-Many Threading Model for Multicore Architectures. In: McEwan, Alistair A. and Schneider, S. and Ifill, W. and Welch, Peter H., eds. Communicating Process Architectures 2007. Concurrent Systems Engineering . IOS Press, pp. 183-205. ISBN 978-1-58603-767-3. (KAR id:14571)
PDF
Language: English |
|
Download this file (PDF/179kB) |
Preview |
Request a format suitable for use with assistive technology e.g. a screenreader |
Abstract
The advent of mass-market multicore processors provides exciting new opportunities for parallelism on the desktop. The original C++CSP – a library providing concurrency in C++ – used only user-threads, which would have prevented it taking advantage of this parallelism. This paper details the development of C++CSP2, which has been built around a many-to-many threading model that mixes user-threads and kernel-threads, providing maximum flexibility in taking advantage of multicore and multi-processormachines. New and existing algorithms are described for dealing with the run-queue and implementing channels, barriers and mutexes. The latter two are benchmarked to motivate the choice of algorithm. Most of these algorithms are based on the use of atomic instructions, to gain maximal speed and efficiency. Other issues related to the new design and related to implementing concurrency in a language like C++ that has no direct support for it, are also described. The C++CSP2 library will be publicly released under the LGPL before CPA 2007.
Item Type: | Book section |
---|---|
Uncontrolled keywords: | C++CSP2, C++, CSP, Multicore |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Depositing User: | Neil Brown |
Date Deposited: | 24 Nov 2008 18:04 UTC |
Last Modified: | 05 Nov 2024 09:49 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/14571 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):