top of page

Analyzing Parallel Memory Allocators

Aditya Mathur . Nupur Kulkarni

Proposal

The project aims at implementing and analyzing solutions for parallel memory allocation. We plan to implement a lock free memory allocator and analyze and compare its results with existing multi-threaded memory allocators like tcmalloc, hoard, glib malloc etc.

About the event
Anchor 1

Background

Dynamic memory allocation in a parallel work environment relies on mutual exclusion locks in order to provide and protect consistency across shared data structures. Nevertheless, using locks and mutual exclusion techniques reduces performance and impacts program flexibility. A lock-free memory allocator guarantees progress regardless of whether some threads are delayed or even killed and regardless of scheduling policies.Some of the dynamic memory allocators we plan to analyze are:

  1. tcmalloc: Thread Caching Malloc - TCMalloc assigns each thread a thread-local cache. Small allocations are satisfied from the thread-local cache. Objects are moved from central data structures into a thread-local cache as needed, and periodic garbage collections are used to migrate memory back from a thread-local cache into the central data structures.

  2. Hoard: Hoard is a drop-in replacement for malloc that can dramatically improve application performance, especially for multithreaded programs running on multiprocessors and multicore CPUs.

Challenges

The major challenge lies in implementing the lock free dynamic memory allocator. Understanding and implementing a high performance parallel memory allocator and provide consistency across shared data structures without using mutual exclusion locks on data structures is a concern.
We also envision addressing false sharing issues and offering lowest contention free latency solution in comparison with the already existing solution.

Connectwork

Goals and Deliverables

  • ​Imunity to deadlock

  • Async-signal-safety

  • Tolerance to priority inversion

  • Kill-tolerant availability

  • Preemption-tolerance

  • Better performance compared to the existing parallel solutions

Anchor 2

Schedule

Organizers
Past Events

Resources

OS: Linux operating system.
We plan on building our solution on top the previously written malloc assignment for 15-213 and will refer to the following paper

bottom of page