Distributed Computing and Systems Research Group
Distributed Computing and Systems Research Group

Research Project: Non-blocking Memory Allocator

Project description | Source code | Publications

Project description

NBmalloc is a lock-free memory allocator, aiming to enhance the parallelism in concurrent applications using dynamic memory. Its architecture is inspired by Hoard, a successful lock-based concurrent memory allocator, which helps avoiding false sharing and heap blowup and gives good scalability. The use of lock-free technology in a memory allocator serves three main purposes:

  • To enhance the scalability in concurrent systems with high contention, in particular when the number of running threads are larger than the number of processors.
  • To increase the tolerance to failures as the failure of one thread cannot block the progress of other threads.
  • To provide a general lock-free memory allocator for use with lock-free data structures and algorithms that use dynamic memory.

See also the group's related projects on NOBLE, a software library of lock-free shared data objects, WARPing, Lockless-Spark98 and Lockless-MiniSPLASH2.

More information will be added as this project progresses.

Top of Page


The source code of NBmalloc is developed under the GNU General Public License (GNU GPL).

NBmalloc is experimental software and comes WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The source code of our implementation can be downloaded below.

The current release is NBmalloc-0.6.0. Supported platforms and status:

  • Linux/i686. Compiles and runs. Tested on Debian GNU/Linux.
  • Solaris 9/SPARC. Compiles and runs for last tested version 0.4beta.
  • IRIX 6.5/MIPS. Compiles but the last tested version 0.4beta has some mmap related problem.


NBmalloc 0.6.0
Released 2008-09-20. Some significant bugs fixed.
NBmalloc 0.5.0
Released 2007-12-04. Several significant bugs fixed and some improvements to the build system.
NBmalloc 0.4beta
Released 2005-10-19. Improved documentation and several bug fixes. Now works correctly on Linux/IA32 too.
NBmalloc 0.3beta
Released 2005-04-12. First public release.
Name: [Required]
Email: [Optional]
Comments: [Optional]

NOTE: In its current state the implementation is highly experimental and is as such not suitable for production use.

More documentation is under construction. If you have questions or suggestions you are welcome to contact us (or me directly).

Top of Page


  • LFthreads: A lock-free thread library,
    Anders Gidenstam and Marina Papatriantafilou,
    Proceedings of the 11th International Conference On Principles Of Distributed Systems (OPODIS 2007), (To appear).

  • Efficient and Reliable Lock-Free Memory Reclamation Based on Reference Counting,
    Anders Gidenstam, Marina Papatriantafilou, Håkan Sundell and Philippas Tsigas,
    Proceedings of the 8th International Symposium on Parallel Architectures, Algorithms, and Networks (I-SPAN 2005), pages 202 - 207, IEEE Computer Society, 2005.

  • Allocating memory in a lock-free manner,
    Anders Gidenstam, Marina Papatriantafilou and Philippas Tsigas,
    Proceedings of the 13th Annual European Symposium on Algorithms (ESA 2005), Lecture Notes in Computer Science Vol. 3669, pages 329 - 242, Springer-Verlag, 2005.

  • Allocating memory in a lock-free manner,
    Anders Gidenstam, Marina Papatriantafilou and Philippas Tsigas,
    Technical Report 2004-04, Computing Science, Chalmers University of technology, 2004.

Top of Page

Home © Distributed Computing and Systems Research Group
Chalmers university of technology, Computing Science Department
Rännvägen 6B, S-412 96, Gothenburg, Sweden (map)
Phone: +46 (0)31-772 1000 (central), +46 (0)31-16 56 55