Revisiting actor programming in C plus

被引:32
作者
Charousset, Dominik [1 ]
Hiesgen, Raphael [1 ]
Schmidt, Thomas C. [1 ]
机构
[1] Univ Hamburg, Appl Sci Internet Technol Grp, Dept Informat, HAW Hamburg, Berliner Tor 7, D-20099 Hamburg, Germany
关键词
C plus plus Actor framework; Concurrent programming; Message-oriented middleware; Distributed software architecture; GPU computing; Performance analysis; PARALLELISM; SYSTEMS; !text type='JAVA']JAVA[!/text;
D O I
10.1016/j.cl.2016.01.002
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The actor model of computation has gained significant popularity over the last decade. Its high level of abstraction makes it appealing for concurrent applications in parallel and distributed systems. However, designing a real-world actor framework that subsumes full scalability, strong reliability, and high resource efficiency requires many conceptual and algorithmic additives to the original model. In this paper, we report on designing and building CAF, the C++ Actor Framework. CAF targets at providing a concurrent and distributed native environment for scaling up to very large, high-performance applications, and equally well down to small constrained systems. We present the key specifications and design concepts in particular a message transparent architecture, type-safe message interfaces, and pattern matching facilities that make native actors a viable approach for many robust, elastic, and highly distributed developments. We demonstrate the feasibility of CAF in three scenarios: first for elastic, upscaling environments, second for including heterogeneous hardware like GPUs, and third for distributed runtime systems. Extensive performance evaluations indicate ideal runtime at very low memory footprint for up to 64 CPU cores, or when offloading work to a GPU. In these tests, CAF continuously outperforms the competing actor environments Erlang, Charm++, SalsaLite, Scala, ActorFoundry, and even the raw message passing framework OpenMPI. (C) 2016 Elsevier Ltd. All rights reserved.
引用
收藏
页码:105 / 131
页数:27
相关论文
共 61 条
[1]  
Agarwal S, 2007, SPAA'07: PROCEEDINGS OF THE NINETEENTH ANNUAL SYMPOSIUM ON PARALLELISM IN ALGORITHMS AND ARCHITECTURES, P229
[2]  
AGHA G, 1992, LECT NOTES COMPUT SC, V630, P565
[3]   CONCURRENT OBJECT-ORIENTED PROGRAMMING [J].
AGHA, G .
COMMUNICATIONS OF THE ACM, 1990, 33 (09) :125-141
[4]  
Agha G, 1986, 844 MIT
[5]  
Alexandrescu A., DR DOBBS J
[6]  
Amdahl GM, 1967, P APR 18 20 1967 SPR, P483, DOI [DOI 10.1145/1465482.1465560, 10.1145/1465482.1465560]
[7]  
[Anonymous], 2012, P 2 EDITION PROGRAMM
[8]  
[Anonymous], 2002, ACM Transactions on Internet Technology, DOI [10.1145/514183.514185, DOI 10.1145/514183.514185]
[9]  
[Anonymous], 1996, Parallel Programming using C++
[10]  
[Anonymous], 2000, ACM 2000 C JAVA GRAN, DOI 10.1145/337449.337465