Efficient memory management for concurrent programs that use message passing

被引:2
|
作者
Sagonas, Konstantinos [1 ]
Wilhelmsson, Jesper [1 ]
机构
[1] Uppsala Univ, Dept Informat Technol, Uppsala, Sweden
关键词
incremental and real-time garbage collection; thread-local heaps; message analysis; concurrent languages; mutator utilization; erlang;
D O I
10.1016/j.scico.2006.02.006
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present an efficient memory management scheme for concurrent programming languages where communication occurs by using message passing with copying semantics. The runtime system is built around process-local heaps, which frees the memory manager from redundant synchronization in a multi-threaded implementation and allows the memory reclamation of process-local heaps to be a private business and to often take place without ever triggering garbage collection. The allocator is guided by a static analysis which speculatively allocates data possibly used as messages in a shared memory area. To respect the (soft) real-time requirements of the language, we develop and present in detail a generational, incremental garbage collection scheme tailored to the characteristics of this runtime system. The incremental collector imposes no overhead on the mutator, requires no costly barrier mechanisms, has a relatively small space overhead, and can be scheduled on the basis of either a time or a work quantum. We have implemented these schemes in the context of an industrial-strength implementation of a concurrent functional language used to develop large-scale, highly concurrent, telecommunication applications. Our measurements across a range of applications indicate that the incremental collector imposes only very small overhead on the total runtime and can achieve very short pause times (1 ms or less) while being able to sustain a high degree of mutator utilization. (c) 2006 Elsevier B.V. All rights reserved.
引用
收藏
页码:98 / 121
页数:24
相关论文
共 50 条
  • [21] Explicit message passing for concurrent clean
    Serrarens, PR
    Plasmeijer, R
    [J]. IMPLEMENTATION OF FUNCTIONAL LANGUAGES, 1999, 1595 : 229 - 245
  • [22] WHERE IS TIME SPENT IN MESSAGE-PASSING AND SHARED-MEMORY PROGRAMS
    CHANDRA, S
    LARUS, JR
    ROGERS, A
    [J]. SIGPLAN NOTICES, 1994, 29 (11): : 61 - 73
  • [23] Memory Approximate Message Passing
    Liu, Lei
    Huang, Shunqi
    Kurkoski, Brian M.
    [J]. 2021 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY (ISIT), 2021, : 1379 - 1384
  • [24] VERIFYING PROGRAMS THAT USE CAUSALLY-ORDERED MESSAGE-PASSING
    STOLLER, SD
    SCHNEIDER, FB
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 1995, 24 (02) : 105 - 128
  • [25] Efficient Message-Passing And Autonomic Management Architecture For NGNs
    Louca, Andreas
    Mauthe, Andreas
    Schaeffer-Filho, Alberto
    [J]. 2012 IEEE NETWORK OPERATIONS AND MANAGEMENT SYMPOSIUM (NOMS), 2012, : 1119 - 1126
  • [26] Efficient Shared Memory Message Passing for Inter-VM Communications
    Diakhate, Francois
    Perache, Marc
    Namyst, Raymond
    Jourdren, Herve
    [J]. EURO-PAR 2008 WORKSHOPS - PARALLEL PROCESSING, 2009, 5415 : 53 - +
  • [27] Analyzing nondeterminacy of message passing programs
    Xiong, JX
    Wang, DX
    [J]. SECOND INTERNATIONAL SYMPOSIUM ON PARALLEL ARCHITECTURES, ALGORITHMS, AND NETWORKS (I-SPAN '96), PROCEEDINGS, 1996, : 547 - 549
  • [28] Notes on nondeterminism in message passing programs
    Kranzlmüller, D
    Schulz, M
    [J]. RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, PROCEEDINGS, 2002, 2474 : 357 - 367
  • [29] VISUALIZATION OF MESSAGE PASSING PARALLEL PROGRAMS
    BEMMERL, T
    BRAUN, P
    [J]. LECTURE NOTES IN COMPUTER SCIENCE, 1992, 634 : 79 - 90
  • [30] THE DESIGN OF A STANDARD MESSAGE-PASSING INTERFACE FOR DISTRIBUTED-MEMORY CONCURRENT COMPUTERS
    WALKER, DW
    [J]. PARALLEL COMPUTING, 1994, 20 (04) : 657 - 673