2019•Apress eBooksOpen access

Scalable Memory Allocation

Michael Voss, Rafael Asenjo, James R. Reinders

Open full text 0 citations

Abstract

This section discusses a critical part of any parallel program: scalable memory allocation, which includes use of new as well as explicit calls to malloc , calloc , and so on. Scalable memory allocation can be used regardless of whether we use any other part of Intel Threading Building Blocks (TBB). In addition to interfaces to use directly, TBB offers a “proxy” method to automatically replace C/C++ functions for dynamic memory allocation, which is an easy, effective, and popular way to get a performance boost without any code changes. This is important and works regardless of how “modern” you are in your usage of C++, specifically whether you use the modern and encouraged std::make_shared , or the now discouraged new and malloc . The performance benefits of using a scalable memory allocator are significant because they directly address issues that would otherwise limit scaling and risk false sharing. TBB was among the first widely used scalable memory allocators, in no small part because it came free with TBB to help highlight the importance of including memory allocation considerations in any parallel program. It remains extremely popular today and is one of the best scalable memory allocators available.

Open-access reader

About this research paper

What this paper is about

This section discusses a critical part of any parallel program: scalable memory allocation, which includes use of new as well as explicit calls to malloc , calloc , and so on. Scalable memory allocation can be used regardless of whether we use any other part of Intel Threading Building Blocks (TBB). In addition to interfaces to use directly, TBB offers a “proxy” method to automatically replace C/C++ functions for dynamic memory allocation, which is an easy, effective, and popular way to get a performance boost without any code changes. This is important and works regardless of how “modern” you are in your usage of C++, specifically whether you use the modern and encouraged std::make_shared , or the now discouraged new and malloc . The performance benefits of using a scalable memory allocator are significant because they directly address issues that would otherwise limit scaling and risk false sharing. TBB was among the first widely used scalable memory allocators, in no small part because it came free with TBB to help highlight the importance of including memory allocation considerations in any parallel program. It remains extremely popular today and is one of the best scalable memory allocators available.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

This section discusses a critical part of any parallel program: scalable memory allocation, which includes use of new as well as explicit calls to malloc , calloc , and so on. Scalable memory allocation can be used regardless of whether we use any other part of Intel Threading Building Blocks (TBB). In addition to interfaces to use directly, TBB offers a “proxy” method to automatically replace C/C++ functions for dynamic memory allocation, which is an easy, effective, and popular way to get a performance boost without any code changes. This is important and works regardless of how “modern” you are in your usage of C++, specifically whether you use the modern and encouraged std::make_shared , or the now discouraged new and malloc . The performance benefits of using a scalable memory allocator are significant because they directly address issues that would otherwise limit scaling and risk false sharing. TBB was among the first widely used scalable memory allocators, in no small part because it came free with TBB to help highlight the importance of including memory allocation considerations in any parallel program. It remains extremely popular today and is one of the best scalable memory allocators available.

Key concepts: Allocator, C dynamic memory allocation, Computer science, Scalability, Shared memory, Memory management, Parallel computing, Computer architecture

Related papers

Back to paper searchBrowse research topicsOriginal source
Scalable Memory Allocation — Research Paper | ScholarLens