The following is a special contribution to this blog by CCC Vice Chair Mark D. Hill of the University of Wisconsin-Madison. While he is coauthor of the paper discussed, he blogs anyway, because a benchmark suite can be valuable for driving better designs and comparisons.
Since the dawn of computing, memory has been volatile, byte-addressable, and directly accessed with user-level reads and writes, while storage has been durable, block-addressesable, and accessed via system calls. Persistent Memory (PM) can change this by allowing user-level reads and writes direct byte-addressable access to emerging non-volatile memory technologies. Nevertheless, many systems will continue to have volatile memory (DRAM) in parallel with PM for lower energy writes and perhaps faster access. Initial PM systems have been developed using limited benchmarks and micro-benchmarks.
To put future research in PM software and hardware on a firmer footing, researchers from Wisconsin and HP Labs have developed a PM benchmark suite called WHISPER whose open source is available now. They took benchmarks that used PM directly (echo, n-store), via libraries (reds, c-tree, hashmap, vacation, memcached) and as a file system (nfs, exim, mysql) and modified them so that accesses use volatile memory except as necessary to provide consistent state for crash recovery.
The WHISPER suite was previewed at Non-Volatile Memories Workshop last week and will be formally introduced at ASPLOS next month in a paper titled, “An Analysis of Persistent Memory Use with WHISPER.” The paper also includes benchmark analysis and a new PM system design. Analysis shows, for example, that most dynamic accesses are to volatile memory (96%) and that ordering events are much more common than durability events (5-50x). This drives a PM system design that minimizes PM’s impact on volatile accesses and makes relatively-common ordering events less expensive than durability events.