Skip to content
Source code for the split annotations project.
Python Rust C Shell Makefile C++
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
c Initial open source commit Aug 13, 2019
python Minor fix for experiments requirements.txt Aug 13, 2019
.gitignore Minor fix for experiments requirements.txt Aug 13, 2019
EXPERIMENTS.md Update EXPERIMENTS.md with public AMI information Aug 13, 2019
LICENSE Initial open source commit Aug 13, 2019
README.md Initial open source commit Aug 13, 2019

README.md

Split Annotations

This is the main source code repository for Split Annotations. It contains the source code for the C implementation, the Python implementation, and the benchmarks from the SOSP 2019 paper.

Split annotations (SAs) are a system for enabling optimizations such as pipelining and parallelization underneath existing libraries. Other approaches for enabling these optimizations, such as intermediate representations, compilers, or DSLs, are heavyweight solutions that require re-architecting existing code. Unlike these approaches, SAs enable these optimizations without requiring changes to existing library functions.

Installing from Source

  1. Make sure you have the required dependencies:
  • Python 3.5
  • virtualenv
  • The latest version of Rust. See the instructions in the link.
  • git
  • pkgconfig. You can download it as follows:
sudo apt-get install pkg-config
  • The build-essential package on Linux distributions. You can download it as follows:
sudo apt-get update
sudo apt-get install build-essential

To build the C implementation:

  1. Clone this repository and set the $SA_HOME environment variable (the latter is not necessary but simplifies the remaining steps):
cd $HOME
git clone https://github.com/weld-project/split-annotations.git
cd split-annotations
export SA_HOME=`pwd`
  1. Build the C implementation:
cd $SA_HOME/c
cargo build --release
  1. Optionally build the provided annotated C libraries (Intel MKL and ImageMagick). See EXPERIMENTS.md for directions on how to build MKL and ImageMagick, and then:
cd $SA_HOME/c/lib/composer_mkl
make
cd $SA_HOME/c/lib/ImageMagick
make

The Python implementation does not require any special installation, but running the benchmarks requires certain dependencies. See the instructions in EXPERIMENTS.md.

Get Help

If you need help installing or using split annotations, or have general questions about the project, feel free to either create a GitHub issue or email shoumik @ stanford . edu (with the spaces removed).

You can’t perform that action at this time.