Collective mind: Towards practical and collaborative auto-tuning
Issue title: Automatic Application Tuning for HPC Architectures
Article type: Research Article
Authors: Fursin, Grigori; | Miceli, Renato | Lokhmotov, Anton | Gerndt, Michael | Baboulin, Marc | Malony, Allen D. | Chamski, Zbigniew | Novillo, Diego | Del Vento, Davide
Affiliations: Inria and University of Paris-Sud, Orsay, France | University of Rennes 1, Rennes, France and ICHEC, Dublin, Ireland | ARM, Cambridge, UK | Technical University of Munich, Munich, Germany | University of Oregon, Eugene, OR, USA | Infrasoft IT Solutions, Plock, Poland | Google Inc., Toronto, Canada | National Center for Atmospheric Research, Boulder, CO, USA
Note: [] Corresponding author. E-mail: grigori.fursin@inria.fr
Abstract: Empirical auto-tuning and machine learning techniques have been showing high potential to improve execution time, power consumption, code size, reliability and other important metrics of various applications for more than two decades. However, they are still far from widespread production use due to lack of native support for auto-tuning in an ever changing and complex software and hardware stack, large and multi-dimensional optimization spaces, excessively long exploration times, and lack of unified mechanisms for preserving and sharing of optimization knowledge and research material. We present a possible collaborative approach to solve above problems using Collective Mind knowledge management system. In contrast with previous cTuning framework, this modular infrastructure allows to preserve and share through the Internet the whole auto-tuning setups with all related artifacts and their software and hardware dependencies besides just performance data. It also allows to gradually structure, systematize and describe all available research material including tools, benchmarks, data sets, search strategies and machine learning models. Researchers can take advantage of shared components and data with extensible meta-description to quickly and collaboratively validate and improve existing auto-tuning and benchmarking techniques or prototype new ones. The community can now gradually learn and improve complex behavior of all existing computer systems while exposing behavior anomalies or model mispredictions to an interdisciplinary community in a reproducible way for further analysis. We present several practical, collaborative and model-driven auto-tuning scenarios. We also decided to release all material at c-mind.org/repo to set up an example for a collaborative and reproducible research as well as our new publication model in computer engineering where experimental results are continuously shared and validated by the community.
Keywords: High performance computing, systematic auto-tuning, systematic benchmarking, big data driven optimization, modeling of computer behavior, performance prediction, collaborative knowledge management, public repository of knowledge, NoSQL repository, code and data sharing, specification sharing, collaborative experimentation, machine learning, data mining, multi-objective optimization, model driven optimization, agile development, plugin-based tuning, performance regression buildbot, open access publication model, reproducible research
DOI: 10.3233/SPR-140396
Journal: Scientific Programming, vol. 22, no. 4, pp. 309-329, 2014