Powered by
2020 ACM SIGPLAN International Symposium on Memory Management (ISMM 2020),
June 16, 2020,
London, UK
2020 ACM SIGPLAN International Symposium on Memory Management (ISMM 2020)
Frontmatter
Welcome from the Chairs
It is with great pleasure that we welcome you to the ACM SIGPLAN International Symposium on Memory Management (ISMM) 2020. This is the 19th installment of ISMM and was originally meant to take place in London, UK on June 16, 2020, in conjunction with PLDI. However, due to the COVID-19 pandemic, the physical conference had to be cancelled and ISMM moved to a virtual conference format.
Papers
Garbage Collection using a Finite Liveness Domain
Aman Bansal, Saksham Goel, Preey Shah, Amitabha Sanyal, and Prasanna Kumar
(IIT Bombay, India)
Functional languages manage heap data through garbage collection. Since static analysis of heap data is difficult,
garbage collectors conservatively approximate the
liveness of heap objects
by reachability
i.e. every object that is reachable from the root set is considered live.
Consequently, a large amount of memory that is reachable but not used further during execution is left uncollected by the collector.
Earlier attempts at liveness-based garbage collection for languages supporting structured types were based on analyses that considered arbitrary liveness values, i.e. they assumed that any substructure of the data could be potentially live. This made the analyses complex and unscalable. However, functional programs traverse structured data like lists in identifiable patterns. We identify a set of eight usage patterns that we use as liveness values. The liveness analysis that accompanies our garbage collector is based on this set; liveness arising out of other patterns of traversal are conservatively approximated by this set.
This restriction to a small set of liveness values reaps several benefits -- it results in a simple liveness analysis which scales to much larger programs with minimal loss of precision, enables the use of a faster collection technique, and is extendable to higher-order programs.
Our experiments with a purely functional subset of Scheme show a reduction in the analysis time by orders of magnitude. In addition, the minimum heap size required to run programs is comparable with a liveness-based collector with unrestricted liveness values, and in situations where memory is limited, the garbage collection time is lower than its reachability counterpart.
@InProceedings{ISMM20p1,
author = {Aman Bansal and Saksham Goel and Preey Shah and Amitabha Sanyal and Prasanna Kumar},
title = {Garbage Collection using a Finite Liveness Domain},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {1--15},
doi = {10.1145/3381898.3397208},
year = {2020},
}
Publisher's Version
Prefetching in Functional Languages
Sam Ainsworth and
Timothy M. Jones
(University of Cambridge, UK)
Functional programming languages contain a number of runtime and language features, such as garbage collection, indirect memory accesses, linked data structures and immutability, that interact with a processor’s memory system. These conspire to cause a variety of unintuitive memory-performance effects. For example, it is slower to traverse through linked lists and arrays of data that have been sorted than to traverse the same data accessed in the order it was allocated.
We seek to understand these issues and mitigate them in a manner consistent with functional languages, taking advantage of the features themselves where possible. For example, immutability and garbage collection force linked lists to be allocated roughly sequentially in memory, even when the data pointed to within each node is not. We add language primitives for software-prefetching to the OCaml language to exploit this, and observe significant performance improvements a variety of micro- and macro-benchmarks, resulting in speedups of up to 2× on the out-of-order superscalar Intel Haswell and Xeon Phi Knights Landing systems, and up to 3× on the in-order Arm Cortex-A53.
@InProceedings{ISMM20p16,
author = {Sam Ainsworth and Timothy M. Jones},
title = {Prefetching in Functional Languages},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {16--29},
doi = {10.1145/3381898.3397209},
year = {2020},
}
Publisher's Version
Improving Phase Change Memory Performance with Data Content Aware Access
Shihao Song, Anup Das, Onur Mutlu, and Nagarajan Kandasamy
(Drexel University, USA; ETH Zurich, Switzerland)
Phase change memory (PCM) is a scalable non-volatile memory technology that has low access latency (like DRAM) and high capacity (like Flash). Writing to PCM incurs significantly higher latency and energy penalties compared to reading its content. A prominent characteristic of PCM’s write operation is that its latency and energy are sensitive to the data to be written as well as the content that is overwritten. We observe that overwriting unknown memory content can incur significantly higher latency and energy compared to overwriting known all-zeros or all-ones content. This is because all-zeros or all-ones content is overwritten by programming the PCM cells only in one direction, i.e., using either SET or RESET operations, not both.
In this paper, we propose data content aware PCM writes (DATACON), a new mechanism that reduces the latency and energy of PCM writes by redirecting these requests to overwrite memory locations containing all-zeros or all-ones. DATACON operates in three steps. First, it estimates how much a PCM write access would benefit from overwriting known content (e.g., all-zeros, or all-ones) by comprehensively considering the number of set bits in the data to be written, and the energy-latency trade-offs for SET and RESET operations in PCM. Second, it translates the write address to a physical address within memory that contains the best type of content to overwrite, and records this translation in a table for future accesses. We exploit data access locality in work- loads to minimize the address translation overhead. Third, it re-initializes unused memory locations with known all- zeros or all-ones content in a manner that does not interfere with regular read and write accesses. DATACON overwrites unknown content only when it is absolutely necessary to do so. We evaluate DATACON with workloads from state- of-the-art machine learning applications, SPEC CPU2017, and NAS Parallel Benchmarks. Results demonstrate that DATACON improves the effective access latency by 31%, overall system performance by 27%, and total memory system energy consumption by 43% compared to the best of performance-oriented state-of-the-art techniques.
@InProceedings{ISMM20p30,
author = {Shihao Song and Anup Das and Onur Mutlu and Nagarajan Kandasamy},
title = {Improving Phase Change Memory Performance with Data Content Aware Access},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {30--47},
doi = {10.1145/3381898.3397210},
year = {2020},
}
Publisher's Version
Verified Sequential Malloc/Free
Andrew W. Appel and David A. Naumann
(Princeton University, USA; Stevens Institute of Technology, USA)
We verify the functional correctness of an array-of-bins (segregated free-lists) single-thread malloc/free system with respect to a correctness specification written in separation logic. The memory allocator is written in standard C code compatible with the standard API; the specification is in the Verifiable C program logic, and the proof is done in the Verified Software Toolchain within the Coq proof assistant. Our "resource-aware" specification can guarantee when malloc will successfully return a block, unlike the standard Posix specification that allows malloc to return NULL whenever it wants to. We also prove subsumption (refinement): the resource-aware specification implies a resource-oblivious spec.
@InProceedings{ISMM20p48,
author = {Andrew W. Appel and David A. Naumann},
title = {Verified Sequential Malloc/Free},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {48--59},
doi = {10.1145/3381898.3397211},
year = {2020},
}
Publisher's Version
Understanding and Optimizing Persistent Memory Allocation
Wentao Cai, Haosen Wen, H. Alan Beadle, Chris Kjellqvist, Mohammad Hedayati, and Michael L. Scott
(University of Rochester, USA)
The proliferation of fast, dense, byte-addressable nonvolatile memory
suggests that data might be kept in pointer-rich "in-memory"
format across program runs and even process and system crashes. For
full generality, such data requires dynamic memory allocation, and while
the allocator could in principle be "rolled into" each data structure,
it is desirable to make it a separate abstraction.
Toward this end, we introduce recoverability, a correctness
criterion for persistent allocators, together with a nonblocking
allocator, Ralloc, that satisfies this criterion. Ralloc is
based on the LRMalloc of Leite and Rocha,
with three key innovations. First, we persist just enough
information during normal operation to permit correct reconstruction of
the heap after a full-system crash. Our reconstruction mechanism
performs garbage collection (GC) to identify and remedy any
failure-induced memory leaks. Second,
we introduce
the notion of filter functions, which identify the locations of
pointers within persistent blocks to mitigate the limitations of
conservative GC.
Third, to allow
persistent regions to be mapped at an arbitrary address, we employ
position-independent (offset-based) pointers for both data and metadata.
Experiments show Ralloc to be performance-competitive
with both Makalu,
the state-of-the-art lock-based persistent allocator, and
such transient allocators as LRMalloc and JEMalloc.
In particular, reliance on GC and offline metadata reconstruction
allows Ralloc to pay almost nothing for persistence during normal
operation.
@InProceedings{ISMM20p60,
author = {Wentao Cai and Haosen Wen and H. Alan Beadle and Chris Kjellqvist and Mohammad Hedayati and Michael L. Scott},
title = {Understanding and Optimizing Persistent Memory Allocation},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {60--73},
doi = {10.1145/3381898.3397212},
year = {2020},
}
Publisher's Version
ThinGC: Complete Isolation with Marginal Overhead
Albert Mingkun Yang,
Erik Österlund, Jesper Wilhelmsson, Hanna Nyblom, and
Tobias Wrigstad
(Uppsala University, Sweden; Oracle, Sweden; KTH, Sweden)
Previous works on leak-tolerating GC and write-rationing GC show
that most reads/writes in an application are concentrated to a
small number of objects. This suggests that many applications
enjoy a clear and stable clustering of hot (recently read and/or
written) and cold (the inverse of hot) objects. These results have
been shown in the context of Jikes RVM, for stop-the-world
collectors. This paper explores a similar design for a concurrent
collector in the context of OpenJDK, plus a separate collector to
manage cold objects in their own subheap. We evaluate the design
and implementation of ThinGC using algorithms from JGraphT and
the DaCapo suite. The results show that ThinGC considers fewer
objects cold than previous work, and maintaining separate subheaps
of hot and cold objects induces marginal overhead for most
benchmarks except one, where large slowdown due to excessive
reheats is observed.
@InProceedings{ISMM20p74,
author = {Albert Mingkun Yang and Erik Österlund and Jesper Wilhelmsson and Hanna Nyblom and Tobias Wrigstad},
title = {ThinGC: Complete Isolation with Marginal Overhead},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {74--86},
doi = {10.1145/3381898.3397213},
year = {2020},
}
Publisher's Version
Alligator Collector: A Latency-Optimized Garbage Collector for Functional Programming Languages
Ben Gamari and Laura Dietz
(Well-Typed LLP, UK; University of New Hampshire, USA)
Modern hardware and applications require runtime systems that can operate under large-heap and low-latency requirements. For many client/server or interactive applications, reducing average and maximum pause times is more important than maximizing throughput.
The GHC Haskell runtime system version 8.10.1 offers a new latency-optimized garbage collector as an alternative to the existing throughput-optimized copying garbage collector. This paper details the
latency-optimized GC design, which is a generational collector integrating GHC's existing collector and bump-pointer allocator with a non-moving collector and non-moving heap suggested by Ueno and Ohori. We provide an empirical analysis on the latency/throughput tradeoffs. We augment the established nofib micro benchmark with a response-time focused benchmark that simulates real-world applications such as LRU caches, web search, and key-value stores.
@InProceedings{ISMM20p87,
author = {Ben Gamari and Laura Dietz},
title = {Alligator Collector: A Latency-Optimized Garbage Collector for Functional Programming Languages},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {87--99},
doi = {10.1145/3381898.3397214},
year = {2020},
}
Publisher's Version
Info
Exploiting Inter- and Intra-Memory Asymmetries for Data Mapping in Hybrid Tiered-Memories
Shihao Song, Anup Das, and Nagarajan Kandasamy
(Drexel University, USA)
Modern computing systems are embracing hybrid memory comprising of DRAM and non-volatile memory (NVM) to combine the best properties of both memory technologies, achieving low latency, high reliability, and high density. A prominent characteristic of DRAM-NVM hybrid memory is that it has NVM access latency much higher than DRAM access latency. We call this inter-memory asymmetry. We observe that parasitic components on a long bitline are a major source of high latency in both DRAM and NVM, and a significant factor contributing to high-voltage operations in NVM, which impact their reliability. We propose an architectural change, where each long bitline in DRAM and NVM is split into two segments by an isolation transistor. One segment can be accessed with lower latency and operating voltage than the other. By introducing tiers, we enable non-uniform accesses within each memory type (which we call intra-memory asymmetry), leading to performance and reliability trade-offs in DRAM-NVM hybrid memory.
We show that our hybrid tiered-memory architecture has a tremendous potential to improve performance and reliability, if exploited by an efficient page management policy at the operating system (OS). Modern OSes are already aware of inter-memory asymmetry. They migrate pages between the two memory types during program execution, starting from an initial allocation of the page to a randomly-selected free physical address in the memory. We extend existing OS awareness in three ways. First, we exploit both inter- and intra-memory asymmetries to allocate and migrate memory pages between the tiers in DRAM and NVM. Second, we improve the OS’s page allocation decisions by predicting the access intensity of a newly-referenced memory page in a program and placing it to a matching tier during its initial allocation. This minimizes page migrations during program execution, lowering the performance overhead. Third, we propose a solution to migrate pages between the tiers of the same memory without transferring data over the memory channel, minimizing channel occupancy and improving performance. Our overall approach, which we call MNEME, to enable and exploit asymmetries in DRAM-NVM hybrid tiered memory improves both performance and reliability for both single-core and multi-programmed workloads.
@InProceedings{ISMM20p100,
author = {Shihao Song and Anup Das and Nagarajan Kandasamy},
title = {Exploiting Inter- and Intra-Memory Asymmetries for Data Mapping in Hybrid Tiered-Memories},
booktitle = {Proc.\ ISMM},
publisher = {ACM},
pages = {100--114},
doi = {10.1145/3381898.3397215},
year = {2020},
}
Publisher's Version
proc time: 2.19