Software Logging under Speculative Parallelization

Software Logging under Speculative Parallelization
复制标题

推测并行化下的软件日志记录

DOI:
10.1007/978-1-4419-8987-1_12
复制
发表时间:
2001
期刊:
影响因子:
--
通讯作者:
J. Torrellas
J. Torrellas
中科院分区:
--
文献类型:
--
作者:
M. Garzarán;Milos Prvulović;J. Llabería;V. Viñals;Lawrence Rauchwerger;J. Torrellas

文献摘要

参考文献

被引文献

相似文献

推测并行积极地并行运行难以分析的代码。推测性任务生成不安全状态,通常在缓存中进行缓冲。通常,缓存可能必须缓冲多个任务的状态,因此,它可能必须保存同一变量的多个版本。修改缓存以容纳如此多的版本会增加复杂性,并可能增加命中时间。最好使用日志记录,其中缓存仅存储变量的最新版本,而日志保留旧版本。日志记录还有助于减少要保留在缓存中的推测状态的大小。本章探讨了用于推测并行化的高效的纯软件日志。我们表明,这种方法对于具有创建同一变量的多个版本的任务的程序非常有吸引力。通过对16个处理器的CC-NUMA进行模拟,我们发现,在具有软件日志记录的系统上,这些程序的执行时间平均比在缓存只能保存任何给定变量的单个版本的系统上缩短36%。此外,执行时间只比硬件支持日志记录的系统长10%。
Speculative parallelization aggressively runs hard-to-analyze codes in parallel. Speculative tasks generate an unsafe state, which is typically buffered in caches. Often, a cache may have to buffer the state of several tasks and, as a result, it may have to hold multiple versions of the same variable. Modifying the cache to hold such multiple versions adds complexity and may increase the hit time. It is better to use logging, where the cache only stores the last versions of variables while the log keeps the older ones. Logging also helps to reduce the size of the speculative state to be retained in caches.This chapter explores efficient software-only logging for speculative parallelization. We show that such an approach is very attractive for programs with tasks that create multiple versions of the same variable. Using simulations of a 16-processor CC-NUMA, we show that the execution time of such programs on a system with software logging is on average 36% shorter than on a system where caches can only hold a single version of any given variable. Furthermore, execution takes only 10% longer than in a system with hardware support for logging.
DOI: 10.1109/2.869367
发表时间: 2000-07-01
期刊: COMPUTER
影响因子: 2.2
作者:
Henning, JL
通讯作者: Henning, JL