Skip to content

wustl-pctg/cracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRacer and Batcher Runtime

This repository contains the CRacer race detection tools. CRacer is a provably-good race detector for Cilk Plus programs. CRacer has relatively low overhead (most overhead occurs because of memory instrumentation) and runs in parallel.

CRacer uses a modified version of the Batcher runtime system, so that code is also included. Batcher automatically groups data structure operations into groups and calls the appropriate batched data structure operation. This makes it easy to develop parallel algorithms that use shared data structures, provided you can write a decently-parallel batched operation.

Contents

  • cilkplusrts: The Cilk Plus runtime, with changes for Cracer/Batcher.
  • rdtool: The CRacer tool itself.
  • cilk5rts: The MIT Cilk 5 version of the Batcher runtime. No longer in use.
  • ds: Unfinished batched data structures that were for the Cilk 5 version.
  • scripts: A set of scripts, mostly used for running the cilk5 benchmarks.

License

The MIT Cilk 5 runtime and our modifications to it are distributed under the terms of the GNU General Public License. The Intel Cilk Plus runtime and our modifications to it are distributed under the terms of the BSD-3-Clause license. All other code in this repository is distributed under the MIT license, unless otherwise specified.

Dependencies

To use CRacer you will need a compiler that supports Cilk Plus and the -fcilk-no-inline option. The only known such compiler is the WUSTL LLVM branch. To reproduce performance results, you will probably also want to use link-time optimization (requires gold linker) and Google's tcmalloc.

Compiling and Using

Instructions for compiling and using CRacer can be found in rdtool/README.md.

TODO

  • Cleanup old scripts.
  • Archive Cilk 5 version and remove it
  • Split the runtime info a separate project and make sure vanilla Batcher functionality isn't broken.
  • Finish and convert data structures to use Cilk Plus
  • Compare to flat combining. We did this initially but the results were too weird to get anything useful from a comparison.

Cititation

Please use the following citiation when using this software in your work:

Robert Utterback, Kunal Agrawal, Jeremy T. Fineman, and I-Ting Angelina Lee, "Provably Good and Practically Efficient Parallel Race Detection for Fork-Join Programs", Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2016. Available: https://dl.acm.org/citation.cfm?id=2935801.

Acknowledgment

This research was supported in part by National Science Foundation under grants number CCF-1527692, CCF-1218017, CCF-1150036, CCF-1218188, and CCF-1314633.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •