Collective Knowledge (software)
Developer(s) | cTuning foundation and dividiti |
---|---|
Initial release | 2014 |
Stable release |
1.8.1
/ September 14, 2016 |
Development status | Active |
Written in | Python |
Operating system | Linux, Mac OS X, Microsoft Windows |
Type | Artifact Sharing, Scientific workflow system |
License | BSD License 3-clause |
Website |
cknowledge |
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:
- 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(TM) (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,[1][2][3]
- Several ACM-sponsored conferences use CK for artifact evaluation [4]
- Imperial College (London) uses CK to automate and crowdsource compiler bug detection [5]
- General Motors (USA) uses CK to crowd-benchmark Convolutional neural networks [6]
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.[7]
External links
- Development site:
- Documentation:
- Resources related to open science:
- Public repository of optimization knowledge:
- Example of CK-powered research projects (collaborative optimization of CNN):
- Demo of an interactive article:
- International Workshop on Adaptive Self-tuning Computing System (ADAPT) uses CK to enable public reviewing of publications and artifacts via Reddit:
- Android application to crowdsource experiments using mobile devices provided by volunteers via CK framework:
References
- ↑ HiPEAC info (page 17) (PDF), January 2006
- ↑ Fursin, Grigori; Anton Lokhmotov; Ed Plowman (January 2016). Collective Knowledge: Towards R&D Sustainability. Proceedings of the 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE). Retrieved 14 September 2016.
- ↑ Ed Plowman; Grigori Fursin, ARM TechCon'16 presentation "Know Your Workloads: Design more efficient systems!"
- ↑ Artifact Evaluation for computer systems' conferences
- ↑ EU TETRACOM project to combine CK and CLSmith (PDF)
- ↑ GitHub development website for CK-powered Caffe
- ↑ Fursin, Grigori; Abdul Memon; Christophe Guillon; Anton Lokhmotov (January 2015). Collective Mind, Part II: Towards Performance- and Cost-Aware Software Engineering as a Natural Science. Proceedings of the CPC 2016.