MulticoreInfo.com header image 2

Multicore Storage Allocation

November 6th, 2009 · No Comments




by Charles Leiserson
When multicore-enabling a C/C++ application, it’s common to discover that malloc() (or new) is a bottleneck that limits the speedup your parallelized application can obtain. This article explains the four basic problems that a good parallel storage allocator solves:

* Thread safety
* Overhead
* Contention
* Memory drift

Thread Safety

Basic storage allocators are not thread safe, although recent efforts have started to remedy this problem for many concurrency platforms. In other words, improper behavior due to races on the storage allocator’s internal data structures can result from two parallel threads attempting allocate or deallocate at the same time. When threads have unrestricted access to the storage allocator, as shown below, they may end up “stomping on each others’ toes,” leading to anomalous behavior.

Full Story

  • Share/Save/Bookmark

Tags: Research · Storage

Like what you're reading? Come back every day for multicore news, or subscribe to RSS updates.



Stumble It!