Reducing the Impact of Intensive Dynamic Memory Allocations in Parallel Multi-Threaded Programs

被引:1
|
作者
Langr, Daniel [1 ]
Kocicka, Martin [1 ]
机构
[1] Czech Tech Univ, Fac Informat Technol, Dept Comp Syst, Thakurova 9, Prague 16000, Czech Republic
关键词
Dynamic memory allocation; memory pooling; multi-threading; parallel program; scalable heap implementation; shared memory; small buffer optimization;
D O I
10.1109/TPDS.2019.2960514
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Frequent dynamic memory allocations (DyMAs) can significantly hinder the scalability of parallel multi-threaded programs. As the number of threads grows, DyMAs can even become the main performance bottleneck. We introduce modern tools and methods for evaluating the impact of DyMAs and present techniques for its reduction, which include scalable heap implementations, small buffer optimization, and memory pooling. Additionally, we provide a survey of state-of-the-art implementations of these techniques and study them experimentally by using a benchmark program, server simulator software, and a real-world high-performance computing application. As a result, we show that relatively small modifications in parallel program's source code or a way of its execution may substantially reduce the runtime overhead associated with the use of dynamic data structures.
引用
收藏
页码:1152 / 1164
页数:13
相关论文
共 50 条
  • [1] Dynamic deadlock analysis of multi-threaded programs
    Bensalem, Saddek
    Havelund, Klaus
    HARDWARE AND SOFTWARE VERIFICATION AND TESTING, 2006, 3875 : 208 - 223
  • [2] Interactive visualization environment of multi-threaded parallel programs
    Stein, B
    de Kergommeaux, JC
    PARALLEL COMPUTING: FUNDAMENTALS, APPLICATIONS AND NEW DIRECTIONS, 1998, 12 : 311 - 318
  • [3] Analyzing the Impact of Change in Multi-threaded Programs
    Chatterjee, Krishnendu
    de Alfaro, Luca
    Raman, Vishwanath
    Sanchez, Cesar
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, PROCEEDINGS, 2010, 6013 : 293 - +
  • [4] A Dynamic Logic for deductive verification of multi-threaded programs
    Beckert, Bernhard
    Klebanov, Vladimir
    FORMAL ASPECTS OF COMPUTING, 2013, 25 (03) : 405 - 437
  • [5] Reducing energy cost of multi-threaded programs on NUMA architectures
    Fang H.
    Zhu L.
    Li X.
    Zhu, Liang (lemonsprite@qq.com), 2018, Totem Publishers Ltd (14) : 1201 - 1212
  • [6] Safe and Timely Dynamic Updates for Multi-threaded Programs
    Neamtiu, Iulian
    Hicks, Michael
    ACM SIGPLAN NOTICES, 2009, 44 (06) : 13 - 24
  • [7] Safe and Timely Dynamic Updates for Multi-threaded Programs
    Neamtiu, Iulian
    Hicks, Michael
    PLDI'09 PROCEEDINGS OF THE 2009 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2009, : 13 - 24
  • [8] Execution replay and debugging of distributed multi-threaded parallel programs
    de Kergommeaux, JC
    Ronsse, M
    De Bosschere, K
    COMPUTERS AND ARTIFICIAL INTELLIGENCE, 2000, 19 (06): : 511 - 526
  • [9] Parallel and Distributed Bounded Model Checking of Multi-threaded Programs
    Inverso, Omar
    Trubiani, Catia
    PROCEEDINGS OF THE 25TH ACM SIGPLAN SYMPOSIUM ON PRINCIPLES AND PRACTICE OF PARALLEL PROGRAMMING (PPOPP '20), 2020, : 202 - 216
  • [10] Security Check for Multi-threaded Programs
    Tri Minh Ngo
    Tuan Van Nguyen
    2016 IEEE SIXTH INTERNATIONAL CONFERENCE ON COMMUNICATIONS AND ELECTRONICS (ICCE), 2016, : 465 - 470