Skip to content

bear1004/AI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

===========================
Overview
===========================

Anticipating Invariant (AI) is a novel invariant that can 
anticipate the concurrency bugs (CBugs) right before their turning points.
It enables the users to forestall the failures caused by CBugs 
with a simple thread stalling technique, rather than resort to roll-back.

In this package, we present:
1) the source code of our LLVM-based AI implementation (`ai/*`);
2) several demos for demonstrating AI's ability of tolerating CBugs (`demo/*`);
3) applications from different categories (desktop, server, hpc) for evaluating AI's overhead (`performance/*`);
and 4) an example of the APIs' usage (`api/*`).

Documentations, screencasts and some auxiliary scripts are also provided.

===========================
Documentation
===========================

The documentations of AI are distributed in:
1) the files under the `doc/` directory;
2) the `README` file of each subdirectory;
and 3) the annotations in the `Makefile` file.

A recommended oder of reading these documentations is given below:

+-----------------------------+
|         docs/BUILD          |    # How to build AI.
+-----------------------------+
            |
            v 
+-----------------------------+
|         docs/USAGE          |    # How to use AI.
+-----------------------------+ 
            |
            v
+-----------------------------+
|       demo/*/README         |    # The procedure of building and running demos.
+-----------------------------+ 
            |
            v
+-----------------------------+
|  performance/pbzip2/README  |    # AI's overhead on desktop application. 
+-----------------------------+    # How to relax BSets.
            |
            v
+-----------------------------+
|  performance/apache/README  |    # AI's overhead on server application. 
+-----------------------------+ 
            |
            v  
+-----------------------------+
|   performance/fft/README    |    # AI's overhead on hpc application. 
+-----------------------------+    # Bias instrumentation.
            |
            v 
+-----------------------------+
|         api/README          |    # The usage of AI's APIs.
+-----------------------------+      

About

Anticipating Invariant

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 90.1%
  • Python 5.1%
  • Shell 2.2%
  • Perl 1.8%
  • C 0.8%