We introduce a new concurrency support software package for C++ programmers.
Designing concurrent data structures for multiprocessor/multicore systems introduces numerous challenges with respect to performance and scalability. On today's machines, the layout of processors and memory, the layout of data in memory, the communication load on the various elements of the multiprocessor architecture all influence performance.
For this reason, it is often helpful for programmers to have a ready made collection of data structure and synchronization constructs. The elements in this collection can be used directly in applications, or as templates for user specific constructs. In Java, such concurrency package has been in use for several years.
There are many similarities between this package and the Java concurrency package, in particular we have made a concerted effort to provide the same constructs and functionality for C++ programmers, and preserve similar interfaces whenever possible.