first abstract

This commit is contained in:
Michael Sippel 2025-01-25 14:40:49 +01:00
commit c69c8f6305
Signed by: senvas
GPG key ID: 060F22F65102F95C

51
abstract Normal file
View file

@ -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.