Brug: An Adaptive Memory (Re-)Allocator

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Authors

Research Organisations

External Research Organisations

  • Leiden University
  • DFINITY Foundation
View graph of relations

Details

Original languageEnglish
Title of host publicationProceedings
Subtitle of host publication2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages67-76
Number of pages10
ISBN (electronic)9798350395662
ISBN (print)979-8-3503-9567-9
Publication statusPublished - 8 Oct 2024
Event24th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024 - Philadelphia, United States
Duration: 6 May 20249 May 2024

Publication series

NameIEEE International Symposium on Cluster, Cloud and Internet Computing
ISSN (Print)2376-4414
ISSN (electronic)2993-2114

Abstract

Although memory allocation is well-studied, it is far from being a solved problem. There exist many allocators, each offering varied performance depending on the underlying workload. With workloads becoming ever more complex, practitioners need to take difficult decisions for the performance tuning of memory allocation: which allocators to choose and how to tweak their knobs are legitimate questions.In this article, we take a deep look at memory allocators and propose Brug, an adaptive memory allocator that builds upon the strengths of all existing allocators and discards their weaknesses. Brug can help programmers choose the suitable allocator for their applications or even for individual data structures and functions within applications, allowing for different allocators within the same program. Brug also offers an auto-tuner to minimize developer decision-making.Brug comes in two flavors: (1) Rust-based library that can be added to modern Rust code bases, helping in allocation and re-allocation performance and diagnosis. (2) C-based library that can be dynamically linked at runtime for existing legacy programs to optimize their performance. Brug was deployed with industry standard-grade frameworks, such as Apache Arrow, Wasmtime WebAssembly virtual machine, and Redis. Our experiments show that Brug can improve performance in all types of applications and help developers toward taking otherwise difficult decisions. Brug consistently improves application execution time.

ASJC Scopus subject areas

Cite this

Brug: An Adaptive Memory (Re-)Allocator. / Weng, Weikang; Uta, Alexandru; Rellermeyer, Jan S.
Proceedings : 2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024. Institute of Electrical and Electronics Engineers Inc., 2024. p. 67-76 (IEEE International Symposium on Cluster, Cloud and Internet Computing).

Research output: Chapter in book/report/conference proceedingConference contributionResearchpeer review

Weng, W, Uta, A & Rellermeyer, JS 2024, Brug: An Adaptive Memory (Re-)Allocator. in Proceedings : 2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024. IEEE International Symposium on Cluster, Cloud and Internet Computing, Institute of Electrical and Electronics Engineers Inc., pp. 67-76, 24th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024, Philadelphia, United States, 6 May 2024. https://doi.org/10.1109/CCGrid59990.2024.00017
Weng, W., Uta, A., & Rellermeyer, J. S. (2024). Brug: An Adaptive Memory (Re-)Allocator. In Proceedings : 2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024 (pp. 67-76). (IEEE International Symposium on Cluster, Cloud and Internet Computing). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/CCGrid59990.2024.00017
Weng W, Uta A, Rellermeyer JS. Brug: An Adaptive Memory (Re-)Allocator. In Proceedings : 2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024. Institute of Electrical and Electronics Engineers Inc. 2024. p. 67-76. (IEEE International Symposium on Cluster, Cloud and Internet Computing). doi: 10.1109/CCGrid59990.2024.00017
Weng, Weikang ; Uta, Alexandru ; Rellermeyer, Jan S. / Brug : An Adaptive Memory (Re-)Allocator. Proceedings : 2024 IEEE 24th International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024. Institute of Electrical and Electronics Engineers Inc., 2024. pp. 67-76 (IEEE International Symposium on Cluster, Cloud and Internet Computing).
Download
@inproceedings{39c83a8e12d74963b8fc39578863ab51,
title = "Brug: An Adaptive Memory (Re-)Allocator",
abstract = "Although memory allocation is well-studied, it is far from being a solved problem. There exist many allocators, each offering varied performance depending on the underlying workload. With workloads becoming ever more complex, practitioners need to take difficult decisions for the performance tuning of memory allocation: which allocators to choose and how to tweak their knobs are legitimate questions.In this article, we take a deep look at memory allocators and propose Brug, an adaptive memory allocator that builds upon the strengths of all existing allocators and discards their weaknesses. Brug can help programmers choose the suitable allocator for their applications or even for individual data structures and functions within applications, allowing for different allocators within the same program. Brug also offers an auto-tuner to minimize developer decision-making.Brug comes in two flavors: (1) Rust-based library that can be added to modern Rust code bases, helping in allocation and re-allocation performance and diagnosis. (2) C-based library that can be dynamically linked at runtime for existing legacy programs to optimize their performance. Brug was deployed with industry standard-grade frameworks, such as Apache Arrow, Wasmtime WebAssembly virtual machine, and Redis. Our experiments show that Brug can improve performance in all types of applications and help developers toward taking otherwise difficult decisions. Brug consistently improves application execution time.",
author = "Weikang Weng and Alexandru Uta and Rellermeyer, {Jan S.}",
year = "2024",
month = oct,
day = "8",
doi = "10.1109/CCGrid59990.2024.00017",
language = "English",
isbn = "979-8-3503-9567-9",
series = "IEEE International Symposium on Cluster, Cloud and Internet Computing",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
pages = "67--76",
booktitle = "Proceedings",
address = "United States",
note = "24th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024 ; Conference date: 06-05-2024 Through 09-05-2024",

}

