Projects
# OpenCilk
Website · GitHub organizationOpenCilk is the latest open-source implementation of the Cilk task-parallel programming platform.
int fib(int n) {
if (n < 2) return n;
int x, y;
cilk_scope {
x = cilk_spawn fib(n-1);
y = fib(n-2);
}
return x + y;
}
OpenCilk extends C/C++ with a few keywords to expose logical task parallelism in a program. The OpenCilk compiler optimizes Cilk programs using Tapir/LLVM, an extension to LLVM to enable effective compiler analysis and optimization of task-parallel programs. The OpenCilk runtime system schedules and load-balances the Cilk computation automatically in a provably good manner using randomized work stealing. The OpenCilk platform also provides tools to analyze Cilk programs, including the Cilksan race detector and the Cilkscale scalability analyzer.
OpenCilk is completely open source and available on GitHub. OpenCilk features the latest implementation of the Tapir compiler extension for task parallelism.
References
# CESMIX
CESMIX is an interdisciplinary research center at MIT focused on the exascale simulation of materials in hypersonic flow environments. See the CESMIX website for details.
# Other projects
You can find most of the other software projects itself on or linked from my personal GitHub.
# fccode LaTeX package
fccode Overleaf port and documentationThe fccode package provides fast, safe, and high-quality syntax highlighting of code for LaTeX documents. This package provides LaTeX macros, commands, and environments for syntax-highlighted code figures, in-paragraph code blocks, and inline code snippets. This package uses Pygments to syntax-highlight code, and it includes custom Pygments lexers and formatters to improve syntax-highlighting quality to add new features, including the following:
- Selecting regions of source files to highlight.
- Support LaTeX
\label{}
commands in code, allowing the document to use\ref{}
commands to reference lines in the code symbolically.
This package includes latexmk
rules and scripts to syntax-highlight code efficiently, in a manner that scales to handle very large documents with lots of code to highlight. In particular, fccode avoids the need for LaTeX's --shell-escape
option.
# Code-highlighter tool for slide decks
Code highlighterThis web-based tool adds syntax and semantic highlighting to C/C++ and Cilk code to be easily copy-and-pasted into slide decks.
# PBFS
GitHubPBFS is a work-efficient parallel breadth-first-search (BFS) algorithm. PBFS uses a custom reducer data structure, called a bag, to efficiently maintain sets of vertices. PBFS is currently implemented in OpenCilk, and the bag reducer is implemented using the linguistic reducer syntax introduced in OpenCilk 2.
Reference
# Materials for "There's plenty of room at the Top"
GitHub · DOIThis repository contains the data and software used for the Science article, "There's plenty of room at the Top: What will drive computer performance after Moore's law?"