An integrated open-source ecosystem for teaching software performance engineering

Go
Multicore
The end of Moore's Law makes software performance engineering a priority for modern computer-science curricula.
Teach
Performance
OpenCilk enables you to teach principles of performance engineering using a state-of-the-art task-parallel platform that is easy to learn.
Lean and
Modular
You can readily incorporate OpenCilk components into your own systems.
Extensible and
Open-source
You can easily adapt the OpenCilk language, compiler, and runtime system to experiment with your own research ideas.

OpenCilk makes it easy to

  • Write fast parallel code for shared-memory multicores
  • Analyze and benchmark the parallel scalability of your program
  • Detect and debug races or prove that your program execution is race-free
OpenCilk is an open-source software development infrastructure for task-parallel programming that allows for substantial code reuse and easy exploration of design choices in language abstraction, compilation strategy, runtime mechanism, and productivity tool development.
OpenCilk provides an ideal environment for developing fast code for applications that run on commodity and cloud multicore computers. It features a simple language, small codebase, and mathematically provable guarantees of good performance.

Measure parallelism and maximize scalability with automated benchmarking

With CilkScale you can ensure that your program scales up and down to make the most of any host system.

Optimize your code with a compiler that KNOWS parallelism

OpenCilk augments the “middle-end” of LLVM to represent parallel control flow and bring every LLVM optimization to bear on your parallelized code.
Join the community of OpenCilk educators to share teaching materials and learn about software performance engineering.

Featured blog posts