Skip to main content

C++CSP2: A Many-to-Many Threading Model for Multicore Architectures

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.

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: Faculties > Sciences > School of Computing > Systems Architecture Group
Depositing User: Neil Brown
Date Deposited: 24 Nov 2008 18:04 UTC
Last Modified: 01 Oct 2019 15:23 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/14571 (The current URI for this page, for reference purposes)
  • Depositors only (login required):

Downloads

Downloads per month over past year