We developed Collective Knowledge framework and repository (CK) to help researchers quickly prototype their research ideas,
crowdsource experiments and reproduce results using shared CK modules
with unified JSON API, while simplifying predictive analytics and knowledge exchange.
For example, CK already helped computer systems' researchers (and ourselves):
- share realistic programs, benchmarks, and data sets (shared CK repos);
- automate and crowdsource performance analysis, benchmarking and tuning (online crowd results);
- perform automatic multi-objective compile-time and run-time optimizations (e.g. cost vs. performance vs. energy vs. accuracy) achieving 10x speedups and 50% energy reductions with the same accuracy for some real OpenCL/CUDA applications on the latest heterogeneous platforms;
- apply statistical ("machine learning" and AI) techniques to continuously learn and optimize behavior of complex computer systems (e.g. automatically building performance/energy models, quickly identifying performance bottlenecks, accelerating autotuning, enabling run-time adaptation);
- simplify optimization knowledge sharing across communities of hardware vendors and software developers;
- stress-test compilers and crowd-tune their optimization heuristics on representative workloads;
- enable interactive graphs and papers (demo).
See CK wiki for more details or check our live CK demo and examples of collaborative R&D at cknowledge.org/repo.