A Scalable Actor-based Programming System for PGAS Runtimes

07/12/2021
by   Sri Raj Paul, et al.
0

PGAS runtimes are well suited to irregular applications due to their support for short, one-sided messages. However, there are two major sources of overhead in PGAS runtimes that prevent them from achieving acceptable performance on large scale parallel systems. First, despite the availability of APIs that support non-blocking operations for important special cases, many PGAS operations on remote locations are synchronous by default, which can lead to long-latency stalls. Second, efficient inter-node communication requires careful aggregation and management of short messages. Experiments has shown that the performance of PGAS programs can be improved by more than 20× through the use of specialized lower-level libraries, such as Conveyors, but with a significant impact on programming productivity. The actor model has been gaining popularity in many modern programming languages such as Scala or Rust and also within the cloud computing community. In this paper, we introduce a new programming system for PGAS runtimes, in which all remote operations are asynchronous by default through the use of an actor-based programming system. In this approach, the programmer does not need to worry about complexities related to message aggregation and termination detection. Thus, our approach offers a desirable point in the productivity-performance spectrum, with scalable performance that approaches that of lower-level aggregation libraries but with higher productivity.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset