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
Availability
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.
Releases
- 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.
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
Publications
-
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
|