An efficient multi-threaded memory allocator for PDES applications

被引:4
|
作者
Li, Tianlin [1 ]
Yao, Yiping [1 ]
Tang, Wenjie [1 ]
Zhu, Feng [1 ]
Lin, Zhongwei [1 ]
机构
[1] Natl Univ Def Technol, Changsha, Peoples R China
基金
中国国家自然科学基金;
关键词
Multi-threaded; Memory allocator; PDES; DISCRETE-EVENT SIMULATION;
D O I
10.1016/j.simpat.2020.102067
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Parallel Discrete Event Simulation (PDES) aims at providing high performance solutions for simulation with large and complex models. Like traditional multi-threaded applications, PDES applications are also confronted with large overhead produced by memory allocation. Especially, complex models and frequent inter-thread communications in PDES applications will lead to large amounts of memory allocation and deallocation requests. Inter-thread communications are implemented by sending and receiving events based on shared memory. Hence, an efficient memory allocator has great impact on the performance of such applications. Current well-known allocators are dedicated to be scalable and lock-free. However, they ignore the difference between thread local and shared memory and manage them in the same way, which cannot make good use of their own characteristics. To solve this problem, this paper proposes a high efficient multi-threaded memory allocator named HMalloc, which innovatively separates thread local memory from shared memory. Thus, local memory allocation and deallocation will not lead to false sharing and lock contention. Moreover, coalescence free is applied to free local memory blocks. Furthermore, a flag-based shared memory management method is proposed to achieve lock-free shared memory allocation and deallocation. Experimental results show that HMalloc can achieve significant performance improvement in both traditional memory allocation benchmarks and typical PDES benchmarks when compared with existing well-known memory allocators.
引用
收藏
页数:19
相关论文
共 50 条
  • [41] NAS integer sort on multi-threaded shared memory machines
    Grün, T
    Hillebrand, MA
    EURO-PAR '98 PARALLEL PROCESSING, 1998, 1470 : 999 - 1009
  • [42] Scratch pad-Memory Management for Multi-Threaded Applications on Many-Core Architectures
    Venkataramani, Vanchinathan
    Chan, Mun Choon
    Mitra, Tulika
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2019, 18 (01)
  • [43] SAC—A Functional Array Language for Efficient Multi-threaded Execution
    Clemens Grelck
    Sven-Bodo Scholz
    International Journal of Parallel Programming, 2006, 34 : 383 - 427
  • [44] SniP: An Efficient Stack Tracing Framework for Multi-threaded Programs
    Arun, K. P.
    Kumar, Saurabh
    Mishra, Debadatta
    Panda, Biswabandan
    2022 MINING SOFTWARE REPOSITORIES CONFERENCE (MSR 2022), 2022, : 408 - 412
  • [45] Efficient Predictive Analysis for Detecting Nondeterminism in Multi-Threaded Programs
    Sinha, Arnab
    Malik, Sharad
    Gupta, Aarti
    PROCEEDINGS OF THE 12TH CONFERENCE ON FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD 2012), 2012, : 6 - 15
  • [46] Performance and energy metrics for multi-threaded applications on DVFS processors
    Rauber, Thomas
    Ruenger, Gudula
    Stachowski, Matthias
    SUSTAINABLE COMPUTING-INFORMATICS & SYSTEMS, 2018, 17 : 55 - 68
  • [47] Automatic and efficient false sharing avoider for multi-threaded programs
    Zheng, Dongying
    ICIC Express Letters, Part B: Applications, 2016, 7 (11): : 2405 - 2410
  • [48] EASY: Efficient Arbiter SYnthesis from Multi-threaded Code
    Cheng, Jianyi
    Fleming, Shane T.
    Chen, Yu Ting
    Anderson, Jason H.
    Constantinides, George A.
    PROCEEDINGS OF THE 2019 ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS (FPGA'19), 2019, : 142 - 151
  • [49] A scalability prediction approach for multi-threaded applications on manycore processors
    Bai, Xiuxiu
    Wang, Endong
    Dong, Xiaoshe
    Zhang, Xingjun
    JOURNAL OF SUPERCOMPUTING, 2015, 71 (11): : 4072 - 4094
  • [50] Fault Detection in Multi-Threaded C++ Server Applications
    Muehlenfeld, Arndt
    Wotawa, Franz
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2007, 174 (09) : 5 - 22