We made a special effort to simplify CK installation with minimal dependencies
across Linux, Windows and MacOS. You just need Git client and Python 2.7+ or 3.3+.
Just try it yourself as described here.
You can then follow a simple tutorial to get the first feeling
about CK capabilities (portable, customizable and reusable workflows and artifacts with a portable package manager).

ReQuEST consortium
is also developing a scalable tournament framework, a common experimental methodology
and an open repository powered by CK for continuous evaluation and optimization of the quality vs. efficiency Pareto
optimality of a wide range of real-world applications, libraries and models across the whole hardware/software stack on complete platforms.
See ACM proceedings,
results report
and live scoreboard.

Researchers can now use CK SDK to convert their complex and ad-hoc experimental scripts into unified CK workflows assembled from shared CK artifacts as LEGO bricks:

Furthermore, CK has its own portable package manager
for Linux, Windows, Android and MacOS to automatically adapt such workflows to underlying software,
detect multiple versions of installed dependencies which can co-exist and used in parallel
(see available CK software detection plugins),
and automatically install missing packages:

Such approach can considerably simplify artifact evaluation and validation of experimental results
at conferences and journals.
Furthermore, such workflows can be reused and collaboratively improved by the community
(rather than just archiving Docker images which become quickly outdated) thus enabling
practical, agile and open research!

For example, experimental workflow for the CGO'17 article from the University of Cambridge researchers which won distinguished artifact award was implemented using CK:

CK has an integrated web server allowing users to quickly prototype
various web-based dashboards to run their workflows and analyze experimental results in workgroups.
CK even allows creation of interactive reports and articles assembled from CK artifacts.

Here are some real examples of practical CK dashboards and interactive articles:

Crowdsourcing experiments using public or private CK repositories

Integrated CK web server combined with unified JSON API of CK components allows workflows
running on different machines to interact with each other via JSON-based web interfaces.
This, in turn, allows users to effectively crowdsource experiments across diverse platforms
(mobile devices, tablets, laptops, servers, cloud, supercomputers) provided by supporters
similar to SETI@HOME. Results can be aggregated in public or private CK repositories
for further visualization, analysis and improvement.

CK helps our partners collaboratively benchmark their workloads such as deep learning
across diverse platforms. You can test a simple example of compiling and running some shared
workload on your own machine as follows:

$ ck pull repo:ck-autotuning
$ ck pull repo:ctuning-programs

You can see shared programs in the CK format (JSON meta information
describing how to compile and run shared program with all dependencies and data sets):

Unifying and crowd-sourcing multi-objective and multi-dimensional optimization and co-design

High-level CK workflows together with unified JSON API allowed us to implement universal, customizable,
multi-objective and multi-dimensional autotuning as described
here.

Furthermore, we can now crowdsource exploration of large and non-linear design and optimization spaces
to improve performance, energy, accuracy, memory consumption and other characteristics
or automatically detect bugs across diverse workloads and platforms provided by volunteers.

You can check our shared workflow to crowdsource optimization as follows:

$ ck pull repo:ck-crowdtuning
$ ck crowdsource experiment

For example, you can execute shared workflow for collaborative program optimization
with all related artifacts, and start participating in multi-objective crowdtuning
simply as follows:

$ ck crowdtune program

You can also crowd-tune GCC on Windows as follows:

$ ck crowdtune program --gcc --target_os=mingw-64

If you have GCC or LLVM compilers installed, you can start continuously crowd-tune
their optimization heuristics in a quiet mode (for example overnight) via

This experimental workflow will be optimizing different shared workloads
for multiple objectives (execution time, code size, energy, compilation time, etc)
using all exposed design and optimization knobs, while sending most profitable
optimization choices to the public CK-based server.

CK server will, in turn, perform on-line learning to classify optimization
versus workloads which can be useful for compiler/hardware designers and
performance engineers (described in more detail in this article).

You can even use our small Android application
to crowdsource tuning of GCC and LLVM compiler optimization heuristics
while continuously learning and aggregating optimization results
in the public CK repository.

You can also participate in crowdtuning of popular third-party OpenCL, OpenMP and CUDA-based mathematical libraries
as described here.

Having a common experimental infrastructure allows us to
build reusable, realistic, diverse,
and continuously evolving training sets in a common format
(programs, data sets, models, unexpected behavior, mispredictions)
with the help of our partners and the community.

Surviving in a Cambrian AI/SW/HW explosion with the Collective Knowledge and open AI research

Our personal ultimate goal behind CK development is to
a) reinvent computer engineering and make it more collaborative, reproducible and reusable,
b) develop efficient and reliable computer systems from IoT to supercomputers,
c) enable open science via reusable and customizable artifacts, and
d) create a public repository of reusable AI artifacts (models, data sets, tools, etc)
and portable AI algorithms/workflows (classification, detection, etc).
This should help us enable open AI research,
boost innovation in science and technology,
get back to our AI-related projects,
develop artificial brain and have fun ☺!