Skip to content

OpenCilk 3.0

Latest
Compare
Choose a tag to compare
@neboat neboat released this 12 May 15:01

Release notes for OpenCilk 3.0

New features and improvements

OpenCilk 3.0 includes the following new features and high-level improvements.

  • [Beta feature] Add support for range cilk_for loops, a parallel version of C++ range-for loops, over containers that support random-access iteration. For example, one can now write the following parallel loop over a std::vector<T> v:

    cilk_for (auto x : v)
        do_stuff(x);
  • Add support to VS Code and other LSP-based IDE's for cilk_spawn, cilk_scope, cilk_for, and cilk_sync keywords by extending a custom version of clangd.

    • See here for a draft VS Code extension for OpenCilk and guidance on setting up VS Code to use OpenCilk's clangd.
  • [Beta feature] Add support for Android, to allow Android apps to use Cilk for task-parallel C/C++.

    • See here for instructions on how to use OpenCilk on Android.
    • See here for an example Android app that uses OpenCilk.
  • Add support for C++ struct and class members to be Cilk reducer hyperobjects.

  • Remove the need for user programs to include the cilk/cilk.h header file to use Cilk keywords.

  • Upgrade the OpenCilk compiler to be based on LLVM 19.1.7.

  • Fix many bugs and improve performance.

Infrastructure improvements

Alongside this release are several improvements to the OpenCilk software ecosystem.

Binaries and packages

We will upload precompiled OpenCilk binaries for some select systems to this release page once they are built and tested. Due to our own resource limitations, however, we will not be able to provide precompiled OpenCilk binaries for all supported systems.

If you need OpenCilk on a specific platform or configuration, please use the binaries for your distribution or build your own. Please reach out if you need any help building OpenCilk for your system.

If you would like to volunteer to provide OpenCilk binaries or other OpenCilk packaging for your system, please let us know by leaving a comment in this discussion.

Acknowledgments

Thanks to @eliecuevas, @sualehasif, and @arvid220u, for contributing range-cilk_for loops to OpenCilk. (#55, #303)

Thanks to everyone who helped us test this new OpenCilk release, including @wheatman, @DanielDeLayo, @MangoShip, and @Akatsukis.