ActorX10: an actor library for X10

The APGAS programming model is a powerful computing paradigm for multi-core and massively parallel computer architectures. It allows for the dynamic creation and distribution of thousands of threads amongst hundreds of nodes in a cluster computer within a single application. For programs of such a complexity, appropriate higher level abstractions on computation and communication are necessary for performance analysis and optimization. In this work, we present actorX10, an X10 library of a formally specified actor model based on the APGAS principles. The realized actor model explicitly exposes communication paths and decouples these from the control flow of the concurrently executed application components. Our approach provides the right abstraction for a wide range of applications. Its capabilities and advantages are introduced and demonstrated for two applications from the embedded system and HPC domain, i.e., an object detection chain and a proxy application for the simulation of tsunami events.

[1]  Michael Bader,et al.  SWE-X10: an actor-based and locally coordinated solver for the shallow water equations , 2016, X10@PLDI.

[2]  Jürgen Teich,et al.  FunState-an internal design representation for codesign , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

[3]  Michael Bader,et al.  Teaching Parallel Programming Models on a Shallow-Water Code , 2012, 2012 11th International Symposium on Parallel and Distributed Computing.

[4]  Michael Glaß,et al.  DAARM: Design-time application analysis and run-time mapping for predictable execution in many-core systems , 2014, 2014 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[5]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[6]  Calvin Lin,et al.  Actor Oriented Programming in Chapel , 2010 .

[7]  Vivek Sarkar,et al.  Integrating task parallelism with actors , 2012, OOPSLA '12.

[8]  Hong Tan,et al.  StreamX10: a stream programming framework on X10 , 2012, X10 '12.

[9]  Carl Hewitt,et al.  A Universal Modular ACTOR Formalism for Artificial Intelligence , 1973, IJCAI.

[10]  Jürgen Teich,et al.  Resource-aware programming and simulation of MPSoC architectures through extension of X10 , 2011, SCOPES.

[11]  Jürgen Teich,et al.  Towards Actor-oriented Programming on PGAS-based Multicore Architectures , 2014, ARCS Workshops.