I-Ting Angelina Lee, Washington University in St. Louis
Abstract
OpenCilk is an open-source software 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. The OpenCilk infrastructure consists of three
main components: a compiler designed to compile fork-join task-parallel code, an
efficient work-stealing runtime scheduler, and a productivity-tool development
framework based on compiler instrumentation designed for fork-join parallel
computations. OpenCilk is modular — modifying one component for the most part
does not necessitate modifications to the other components — and easy to extend
— its construction naturally encourages code reuse. Despite being modular and
easy to extend, OpenCilk produces high-performing code.
In this talk, I will discuss OpenCilk’s modularity, extensibility, and
performance by walking through a case study we conducted to allow the compiled
Cilk code to run on OpenCilk runtime, TBB, and OpenMP. Due to OpenCilk's
modularity and extensibility, we were able to modify the OpenCilk compiler
slightly to target the compiled code to run on different runtime systems. By
comparing the same code running on different runtime systems, we show that
OpenCilk runtime system almost always matches or exceeds the performance of
other runtime systems.
Bio
Dr. Lee is an associate professor in the Computer Science and Engineering
department in Washington University in St. Louis. Prior to that, she was a
postdoctoral associate in the Supertech research group in MIT CSAIL. She
received her S.M. and Ph.D. from MIT, under the supervision of Prof. Charles E.
Leiserson. Dr. Lee's research focuses on advancing software technologies for
parallel computing.