HomeresearchPeopleGeneral InfoSeminarsResources
Abstract

Maria Jesus Garzaran, Milos Prvulovic, Victor Vinals, Jose Llaberia, Lawrence Rauchwerger, Josep Torrellas, "Software Logging under Speculative Parallelization," In Proc. of Workshop on High Performance Memory Systems, Goteborg, Sweden, Jun 2001.
Proceedings(ps, pdf, abstract)

Abstract Speculative parallelization aggressively runs hard-to-analyze codes in parallel. Speculative tasks generate 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 paper 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.