Skip to content

Ozone is library that adds safe, non-blocking channels to the Choral choreographic programming language.

License

Notifications You must be signed in to change notification settings

dplyukhin/ozone

Repository files navigation

Ozone

Ozone is library that adds safe, non-blocking channels to the [Choral](https://www.choral-lang.org/) programming language.

Quickstart

In the project root directory, run `scripts/benchmarks.sh`. The script will compile the Ozone library, run benchmarks, and plot figures. Data is written to `data/` and figures are written to `figures/`.

Building

The project requires maven, JDK 17, python 3, pandas, and matplotlib.

  1. Make sure you have the Choral libraries installed (org.choral-lang:choral and org.choral-lang:runtime). To do this, clone the Choral repository and build and install the libraries:
    mvn install
        
  2. Make sure you have the choral compiler script on your PATH and that you’ve set CHORAL_PATH.

    The script is a wrapper that looks for the Choral standalone JAR under CHORAL_HOME and invokes it. The version of the JAR should match the version of the runtime you’ve installed.

    When building Choral from source, You can find the JAR under Choral’s dist/target, which you can use as your CHORAL_PATH.

  3. To build this project, run the following command in the root directory:
    mvn compile
        

Overview

  • `/src/main/java/choral/channels/`: The `AsyncChannel` interface, used by Choral choreographies.
  • `/src/main/java/choral/runtime/`: An implementation of `AsyncChannel`, used by driver code written in Java.
  • `/src/main/java/choral/examples/ozone/`: Driver code for the Choral/Ozone choreographies used in the paper.
  • `/src/main/choral/choral/examples/ozone/`: Choral/Ozone choreographies used in the paper.
    • `concurrentproducers/`: Microbenchmark code used to generate Figure 19 (a).
    • `concurrentsend/`: Microbenchmark code used to generate Figure 19 (b).
    • `modelserving/`: Model serving code used to generate Figure 20.

About

Ozone is library that adds safe, non-blocking channels to the Choral choreographic programming language.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published