iThreads: A Threading Library for Parallel Incremental Computation

iThreads: A Threading Library for Parallel Incremental Computation
复制标题

iThreads:用于并行增量计算的线程库

DOI:
--
复制
发表时间:
2015
期刊:
International Conference on Architectural Support for Programming Languages and Operating Systems
影响因子:
--
通讯作者:
R. Rodrigues
R. Rodrigues
中科院分区:
--
文献类型:
--
作者:
Pramod Bhatotia;Pedro Fonseca;Umut A. Acar;Björn B. Brandenburg;R. Rodrigues

文献摘要

被引文献

相似文献

增量计算通过仅重新执行受给定输入变化影响的计算部分,而非从头重新计算所有内容,来追求应用程序的高效连续运行。为了自动实现这些优势,我们介绍了iThreads,一个用于并行增量计算的线程库。iThreads支持未经修改的共享内存多线程程序:通过简单地替换动态链接库,它可以用作pthreads的替代品,甚至无需重新编译应用程序代码。为了实现这样的接口,我们设计了算法和一种实现方式,通过利用内存管理单元(MMU)辅助的内存访问跟踪和基于进程的线程隔离,在已编译的二进制代码级别进行操作。我们在多核平台上使用来自PARSEC和Phoenix基准测试的应用程序以及两个案例研究进行评估,结果显示出显著的性能提升。
Incremental computation strives for efficient successive runs of applications by re-executing only those parts of the computation that are affected by a given input change instead of recomputing everything from scratch. To realize these benefits automatically, we describe iThreads, a threading library for parallel incremental computation. iThreads supports unmodified shared-memory multithreaded programs: it can be used as a replacement for pthreads by a simple exchange of dynamically linked libraries, without even recompiling the application code. To enable such an interface, we designed algorithms and an implementation to operate at the compiled binary code level by leveraging MMU-assisted memory access tracking and process-based thread isolation. Our evaluation on a multicore platform using applications from the PARSEC and Phoenix benchmarks and two case-studies shows significant performance gains.