ParaLog: enabling and accelerating online parallel monitoring of multithreaded applications

ParaLog: enabling and accelerating online parallel monitoring of multithreaded applications
复制标题

ParaLog:启用并加速多线程应用程序的在线并行监控

DOI:
--
复制
发表时间:
2010
期刊:
ASPLOS XV
影响因子:
--
通讯作者:
T. Mowry
T. Mowry
中科院分区:
--
文献类型:
--
作者:
Evangelos Vlachos;Michelle L. Goodstein;M. Kozuch;Shimin Chen;B. Falsafi;Phillip B. Gibbons;T. Mowry

文献摘要

被引文献

相似文献

指令粒度救生员在单个指令级别监视正在运行的应用程序的事件,以识别并帮助减轻应用程序错误和安全漏洞。由于这样的救生员会使现有平台的速度降低10- 100倍,因此以前的研究已经提出了硬件设计来加速救生员处理。然而,这些加速器要么是为特定类别的救生员量身定制的,要么只适合于监视单线程程序。 我们介绍了ParaLog,这是第一个能够快速在线并行监控多线程并行应用程序的系统设计。ParaLog支持广泛的软件定义的救生员。我们展示了如何增强现有的三个加速器以支持在线多线程监控,从而大大减少救生员的管理费用。我们确定并解决了几个挑战,在监控并行应用程序和/或并行化这些加速器,包括(i)执行线程间的数据依赖,(ii)处理线程间的影响,没有反映在一致性流量,(iii)处理未受监控的操作系统活动,(iv)确保救生员可以访问共享的元数据,可以忽略不计的同步开销。我们提出了我们的系统设计顺序一致和总存储订购处理器。我们实现和评估我们的设计上的16核心模拟CMP,使用SPLASH-2和PARSEC和两个救生员的基准:数据流跟踪救生员和内存访问检查救生员。我们的研究结果表明,(i)我们的并行加速器分别为我们的两个救生员提高了2- 9倍和1.13- 3.4倍的性能,(ii)我们比现有技术所需的时间切片方法快5- 126倍,(iii)对于两个救生员,我们对具有八个线程的应用程序的平均开销分别为51%和28%。
Instruction-grain lifeguards monitor the events of a running application at the level of individual instructions in order to identify and help mitigate application bugs and security exploits. Because such lifeguards impose a 10-100X slowdown on existing platforms, previous studies have proposed hardware designs to accelerate lifeguard processing. However, these accelerators are either tailored to a specific class of lifeguards or suitable only for monitoring singlethreaded programs. We present ParaLog, the first design of a system enabling fast online parallel monitoring of multithreaded parallel applications. ParaLog supports a broad class of software-defined lifeguards. We show how three existing accelerators can be enhanced to support online multithreaded monitoring, dramatically reducing lifeguard overheads. We identify and solve several challenges in monitoring parallel applications and/or parallelizing these accelerators, including (i) enforcing inter-thread data dependences, (ii) dealing with inter-thread effects that are not reflected in coherence traffic, (iii) dealing with unmonitored operating system activity, and (iv) ensuring lifeguards can access shared metadata with negligible synchronization overheads. We present our system design for both Sequentially Consistent and Total Store Ordering processors. We implement and evaluate our design on a 16 core simulated CMP, using benchmarks from SPLASH-2 and PARSEC and two lifeguards: a data-flow tracking lifeguard and a memory-access checker lifeguard. Our results show that (i) our parallel accelerators improve performance by 2-9X and 1.13-3.4X for our two lifeguards, respectively, (ii) we are 5-126X faster than the time-slicing approach required by existing techniques, and (iii) our average overheads for applications with eight threads are 51% and 28% for the two lifeguards, respectively.