Collective Tuning Initiative

The Collective Tuning Initiative is a community-driven initiative started by Grigori Fursin to develop free and open-source research tools with a unified API for collaborative characterization, optimization and co-design of computer systems. They enable sharing of benchmarks, data sets and optimization cases from the community in the Collective Optimization Database through unified web services to predict better optimizations or architecture designs (provided there is enough information collected in the repository from multiple users).[1][2] Using common research-and-development tools should help to improve the quality and reproducibility of computer systems' research and development and accelerate innovation in this area. This approach helped establish Reproducibility Initiatives and Artifact Evaluation at several ACM-sponsored conferences to encourage sharing of artifacts and validation of experimental results from accepted papers.[3]

The tools and repository include:

  • Collective Optimization Database: an open repository to share optimization cases from the community, provide web services and plugins to analyze collected performance numbers and predict compiler optimizations to speed up applications based on statistical and machine-learning techniques
  • Machine learning-based program optimization predictor: web-service that suggests optimization-improving factors such as execution time, code size and compilation time, based on similarities between programs (program features)
  • Continuous Collective Compilation Framework: automates and distributes exploration of large optimization spaces and compiler auto-tuning across multiple users
  • Interactive Compilation Interface: converts production compilers into interactive research toolsets using an event-driven plugin system to avoid the development of new research compilers from scratch
  • Collective benchmark with multiple data sets: enables realistic benchmarking and research on iterative compilation and run-time adaptation.
  • Universal Adaptation Framework: Enables run-time adaptation and optimization of statically-compiled programs for heterogeneous, multi-core computer architectures.

All above tools became a part of the (Collective Knowledge framework) released in 2015.

Collective Optimization Database

edit

The Collective Optimization Database is an open repository to enable sharing of benchmarks, data sets and optimization cases from the community, provide web services and plugins to analyze optimization data and predict program transformations or better hardware designs for multi-objective optimizations based on statistical and machine learning techniques provided there is enough information collected in the repository from multiple users.[4]

Functionality

edit

The Collective Optimization Database is also intended to improve the quality and reproducibility of the research on code and architecture design, characterization and optimization. It includes an online machine learning-based program optimization predictor [5] that can suggest profitable optimizations to improve program execution time, code size, or compilation time, based on similarities between programs. The Collective Optimization Database is an important part of the Collective Tuning Initiative[1][2] which is developing open-source R&D tools for collaborative and reproducible computing systems research.

References

edit
  1. ^ a b Grigori Fursin. Collective Tuning Initiative: automating and accelerating development and optimization of computing systems. Proceedings of the GCC Summit'09, Montreal, Canada, June 2009 (link)
  2. ^ a b Rethinking code optimization for mobile and multicore, InfoWorld, July 2009 (link)
  3. ^ Artifact Evaluation for computer systems' conferences
  4. ^ Grigori Fursin and Olivier Temam. Collective optimization. Proceedings of the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2009), Paphos, Cyprus, January 2009 (link)
  5. ^ Collective Knowledge based portal for collaborative benchmarking and optimization of emerging workloads at cknowledge.io
edit