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