Harman Patil (Editor)

Collective Knowledge (software)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Development status
  
Active

Written in
  
Python

Developer(s)
  
cTuning foundation and dividiti

Initial release
  
2014; 3 years ago (2014)

Stable release
  
1.8.6 / January 4, 2017 (2017-01-04)

Operating system
  
Linux, Mac OS X, Microsoft Windows

The Collective Knowledge project (or CK for short) is an open-source framework and repository to enable collaborative and reproducible experimentation (originally focusing on computer systems' research). CK is a small, portable and customizable infrastructure which allows researchers:

Contents

  • share their artifacts as reusable Python components with unified JSON API, JSON meta information, and distributed UID via GitHub and similar services
  • quickly prototype experimental workflows from shared components as LEGO(R) (such as multi-objective autotuning)
  • automate, crowdsource and reproduce experiments
  • unify predictive analytics (scikit-learn, R, DNN)
  • enable interactive articles and graphs.
  • Notable usages

  • ARM uses CK to accelerate computer engineering,
  • Several ACM-sponsored conferences use CK for artifact evaluation
  • Imperial College (London) uses CK to automate and crowdsource compiler bug detection
  • Researchers from the University of Cambridge used CK to help the community reproduce results of their publication in the International Symposium on Code Generation and Optimization (CGO'17) during Artifact Evaluation
  • General Motors (USA) uses CK to crowd-benchmark Convolutional Neural Network optimizations
  • Portable Package manager

    CK has an integrated cross-platform package manager to automatically rebuild software environment on a user machine required to run a given shared research workflow (see documentation for more details).

    Reproducibility of experiments

    CK enables reproducibility of experimental results via community involvement similar to Wikipedia and Physics. Whenever a new workflow with all components is shared via GitHub, anyone can try it on a different machine, with different environment and using slightly different choices (compilers, libraries, data sets). Whenever an unexpected or wrong behavior is encountered, the community explains it, fixes components and shares them back as conceptually described in.

    References

    Collective Knowledge (software) Wikipedia