Contribute to OpenCilk

The OpenCilk project welcomes your expertise and enthusiasm. A few specific opportunities are listed below. If you see anything interesting, or have ideas that we haven't thought of, please contact us on the OpenCilk discussion forum.

Testing

We are interested in your experiences or issues in installing and writing code and running OpenCilk programs. We are also interested in collecting performance figures for different computer systems.

Porting

You can help by porting OpenCilk to other platforms.

Coding

Want to customize your own compiler or runtime environment? Check out OpenCilk code that's maintained in these GitHub repositories:

In addition to developing the OpenCilk codebase, we need your help extending existing code libraries to run in parallel with OpenCilk. Notable opportunities include the C++ Standard Template Library (STL) and the GraphBLAS Graph Linear Algebra API. Also improving the productivity tools.

Scripting

Writing scripts to automate release testing.

Documenting

Are you doing something with performance engineering that you want people to hear about? Are you writing how-tos or tutorials to help students with OpenCilk? We would love to hear! Have you prepared a presentation, video, or other educational materials about OpenCilk? Let us know! If you’re unsure where to start or how your skills fit in, reach out!

Educating

Are you teaching with OpenCilk? We welcome your contributions in this area.

Forums

Ask or answer questions on the OpenCilk forums.

Postdoc Positions

The Supertech research group in the MIT Computer Science and Artificial Intelligence Laboratory seeks multiyear Postdoctoral Associates to join the OpenCilk development team led by Professor Charles E. Leiserson, Dr. Tao B. Schardl, and Research Scientist Dorothy Curtis. The open-source OpenCilk software platform, a new implementation of the Cilk parallelprogramming platform, will feature a superior compiler based on the Tapir/LLVM compiler (Best Paper, PPoPP 2017), a new work-stealing runtime system, and a suite of parallelprogramming productivity tools. Candidates should be recent Ph.D. graduates in computer science and engineering with excellent C/C++ programming skills and publications in one or more of the following areas:

  • parallel computing (particularly multicore);
  • language runtime systems and compilers (especially LLVM);
  • software productivity tools;
  • user interface design and implementation;
  • software performance engineering (writing fast code);
  • lgorithms and data structures;
  • software engineering, testing, benchmarking, and/or release management;
  • cloud environments and operating systems.

Please see additional details here: PostdocFlyer.pdf