Heterogeneous Active Messages (HAM) – Implementing Lightweight Remote Procedure Calls in C++

06/24/2019
by   Matthias Noack, et al.
0

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. Implementing such a solution in modern C++ sheds some light on the shortcomings and grey areas of the C++ standard when it comes to distributed and heterogeneous environments.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/01/2022

Bring the BitCODE – Moving Compute and Data in Distributed Heterogeneous Systems

In this paper, we present a framework for moving compute and data betwee...
research
03/05/2023

Runtime Support for Performance Portability on Heterogeneous Distributed Platforms

Hardware heterogeneity is here to stay for high-performance computing. L...
research
10/16/2021

Challenges Porting a C++ Template-Metaprogramming Abstraction Layer to Directive-based Offloading

HPC systems employ a growing variety of compute accelerators with differ...
research
05/18/2020

HaoCL: Harnessing Large-scale Heterogeneous Processors Made Easy

The pervasive adoption of Deep Learning (DL) and Graph Processing (GP) m...
research
09/22/2020

TaskTorrent: a Lightweight Distributed Task-Based Runtime System in C++

We present TaskTorrent, a lightweight distributed task-based runtime in ...
research
08/20/2020

Long-Lived LoRa: Prolonging the Lifetime of a LoRa Network

Prolonging the network lifetime is a major consideration in many Interne...
research
12/02/2021

Simplifying heterogeneous migration between x86 and ARM machines

Heterogeneous computing is the strategy of deploying multiple types of p...

Please sign up or login with your details

Forgot password? Click here to reset