%T C++CSP2: A Many\-to\-Many Threading
%A Neil C.C. Brown
%E Alistair A. McEwan, Steve Schneider, Wilson Ifill, Peter H. Welch
%B Communicating Process Architectures 2007
%X The advent of mass\-market multicore processors provides
exciting new opportunities for parallelism on the desktop.
The original C++CSP &\[sh]8211; a library providing
concurrency in C++ &\[sh]8211; 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\-processor machines. 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.
If you have any comments on this database, including inaccuracies, requests to remove or add information, or suggestions for improvement, the WoTUG web team are happy to hear of them. We will do our best to resolve problems to everyone's satisfaction.
Copyright for the papers presented in this database normally resides with the authors; please contact them directly for more information. Addresses are normally presented in the full paper.
Pages © WoTUG, or the indicated author. All Rights Reserved.
Comments on these web pages should be addressed to: www at wotug.org