中文

Inspector:面向多线程程序的数据溯源库

分布式、并行与集群计算 2016-05-03 v1

摘要

数据溯源(data provenance)旨在通过记录执行轨迹来解释计算是如何进行的。溯源轨迹在广泛的工作流中可用于提升软件系统的可靠性、安全性和效率。本文中,我们提出 Inspector,一个兼容 POSIX 的、用于共享内存多线程程序的数据溯源库。Inspector 库完全透明且易于使用:它可通过简单地替换链接的库来作为 pthreads 库的替代,甚至无需重新编译应用程序代码。为达成此结果,我们提出一种并行溯源算法,该算法利用并发溯源图(Concurrent Provenance Graph, CPG)记录控制、数据与调度依赖。我们通过结合特定操作系统的机制和最近发布的 Intel PT ISA 扩展(作为 Broadwell 微体系结构的一部分)实现了在编译后二进制代码层面运行的算法。我们在多核平台上使用来自多线程基准测试套件(PARSEC 和 Phoenix)的应用程序进行评估,结果显示对大多数应用而言溯源开销合理。最后,我们简要描述了三个案例研究,其中 Inspector 导出的通用接口正被用于提升系统的可靠性、安全性和效率。Inspector 库已公开可用,以进一步用于广泛的其他溯源工作流。

关键词

引用

@article{arxiv.1605.00498,
  title  = {Inspector: A Data Provenance Library for Multithreaded Programs},
  author = {Jörg Thalheim and Pramod Bhatotia and Christof Fetzer},
  journal= {arXiv preprint arXiv:1605.00498},
  year   = {2016}
}

备注

13 pages