中文

使大规模代码库的根因分析可行:一种气候模型的解决方案

分布式、并行与集群计算 2019-02-12 v2 编程语言

摘要

对于具有庞大而复杂代码库的大规模模拟代码,逐位比较过于严格,要找出输出中统计显著偏差(例如相对于先前版本、替代硬件或支撑软件栈所产生的偏差)的来源,即便说得上容易也绝非易事。尽管有许多通过调试或切片进行程序理解的工具有,但极少(如果有的话)能扩展到像Community Earth System Model(CESM;已注册商标)这样大的模型,该模型由超过150万行Fortran代码组成。目前对于CESM,我们已能利用如今成熟的统计一致性测试工具轻松判断输出中是否存在偏差。然而,该工具并不提供关于所检测偏差可能原因的信息,使开发人员陷入看似不可能(且令人沮丧)的境地。因此,本工作的目标是提供工具,使开发人员能够将通过CESM输出检测到的问题追踪到其源头。为此,我们的策略是通过一系列技术将根因的搜索空间缩减到可处理的规模,这些技术包括创建CESM内部变量的有向图、提取子图(使用一种混合程序切片形式)、划分为社区,以及按中心性对节点排序。在此缩减的搜索空间中,运行时变量采样便得以可行。我们在多个CESM模拟输出实例上展示了该过程的效用,说明如何将采样作为高效并行迭代精化过程的一部分来执行,以定位错误源,包括对CPU指令的敏感性。通过为CESM开发人员提供识别并理解统计上不同输出原因的工具,我们对CESM软件开发周期产生了积极影响,尤其是其质量保证方面。

关键词

引用

@article{arxiv.1810.13432,
  title  = {Making root cause analysis feasible for large code bases: a solution approach for a climate model},
  author = {Daniel J. Milroy and Allison H. Baker and Dorit M. Hammerling and Youngsung Kim and Elizabeth R. Jessup and Thomas Hauser},
  journal= {arXiv preprint arXiv:1810.13432},
  year   = {2019}
}