Collective Knowledge (software)
![]() | |
Developer(s) | cTuning foundation and dividiti |
---|---|
Initial release | 2014 |
Stable release |
1.9.6
/ September 27, 2018 |
Written in | Python |
Operating system | Linux, Mac OS X, Microsoft Windows, Android |
Type | Knowledge management, Artifact Evaluation, Package management system, Scientific workflow system |
License | BSD License 3-clause |
Website |
github |
The Collective Knowledge project (or CK for short) is an open-source framework and repository to enable sustainable, collaborative and reproducible research and development.[1] CK is a small, portable, customizable and decentralized infrastructure which allows researchers:
- share their code and data as reusable Python components with unified JSON API, JSON meta information, and distributed UID via GitHub and similar services (see the list of shared CK workflows, packages, software detection plugins and other components)
- quickly prototype sustainable experimental workflows from shared components as LEGO(R) (such as multi-objective autotuning[2])
- automate, crowdsource and reproduce experiments (see live repository)
- unify predictive analytics (scikit-learn, R, DNN)
- enable interactive articles and graphs (see online example)
Notable usages
- ARM uses CK to accelerate computer engineering[3][1][4]
- ReQuEST (Reproducible Quality-Efficient Systems Tournaments) use CK to share and collaboratively optimize deep learning algorithms in terms of speed, accuracy and costs across diverse platforms, environments and data sets[5]
- Association for Computing Machinery evaluates CK for possible integration with the ACM Digital Library sponsored by Sloan Foundation[6]
- Several ACM-sponsored conferences use CK for Artifact Evaluation [7]
- Imperial College (London) uses CK to automate and crowdsource compiler bug detection [8]
- 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[9]
- General Motors (USA) uses CK to crowd-benchmark convolutional neural network optimizations [10][11]
- The Raspberry Pi Foundation and the cTuning foundation released a CK workflow with an interactive and reproducible article "for collaborative research into multi-objective autotuning and machine learning techniques[2]
- Volunteers provide spare computational resources (mobile phones, HPC servers) to crowdsource optimization of realistic workloads (such as DNN), share optimization statistics in a public repository of knowledge, and enable self-optimizing and self-learning computer systems.[2]
Portable package manager
CK has an integrated cross-platform package manager with Python scripts, JSON API and JSON meta-description to automatically rebuild software environment on a user machine required to run a given shared research workflow (see documentation for more details). See already shared CK packages and software detection plugins.
Extensible AI API
CK provides a unified and extensible JSON API for multiple DNN frameworks including Caffe and TensorFlow while optimizing them across diverse hardware (mobile devices, HPC servers) and models.[12]
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 described in.[2]
External links
- Development site:
- Documentation:
- Public repository with crowdsourced experiments:
- Resources related to open science:
- 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 (such as program optimization) using mobile devices provided by volunteers via CK framework:
References
- 1 2 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.
- 1 2 3 4 Grigori Fursin, Anton Lokhmotov, Dmitry Savenko, Eben Upton. A Collective Knowledge workflow for collaborative research into multi-objective autotuning and machine learning techniques, arXiv:1801.08024, January 2018 (arXiv link, interactive report with reproducible experiments)
- ↑ HiPEAC info (page 17) (PDF), January 2016
- ↑ Ed Plowman; Grigori Fursin, ARM TechCon'16 presentation "Know Your Workloads: Design more efficient systems!"
- ↑ ACM ReQuEST'18 front matters and report (PDF)
- ↑ Reproducibility of Results in the ACM Digital Library
- ↑ Artifact Evaluation for computer systems' conferences
- ↑ EU TETRACOM project to combine CK and CLSmith (PDF)
- ↑ Artifact Evaluation Reproduction for "Software Prefetching for Indirect Memory Accesses", CGO 2017, using CK
- ↑ GitHub development website for CK-powered Caffe
- ↑ Open-source Android application to let the community participate in collaborative benchmarking and optimization of various DNN libraries and models
- ↑ Online demo of a unified CK AI API