Hoard: A Scalable Memory Allocator for Multithread Applications

Computing & Wireless : Computing Methods

Available for non-exclusive licensing

Inventors

  • Emery Berger, Ph.D. , Computer Science
  • Kathryn McKinley, Ph.D. , Computer Science
  • Robert Blumofe , Akamai Technologies, Inc.

Background/unmet need

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.

Invention Description

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.

Benefits/Advantages

  • High performance
  • Scalable
  • Memory-efficient (low fragmentation)
  • Avoids false sharing
  • Provable bounds memory consumption
  • Low synchronization costs

Features

    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

Market potential/applications

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.

Development Stage

Commercial product

Web Links