Widely used software systems such as video encoders are by necessity highly configurable, with hundreds or even thousands of options to choose from. Their users often have a hard time finding suitable values for these options (i.e. finding a proper configuration of the software system) to meet their goals for the tasks at hand, e.g. compress a video down to a certain size. One dimension of the problem is of course that performance depends on the input data: a video as input to an encoder like x264 or a file system fed to a tool like xz. To achieve good performance, users should therefore take into account both dimensions of (1) software variability and (2) input data. In this problem-statement paper, we conduct a large study over 8 configurable systems that quantifies the existing interactions between input data and configurations of software systems. The results exhibit that (1) inputs fed to software systems interact with their configuration options in non monotonous ways, significantly impacting their performance properties (2) tuning a software system for its input data makes it possible to multiply its performance by up to ten (3) input variability can jeopardize the relevance of performance predictive models for a field deployment.
翻译:广泛使用的软件系统(如视频编码器)必然具有高度可配置性,提供数百甚至数千个选项供用户选择。用户通常难以找到这些选项的合适值(即为软件系统找到合适配置),以达成当前任务的目标,例如将视频压缩到特定大小。该问题的一个维度在于性能取决于输入数据:例如,输入到x264等编码器的视频,或输入到xz等工具的文件系统。为获得良好性能,用户应同时考虑(1)软件可变性与(2)输入数据这两个维度。在本问题陈述论文中,我们针对8个可配置系统开展大规模研究,量化了输入数据与软件系统配置之间的现有交互。结果表明:(1)输入到软件系统的数据会以非单调方式与其配置选项交互,显著影响性能特性;(2)针对输入数据优化软件系统配置,可使其性能提升高达十倍;(3)输入数据的可变性可能损害性能预测模型在现场部署中的相关性。