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 条
  • [21] An Architecture for Safe and Efficient Multi-threaded Robot Software
    Kazanzides, Peter
    Deguet, Anton
    Kapoor, Ankur
    2008 IEEE INTERNATIONAL CONFERENCE ON TECHNOLOGIES FOR PRACTICAL ROBOT APPLICATIONS, 2008, : 89 - 93
  • [22] Load balancing for multi-threaded PDES of stochastic reaction-diffusion in neurons
    Lin, Zhongwei
    Tropper, Carl
    Yao, Yiping
    Mcdougal, Robert A.
    Patoary, Mohammand Nazrul Ishlam
    Lytton, William W.
    Hines, Michael L.
    JOURNAL OF SIMULATION, 2017, 11 (03) : 267 - 284
  • [23] Multi-threaded reachability
    Sahoo, D
    Jain, J
    Iyer, SK
    Dill, DL
    Emerson, EA
    42ND DESIGN AUTOMATION CONFERENCE, PROCEEDINGS 2005, 2005, : 467 - 470
  • [24] Multi-Threaded Parallel I/O for OpenMP Applications
    Kshitij Mehta
    Edgar Gabriel
    International Journal of Parallel Programming, 2015, 43 : 286 - 309
  • [25] Load balancing for network based multi-threaded applications
    Krone, O
    Raab, M
    Hirsbrunner, B
    RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 1998, 1497 : 206 - 214
  • [26] Multi-Threaded Actors
    Azadbakht, Keyvan
    de Boer, Frank S.
    Serbanescu, Vlad
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2016, (223): : 51 - 66
  • [27] AggrePlay: Efficient Record and Replay of Multi-threaded Programs
    Pobee, Ernest
    Chan, W. K.
    ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 567 - 577
  • [28] A scalable architecture for multi-threaded JAVA']JAVA applications
    Mrva, M
    Buchenrieder, K
    Kress, R
    DESIGN, AUTOMATION AND TEST IN EUROPE, PROCEEDINGS, 1998, : 868 - 874
  • [29] On multi-threaded paging
    Feuerstein, E
    de Loma, AS
    ALGORITHMS AND COMPUTATION, 1996, 1178 : 417 - 426
  • [30] Dynamic Cache Contention Detection in Multi-threaded Applications
    Zhao, Qin
    Koh, David
    Raza, Syed
    Bruening, Derek
    Wong, Weng-Fai
    Amarasinghe, Saman
    ACM SIGPLAN NOTICES, 2011, 46 (07) : 27 - 37