The Hoard Scalable Memory Allocator 3.5.1 review
DownloadThe Hoard Scalable Memory Allocator is a scalable memory allocator (malloc replacement) for multithreaded applications. The Hoard
|
|
The Hoard Scalable Memory Allocator is a scalable memory allocator (malloc replacement) for multithreaded applications.
The Hoard memory allocator is a fast, scalable, and memory-efficient memory allocator for shared-memory multiprocessors. It runs on a variety of platforms, including Linux, Solaris, and Windows.
Hoard is a drop-in replacement for malloc(), etc. No change to your source is necessary. Just link it in or set just one environment variable.
Hoard can dramatically improve the performance of multithreaded programs running on multiprocessors.
Multithreaded programs often do not scale because the heap is a bottleneck. When multiple threads simultaneously allocate or deallocate memory from the allocator, the allocator will serialize them.
Programs making intensive use of the allocator actually slow down as the number of processors increases. Your program may be allocation-intensive without you realizing it, for instance, if your program makes many calls to the C++ Standard Template Library (STL).
The allocator can cause other problems for multithreaded code. It can lead to false sharing in your application: threads on different CPUs can end up with memory in the same cache line, or chunk of memory. Accessing these falsely-shared cache lines is hundreds of times slower than accessing unshared cache lines.
Multithreaded programs can also lead the allocator to blowup memory consumption. This effect can multiply the amount of memory needed to run your application by the number of CPUs on your machine: four CPUs could mean that you need four times as much memory. Hoard is a fast allocator that solves all of these problems.
Usage:
LD_PRELOAD="/path/libhoard.so:/usr/lib/libdl.so"
What's New in This Release:
Eliminates a (rare) memory error.
The Hoard Scalable Memory Allocator 3.5.1 keywords