Skip to Main Content
 

Global Search Box

 
 
 
 

ETD Abstract Container

Abstract Header

Threaded Dynamic Memory Management in Many-Core Processors

Herrmann, Edward C.

Abstract Details

2010, MS, University of Cincinnati, Engineering : Computer Engineering.

In recent years the number of simultaneous threads supported by desktop processors has increased dramatically. As the number of cores in processors continue to increase, it may prove difficult for modern software to fully exploit the amount of parallelism these processors can provide. It is essential that these extra cores are utilized to the fullest extent. To address this issue, this thesis explores the construction of a new dynamic memory library that transparently forks a new thread to service dynamic memory calls in standard applications. The goal is to offload a majority of the processing involved in malloc and free calls to a separate thread that runs on a different core than the main application thread. By placing the new memory management library in the dynamic link path ahead of the standard memory management library, the system will utilize the new dynamic memory management library in (dynamically linked) programs without requiring recompilation of the application source code.

The implementation of the threaded memory management library evolved through three different approaches that successively improved performance and reduced shared memory access costs. In the final (lock-free) implementation, profiling shows a 50% reduction in average instructions executed for the malloc and free calls of the main application thread. However, atomic instruction costs and cache effects negatively affect the runtime savings. Thus, instead of achieving a 50% reduction in dynamic memory costs, the threaded memory management library currently provides only a 25% reduction in dynamic memory costs. Experimental results with running programs show total runtime performance speedups of 2-3% in the memory-intensive SPEC CPU2006 benchmarks and speedups of 3-4% when compiling the SPEC tests using the gcc and llvm compilers. Of course, the speedups achieved are directly related to the total memory management costs of the application programs. In the above cases, the total dynamic memory costs are just over 10% of the total runtime. Applications with higher dynamic memory costs will show higher total performance improvements.

The performance of threaded programs with shared data structures can be strongly impacted by hardware implementations and operating system core scheduling policies. Therefore, a final set of experiments with different hardware platforms and operating systems was performed. In particular, the threaded memory management library was tested on AMD64 X2, Intel Core 2 Duo, and Intel Core i7 hardware and also with the Linux and Solaris operating systems. The hardware impacts were dramatic with only the i7 delivering consistent performance improvements. While not as consistent as the hardware results, the operating system results generally show better performance with Solaris over Linux.

Philip Wilsey, PhD (Committee Chair)
Fred Annexstein, PhD (Committee Member)
Fred Beyette, PhD (Committee Member)
110 p.

Recommended Citations

Citations

  • Herrmann, E. C. (2010). Threaded Dynamic Memory Management in Many-Core Processors [Master's thesis, University of Cincinnati]. OhioLINK Electronic Theses and Dissertations Center. http://rave.ohiolink.edu/etdc/view?acc_num=ucin1277132326

    APA Style (7th edition)

  • Herrmann, Edward. Threaded Dynamic Memory Management in Many-Core Processors. 2010. University of Cincinnati, Master's thesis. OhioLINK Electronic Theses and Dissertations Center, http://rave.ohiolink.edu/etdc/view?acc_num=ucin1277132326.

    MLA Style (8th edition)

  • Herrmann, Edward. "Threaded Dynamic Memory Management in Many-Core Processors." Master's thesis, University of Cincinnati, 2010. http://rave.ohiolink.edu/etdc/view?acc_num=ucin1277132326

    Chicago Manual of Style (17th edition)