Download

TY - GEN

T1 - Brug

T2 - 24th IEEE/ACM International Symposium on Cluster, Cloud and Internet Computing, CCGrid 2024

AU - Weng, Weikang

AU - Uta, Alexandru

AU - Rellermeyer, Jan S.

PY - 2024/10/8

Y1 - 2024/10/8

N2 - Although memory allocation is well-studied, it is far from being a solved problem. There exist many allocators, each offering varied performance depending on the underlying workload. With workloads becoming ever more complex, practitioners need to take difficult decisions for the performance tuning of memory allocation: which allocators to choose and how to tweak their knobs are legitimate questions.In this article, we take a deep look at memory allocators and propose Brug, an adaptive memory allocator that builds upon the strengths of all existing allocators and discards their weaknesses. Brug can help programmers choose the suitable allocator for their applications or even for individual data structures and functions within applications, allowing for different allocators within the same program. Brug also offers an auto-tuner to minimize developer decision-making.Brug comes in two flavors: (1) Rust-based library that can be added to modern Rust code bases, helping in allocation and re-allocation performance and diagnosis. (2) C-based library that can be dynamically linked at runtime for existing legacy programs to optimize their performance. Brug was deployed with industry standard-grade frameworks, such as Apache Arrow, Wasmtime WebAssembly virtual machine, and Redis. Our experiments show that Brug can improve performance in all types of applications and help developers toward taking otherwise difficult decisions. Brug consistently improves application execution time.

AB - Although memory allocation is well-studied, it is far from being a solved problem. There exist many allocators, each offering varied performance depending on the underlying workload. With workloads becoming ever more complex, practitioners need to take difficult decisions for the performance tuning of memory allocation: which allocators to choose and how to tweak their knobs are legitimate questions.In this article, we take a deep look at memory allocators and propose Brug, an adaptive memory allocator that builds upon the strengths of all existing allocators and discards their weaknesses. Brug can help programmers choose the suitable allocator for their applications or even for individual data structures and functions within applications, allowing for different allocators within the same program. Brug also offers an auto-tuner to minimize developer decision-making.Brug comes in two flavors: (1) Rust-based library that can be added to modern Rust code bases, helping in allocation and re-allocation performance and diagnosis. (2) C-based library that can be dynamically linked at runtime for existing legacy programs to optimize their performance. Brug was deployed with industry standard-grade frameworks, such as Apache Arrow, Wasmtime WebAssembly virtual machine, and Redis. Our experiments show that Brug can improve performance in all types of applications and help developers toward taking otherwise difficult decisions. Brug consistently improves application execution time.

UR - http://www.scopus.com/inward/record.url?scp=85207883585&partnerID=8YFLogxK

U2 - 10.1109/CCGrid59990.2024.00017

DO - 10.1109/CCGrid59990.2024.00017

M3 - Conference contribution

AN - SCOPUS:85207883585

SN - 979-8-3503-9567-9

T3 - IEEE International Symposium on Cluster, Cloud and Internet Computing

SP - 67

EP - 76

BT - Proceedings

PB - Institute of Electrical and Electronics Engineers Inc.

Y2 - 6 May 2024 through 9 May 2024

ER -

By the same author(s)