Hoard: A Scalable Memory Allocator for Multithread Applications
Computing & Wireless : Computing Methods
Available for non-exclusive licensing
- Emery Berger, Ph.D. , Computer Science
- Kathryn McKinley, Ph.D. , Computer Science
- Robert Blumofe , Akamai Technologies, Inc.
For large parallel, multithreaded C and C++ applications such as web and database servers, the memory allocator is often a bottleneck that severely limits program performance and scalability on multiprocessor systems. Previous memory allocators have suffered from these problems in several forms, therefore severely effecting existing applications.
Hoard is a fast, highly scalable memory allocator software library that largely avoids false sharing and is memory-efficient. It is the first allocator to simultaneously solve both performance and scalability problems that develop from false sharing and memory consumption, which many allocators have in one form or another.
- High performance
- Memory-efficient (low fragmentation)
- Avoids false sharing
- Provable bounds memory consumption
- Low synchronization costs
Drop-in replacement for malloc (no need to change source code)Novel organization of a global heap and per-processor heapsSupported systems: Windows NT/2000/XPRedHat Linux 6.0 and aboveSolaris 7 and aboveIRIXAIX
Hoard is an appealing product for companies that build and deploy large server technologies, especially as the amount of web services and available data increases. Users of Hoard include AOL, Novell, British Telecom, Coyote Systems (for their BEMEngine product), and bCandid Corporation (for their Typhoon & Twister servers). Open source projects using Hoard include the Bayonne GNU telephony server and the GNU Common C++ system.