Table of Contents
Fetching ...

GreenMalloc: Allocator Optimisation for Industrial Workloads

Aidan Dakhama, W. B. Langdon, Hector D. Menendez, Karine Even-Mendoza

TL;DR

GreenMalloc tackles the challenge of tuning memory allocator parameters for industrial workloads by combining a lightweight proxy benchmark with multi-objective search. The approach uses NSGA-II to optimize memory and runtime jointly, first exploring parameter space with rand_malloc and then validating promising configurations in the gem5 simulator on two popular allocators, glibc malloc and TCMalloc. Key contributions include a novel search-based optimisation methodology, GreenMalloc as a generalisable prototype, and a systematic study showing reductions in average heap usage and memory release rate with maintainable runtime performance. The work demonstrates a practical, transferable path to greener and more efficient large-scale simulations, with potential applicability to additional system components and full-system evaluation in future work.

Abstract

We present GreenMalloc, a multi objective search-based framework for automatically configuring memory allocators. Our approach uses NSGA II and rand_malloc as a lightweight proxy benchmarking tool. We efficiently explore allocator parameters from execution traces and transfer the best configurations to gem5, a large system simulator, in a case study on two allocators: the GNU C/CPP compiler's glibc malloc and Google's TCMalloc. Across diverse workloads, our empirical results show up to 4.1 percantage reduction in average heap usage without loss of runtime efficiency; indeed, we get a 0.25 percantage reduction.

GreenMalloc: Allocator Optimisation for Industrial Workloads

TL;DR

GreenMalloc tackles the challenge of tuning memory allocator parameters for industrial workloads by combining a lightweight proxy benchmark with multi-objective search. The approach uses NSGA-II to optimize memory and runtime jointly, first exploring parameter space with rand_malloc and then validating promising configurations in the gem5 simulator on two popular allocators, glibc malloc and TCMalloc. Key contributions include a novel search-based optimisation methodology, GreenMalloc as a generalisable prototype, and a systematic study showing reductions in average heap usage and memory release rate with maintainable runtime performance. The work demonstrates a practical, transferable path to greener and more efficient large-scale simulations, with potential applicability to additional system components and full-system evaluation in future work.

Abstract

We present GreenMalloc, a multi objective search-based framework for automatically configuring memory allocators. Our approach uses NSGA II and rand_malloc as a lightweight proxy benchmarking tool. We efficiently explore allocator parameters from execution traces and transfer the best configurations to gem5, a large system simulator, in a case study on two allocators: the GNU C/CPP compiler's glibc malloc and Google's TCMalloc. Across diverse workloads, our empirical results show up to 4.1 percantage reduction in average heap usage without loss of runtime efficiency; indeed, we get a 0.25 percantage reduction.
Paper Structure (7 sections, 2 figures)

This paper contains 7 sections, 2 figures.

Figures (2)

  • Figure 1: General GreenMalloc workflow: starting with rand_malloc optimisation to identify efficient allocation parameters, ended by validation on gem5 to assess improvements in memory usage and runtime.
  • Figure 2: Comparison of default and GreenMalloc-optimised configurations of glibc malloc (glibc) and TCMalloc (tcmalloc). From left to right: average heap size, Memory release Rate, peak heap size, and instruction counts, as measured with Valgrind, perf, and gem5. Values are all pareto optimal values.