Heterogeneous Active Messages (HAM) -- Implementing Lightweight Remote Procedure Calls in C++
Matthias Noack

TL;DR
HAM introduces a lightweight, C++-based active messaging system that facilitates efficient remote procedure calls across heterogeneous architectures, enabling low-overhead offloading in distributed systems.
Contribution
The paper presents HAM, a novel C++ implementation of active messages with heterogeneity support, address translation, and serialization, tailored for high-performance distributed heterogeneous environments.
Findings
Enables efficient RPC in heterogeneous systems
Supports accelerators like Xeon Phi and NEC SX-Aurora
Highlights C++ standard limitations in distributed contexts
Abstract
We present HAM (Heterogeneous Active Messages), a C++-only active messaging solution for heterogeneous distributed systems.Combined with a communication protocol, HAM can be used as a generic Remote Procedure Call (RPC) mechanism. It has been used in HAM-Offload to implement a low-overhead offloading framework for inter- and intra-node offloading between different architectures including accelerators like the Intel Xeon Phi x100 series and the NEC SX-Aurora TSUBASA Vector Engine. HAM uses template meta-programming to implicitly generate active message types and their corresponding handler functions. Heterogeneity is enabled by providing an efficient address translation mechanism between the individual handler code addresses of processes running different binaries on different architectures, as well a hooks to inject serialisation and deserialisation code on a per-type basis.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Distributed systems and fault tolerance
