Work done by North Carolina State University (NCSU) will now allow normal serial software (applications that utilize only a single thread for their operations, by processing operations in a strict sequential order) to achieve parallel processing capabilities that were previously considered impossible without complete rewriting of the each individual program's code. This can now be done automatically by a new memory management library, and the group at NCSU has reported performance improvements of about 20%, utilising multi-core architecture in a better way.
The method is not especially unique, with normal “garbage collecting memory allocators” working in a similar way. NCSU’s method is focussed on the part of a computer’s memory management that is responsible for memory allocation and deallocation. Normally, a processor spends a large fraction of its time performing these allocator-based tasks, but if the memory management is directed in a certain way, it can utilize more than one core of the processor to do this. Since programs do not need the results of memory deallocation to carry out their operations, the new memory management technique can perform this memory deallocation in the background on another processor core, hence saving the time the program wastes while waiting for the task to be completed.
NCSU’s memory management technique also gives some safety benefits, as additional verification which was very time-consuming can now occur in the background, quickly ensuring that the same block memory is not being deallocated more than once.
This new technique differs from the technique used by garbage collecting memory allocators because it explicitly directs which memory block to deallocate, instead of the process being automatic. This makes it easier to integrate NCSU’s technique into existing serial programs, without requiring any change in their code. The memory management technique can be “integrated into existing libraries and operating systems” easily, simply requiring an update for memory management libraries. NCSU refers to this "accelerating dynamic memory management on multicore architecture by offloading dynamic management functions to a separate thread" as "memory management thread (MMT)". Check out NCSU’s site for more information.
Image courtesy: amd.com