Intel® Threading Building Blocks: Community Preview Features
Nearly every class and function that we have added to Intel® Threading Building Blocks (Intel® TBB) since its first version have been designed to address users' needs. We actively work with our users via the forum and constantly incorporate suggestions for improvements made by our commercial customers and members of the Intel TBB open source community. We regularly publish Intel TBB non-commercial developer releases at www.threadingbuildingblocks.org and for several years this has served as a good way to get early feedback on new features we were introducing. In order to provide access to new features to a wider range of Intel TBB users, we are introducing a new class of features, called Community Preview (CP) features, which will be added to Intel TBB commercial product updates.
Definition of Community Preview (CP) features
The main idea with CP features is to provide a more responsive way to get early feedback on features by delivering them earlier to both commercial and open source users of Intel TBB). In general, a CP feature is a new, production-quality, and fully-tested capability that we add to the library (new class or a collection of classes, new function etc.) for all users of Intel TBB: commercial users get access to the CP features via regular product updates and members of the open source community get them via commercially-aligned open source releases that we publish around the official release of commercial update. The major difference between a CP feature from a regular Intel TBB feature is that the CP feature is not enabled by default and when developers are ready to try it out they will have to enable it manually either by defining a compiler macro or, in some cases, linking with a special library. For each particular CP feature we will publish enabling instructions in the product documentation where it is clearly marked as a CP feature.
Support Model for CP features
Each new release of Intel TBB is backward-compatible with the previous versions: the Intel TBB development team makes sure that interfaces implemented by the library stay unchanged and are committed to keeping Intel TBB backward-compatible. The nature and purpose of CP features is different from all other features of Intel TBB: we introduce CP features to gather early feedback from users and therefore we may need to change interfaces related to a CP feature based on users' feedback. Here is the summary of differences in support model for CP features:
• Documentation on a CP feature might be incomplete
• The implementation of a CP feature is separated from the rest of the library features (separate header file and/or additional library) and usage of a CP feature requires special enabling
• Backward-compatibility is not guaranteed for CP features: we might change interfaces or the entire implementation based on users' feedback
• Future support of each CP feature is not guaranteed: we might drop the feature entirely based on users' feedback
Due to the different support model for CP features, developers should not use them in their production code.
CP features are a new and, we believe, better way to communicate with users of Intel TBB: we deliver innovative features to developers faster and in a more convenient way than before. We hope users will follow announcements on new CP feature availability and use them: we look forward to your feedback and we are committed to improving interfaces and implementations of CP features based on your feedback and converting the most useful CP features into fully supported Intel TBB features.