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) 调整一个输入数据的软件系统使其性能乘以10(3) 输入变异性, 可能危及实地部署的性能预测模型的相关性。