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

08/01/2022
by   Wenbin Lu, et al.
0

In this paper, we present a framework for moving compute and data between processing elements in a distributed heterogeneous system. The implementation of the framework is based on the LLVM compiler toolchain combined with the UCX communication framework. The framework can generate binary machine code or LLVM bitcode for multiple CPU architectures and move the code to remote machines while dynamically optimizing and linking the code on the target platform. The remotely injected code can recursively propagate itself to other remote machines or generate new code. The goal of this paper is threefold: (a) to present an architecture and implementation of the framework that provides essential infrastructure to program a new class of disaggregated systems wherein heterogeneous programming elements such as compute nodes and data processing units (DPUs) are distributed across the system, (b) to demonstrate how the framework can be integrated with modern, high-level programming languages such as Julia, and (c) to demonstrate and evaluate a new class of eXtended Remote Direct Memory Access (X-RDMA) communication operations that are enabled by this framework. To evaluate the capabilities of the framework, we used a cluster with Fujitsu CPUs and heterogeneous cluster with Intel CPUs and BlueField-2 DPUs interconnected using high-performance RDMA fabric. We demonstrated an X-RDMA pointer chase application that outperforms an RDMA GET-based implementation by 70 require function predeployment on remote platforms.

READ FULL TEXT
research
04/27/2018

Tiramisu: A Code Optimization Framework for High Performance Systems

This paper introduces Tiramisu, an optimization framework designed to ge...
research
06/24/2019

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

We present HAM (Heterogeneous Active Messages), a C++-only active messag...
research
10/12/2021

UCX Programming Interface for Remote Function Injection and Invocation

Network library APIs have historically been developed with the emphasis ...
research
05/21/2022

Experiences with task-based programming using cluster nodes as OpenMP devices

Programming a distributed system, such as a cluster, requires extended u...
research
06/07/2023

The Noir Dataflow Platform: Efficient Data Processing without Complexity

Today, data analysis drives the decision-making process in virtually eve...
research
08/04/2021

Two-Chains: High Performance Framework for Function Injection and Execution

Some important problems, such as semantic graph analysis, require large-...
research
11/02/2022

Design and implementation of a Framework for remote experiments in education

Remote Controlled laboratories is a teaching and learning tool that incr...

Please sign up or login with your details

Forgot password? Click here to reset