Modern computing platforms are highly-configurable with thousands of interacting configurations. However, configuring these systems is challenging. Erroneous configurations can cause unexpected non-functional faults. This paper proposes CADET (short for Causal Debugging Toolkit) that enables users to identify, explain, and fix the root cause of non-functional faults early and in a principled fashion. CADET builds a causal model by observing the performance of the system under different configurations. Then, it uses casual path extraction followed by counterfactual reasoning over the causal model to: (a) identify the root causes of non-functional faults, (b) estimate the effects of various configurable parameters on the performance objective(s), and (c) prescribe candidate repairs to the relevant configuration options to fix the non-functional fault. We evaluated CADET on 5 highly-configurable systems deployed on 3 NVIDIA Jetson systems-on-chip. We compare CADET with state-of-the-art configuration optimization and ML-based debugging approaches. The experimental results indicate that CADET can find effective repairs for faults in multiple non-functional properties with (at most) 17% more accuracy, 28% higher gain, and $40\times$ speed-up than other ML-based performance debugging methods. Compared to multi-objective optimization approaches, CADET can find fixes (at most) $9\times$ faster with comparable or better performance gain. Our case study of non-functional faults reported in NVIDIA's forum show that CADET can find $14%$ better repairs than the experts' advice in less than 30 minutes.
翻译:现代计算平台与数千个互动配置高度相容。 然而, 配置这些系统具有挑战性。 错误配置可能导致出乎意料的不功能错误。 本文建议使用 CADET (Causal 调试工具工具短于 Causal Debuging 工具), 使用户能够识别、 解释和修正不功能错误的根源。 CADET 通过观察不同配置下的系统性能, 构建一个因果模型。 然后, 它使用随机路径提取, 并随后对因果模型进行反事实推理, 以便:(a) 找出非功能错误的根源, (b) 估计各种可配置参数对绩效目标(s) 的影响, (c) 指定候选人对相关配置选项进行修理, 以纠正不功能错误。 我们用在3 NVVIDIA Jetson 系统中安装的5个高度可配置系统的系统进行了评估。 然后, 我们将CAADET 与基于状态配置的优化和基于 ML 的调试算方法进行比较, 。 实验结果显示, CADET 最有效的成本 30级的准确性分析方法比其他的运行方法更精确方法, CAdel- breal- breal- breal- breal- broild- breal- breal- breald- breald- creald- creald- cald- creal- creald- creald- creald- sald- sald- sald- sald- sald- fald- sald- fald- fald- fald- fald- sald- sald- sald- sald- sald- fald- fald- fald- fald- fald- fald- fald- fald- fald- fald- fald- fald- fal- fald- fald- fald- fald- fald- fald- fald- fald- fald- fald- fald- le- le- fald- fald-