From c69c8f6305383e3d14dad1e9be7d8fede24cc5de Mon Sep 17 00:00:00 2001 From: Michael Sippel Date: Sat, 25 Jan 2025 14:40:49 +0100 Subject: [PATCH] first abstract --- abstract | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 abstract diff --git a/abstract b/abstract new file mode 100644 index 0000000..f0de820 --- /dev/null +++ b/abstract @@ -0,0 +1,51 @@ + + Dynamically Transforming Ladder-Typed Data for Efficient IPC + + +Inter-process communication (IPC) in distributed software systems +requires marshaling, i.e. methods to encode/decode data for +transmission. Traditional approaches rely on fixed wire formats, +which may lead to unnecessary transformations and suboptimal balancing +of transformation work, particularly under varying network setups and +hardware constraints. + +We propose a system that is able to optimize marshaling on a +per-connection basis, such that firstly overall transformation +overhead is minimized and secondly the required transformation work is +balanced among the nodes to improve overall system performance. This +will be achieved by choosing a wire-format adapted to a specific +connection and the context of the application. In general, by +selection of a wire-format, there is a trade-off between message size +and encoding overhead, allowing to optimize different objectives such +as energy efficiency, latency and throughput based on the interplay of +CPU and network speeds. For example in the case that the sender and +receiver run on compatible CPU-architectures, the encoding and +decoding of primitive values could be eliminated, provided the network +is fast enough (preserving endianness, padding, etc). Further, +resource-constrained microcontrollers (MCUs) may be unable to support +frameworks like Protobuf due to their memory requirements. Our system +allows to move all required transformations away from the MCU to a +server with more capacity by setting the wire format such that the MCU +can send directly in its native format without additional encoding. + +The system starts with a description of the desired internal data +formats on both ends of the communication channel, given by +ladder-types. Using a platform-wide library of morphisms (functions +that transform between representations), a directed graph is induced +whose vertices are ladder-types and its edges morphisms. Given this so +called morphism-graph, the "ladder-typed data morphing compiler" +(ldmc) is able to generate code for complex morphisms by compiling +together multiple morphism definitions from the library: Finding a +function to perform a data transformation between two ladder-types +amounts to finding a path in the morphism-graph, whose edges can be +annotated by (multi-dimensional) weights to optimize the path for an +application specific goal. Further, a runtime library shall handle +the setup of a communication channel, which includes the negotiation +of a wire-format and the subsequent linking of marshaling code +generated by ldmc. + +The proposed system is demonstrated on an example application of data +collection and analysis from a smart sensor network. Using metrics +like required code size and runtime overhead for encoding/decoding, +message size and transmission latency, we compare our system against +state-of-the-art marshaling solutions.