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 条
  • [31] An Offline Demand Estimation Method for Multi-Threaded Applications
    Perez, Juan F.
    Pacheco-Sanchez, Sergio
    Casale, Giuliano
    2013 IEEE 21ST INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS & SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS 2013), 2013, : 21 - +
  • [32] Workshop on multi-threaded architectures and applications-MTAAP
    Derose, Luiz, 1600, IEEE Computer Society
  • [33] Bandwidth based performance optimization of Multi-threaded applications
    Manakkadu, Sheheeda
    Dutta, Sourav
    2014 SIXTH INTERNATIONAL SYMPOSIUM ON PARALLEL ARCHITECTURES, ALGORITHMS AND PROGRAMMING (PAAP), 2014, : 118 - 122
  • [34] Performance Evaluation of Virtualization Tools in Multi-Threaded Applications
    Sabolski, Ivan
    Leventic, Hrvoje
    Galic, Irena
    INTERNATIONAL JOURNAL OF ELECTRICAL AND COMPUTER ENGINEERING SYSTEMS, 2014, 5 (02) : 57 - 62
  • [35] Decoupling contention with VRB mechanism for multi-threaded applications
    Gao, Ke
    Fan, Dongrui
    Liu, Zhiyong
    Jisuanji Yanjiu yu Fazhan/Computer Research and Development, 2015, 52 (11): : 2577 - 2588
  • [36] Multi-Threaded Parallel I/O for OpenMP Applications
    Mehta, Kshitij
    Gabriel, Edgar
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2015, 43 (02) : 286 - 309
  • [37] Multi-threaded design for a software distributed shared memory system
    Ueng, JC
    Shieh, CK
    Mac, SC
    Lai, AC
    Liang, TY
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 1999, E82D (12) : 1512 - 1523
  • [38] A predictable multi-threaded main-memory storage manager
    Song Guang-hua
    Yang Chang-sheng
    Shi Jiao-ying
    Journal of Zhejiang University-SCIENCE A, 2001, 2 (4): : 416 - 420
  • [39] A PREDICTABLE MULTI-THREADED MAIN-MEMORY STORAGE MANAGER
    宋广华
    杨长生
    石教英
    Journal of Zhejiang University Science, 2001, (04) : 57 - 61
  • [40] SAC - A functional array language for efficient multi-threaded execution
    Grelck, Clemens
    Scholz, Sven-Bodo
    INTERNATIONAL JOURNAL OF PARALLEL PROGRAMMING, 2006, 34 (04) : 383 - 427