We are pleased to announce that Cilkpub, a library of community-contributed Cilk Plus code, is now available for download.
Cilkpub is intended to be a public library of code contributed and maintained by the members of the Cilk Plus community. Version 1.02 has been posted to the community website and contains the following modules:
Cilkpub is distributed as a source code. The DotMix and Sort modules are implemented using C++ templates, and consist of only header files.
If you have your own Cilk Plus code that you would like to share with the world, please consider contributing your code! The Cilkpub project is still in its early stages, and we hope to expand the library and build up a larger collection of shared Cilk Plus code. Code contributions to Cilkpub or more generally to the Cilk Plus community website must be submitted under the BSD license, as described on the contribution page on the community website.
Also, if you have any feedback on the existing modules or suggestions for additional modules that you would like to see implemented in Cilkpub, please post comments in the forum. We are always looking for new ways to improve the programming experience of users of Cilk Plus!
Cilkpub has been updated to version 1.03. Thanks to Neil Faiman for contributing a vector reducer (cilkpub/reducer_vector.h).
The vector reducer is similar to the list append reducer in Cilk Plus, except that it accumulates elements into a list of standard C++ vectors instead of a C++ list. A vector reducer can sometimes be more efficient than the list append reducer, particularly in cases when each (serial) strand appends multiple items to the reducer.
Version 1.03 also updates the pedigree and DotMix modules to work with version 12.1 of the Intel compiler.
To download the latest version of Cilkpub, visit the contributed code section on the Cilk Plus community website:
Cilkpub has been updated to version 1.04. New in version 1.04 is a commutative reducer array, which is intended to be useful in codes where one would normally want an array of reducer_opadd objects. Unlike normal Cilk Plus reducers, the update operations on reducers in a commutative reducer array also need to commutative, not just associative.
For a sample program illustrating usage, see sample/creducer_opadd_array.cpp.
Cilkpub has been updated to version 1.05. This version adds a parallel scan, adapted from the scan code from http://parallelbook.com/.
For a sample program, see samples/sample_scan.cpp.
Cilkpub has been updated to version 1.06. The major changes are:
See the included README for more details.