Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Collective Knowledge - lightweight knowledge manager to organize, cross-link, share and reuse artifacts

Project description


Linux/MacOS: [![Build Status](](
Windows: [![Windows Build status](](
Coverage: [![Coverage Status](](


Collective Knowledge is our "swiss knife" for open, collaborative and reproducible experimentation.
CK is a small, portable and customizable research SDK to
* share artifacts as reusable and indexable Python components with unified JSON API and meta information (programs, benchmarks, data sets, tools, predictive models, etc) - see [Artifact Evaluation website](;
* automate detection or installation of all software dependencies on Linux, Windows, MacOS, Android while enabling co-existence of different versions (compilers, benchmarks, libraries, tools) for a given experimental workflow across diverse Linux, Windows and Android based platforms via [CK cross-platform customizable package and environment manager](;
* quickly prototype experimental workflows from shared components (such as customizable and multi-objective autotuning for DSL, OpenCL, CUDA, MPI, OpenMP and compiler flags) across diverse hardware and software ([CK repo](;
* crowdsource experiments across diverse hardware and workloads provided by volunteers and validate ideas or report unexpected behavior and bugs ([CK repo](;
* reuse and collaborative improve JSON description of all existing platforms from IoT to supercomputers ([CK repo](;
* abstract access to continuously evolving software and hardware stack ([CK repo](;
* automate, reproduce and crowdsource empirical experiments using CK JSON-based web services ([live repo](;
* unify access to predictive analytics (scikit-learn, R, DNN, etc) via unified JSON API and CK web services ([CK repo](;
* enable reproducible and interactive articles ([CK repo](

We use CK to gradually develop common API and meta for reproducible computer systems research together with the community and [ACM](!

Useful links

* [ - project website with the latest news](
* [News archive](
* [Practical use cases](
* [CK-powered AI hub](
* [Academic and industrial partners](
* [Documentation including "Getting Started Guide"](
* [CK motivation](
* [Development plans](
* [CK-related publications](
* [CK-powered open research challenges](
* [Previous deprecated version (Collective Mind)](
* [CK Mailing list](!forum/collective-knowledge)

Reference article
* [Online PDF](

title = {{Collective Knowledge}: towards {R\&D} sustainability},
author = {Fursin, Grigori and Lokhmotov, Anton and Plowman, Ed},
booktitle = {Proceedings of the Conference on Design, Automation and Test in Europe (DATE'16)},
year = {2016},
month = {March},
url = {}

* Permissive 3-clause BSD license. (See `LICENSE.txt` for more details).

Testimonials and awards
* 2017: [Test of time award for our ACM CGO'07 paper that led to creating CK](
* 2017: [ARM video about CK-powered optimization of DNN at the Embedded Vision Summit](
* 2017: [ACM evaluates CK technology to share experimental workflows in Digital Libraries](
* 2017: CK-powered experimental workflow from the UCambridge received distinguished artifact award at the CGO'17: [GitHub](, [PDF](, [CK dashboard snapshot](
* 2016: Imperial College London colleagues won [HiPEAC TT award]( for their CK-based project to crowdsource OpenCL bug detection: [GitHub](;
* 2016: General Motors and dividiti use CK to crowdsource benchmarking and optimization of CAFFE: [public CK repo](
* 2015: ARM and the cTuning foundation use CK to accelerate computer engineering: [HiPEAC Info'45 page 17](, [ARM TechCon'16 presentation and demo](, [public CK repo](
* 2014: [HiPEAC technology transfer award](


CK development is coordinated by the [cTuning foundation]( (non-profit research organization)
and [dividiti]( We would like to thank the [EU TETRACOM 609491 Coordination Action](
for initial funding, Microsoft for sponsoring hosting of a CK public
repository in the Azure cloud, and all our partners for continuing support.
We are also extremely grateful to all volunteers for their valuable feedback and contributions.

Minimal installation

The minimal installation requires:

* Python 2.7 or 3.3+ (limitation is mainly due to unitests)
* Python PIP (if you would like to install CK via PIP)
* Git command line client.

On Ubuntu, you can install these dependencies via

$ apt-get install -y python python-pip git

On Windows, you can download and install these tools from the following sites:

* Git:
* Minimal Python:
* Anaconda scientific Python with all packages:

You can now install stable CK version via PIP simply as following
(you may need to prefix it with "sudo" on Linux):

$ pip install ck

Alternatively, you can install development CK version in your local user space
via GIT as following:

$ git clone ck
and then add CK to PATH on Linux as following:
$ export PATH=$PWD/ck/bin:$PATH
or on Windows as following:

$ set PATH={CURRENT PATH}\ck\bin;%PATH%

Further installation details can be found [here](

Trying CK using Docker image

If you would like to try CK without installing it,
you can run the following Docker image:

$ docker run -it ctuning/ck

Also note that we added Docker automation to CK
(to help evaluate artifacts at the conferences, share interactive
and reproducible articles or crowdsource experiments for example).

Please check 'ck-docker' repository at GitHub:

$ ck show repo:ck-docker

You can download and view one of our CK-based interactive and reproducible articles as following:
$ ck pull repo:ck-docker
$ ck run docker:ck-interactive-article --browser (--sudo)

See the list of other CK-related Docker images [here](

However note that the main idea behind CK is to be able to rebuild user experimental workflows
natively, take advantage of the latest software environment and hardware,
and enable open research via collaborative reuse and agile improvement
of all shared artifacts and workflows.

Practical use cases

See the [list of real use cases](
by the [growing CK community](

* Mailing list for open, collaborative and reproducible R&D including knowledge preservation, sharing and reuse:
* Mailing list for software and hardware multi-objective (performance/energy/accuracy/size/reliability/cost)
benchmarking, autotuning, crowdtuning and run-time adaptation:
* Public wiki with CK-powered open challenges in computer engineering:

CK authors
* [Grigori Fursin](, cTuning foundation / dividiti
* [Anton Lokhmotov](, dividiti

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ck-1.9.4.tar.gz (113.5 kB) Copy SHA256 hash SHA256 Source None Oct 27, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page