first abstract
This commit is contained in:
commit
c69c8f6305
1 changed files with 51 additions and 0 deletions
51
abstract
Normal file
51
abstract
Normal 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.
|
Loading…
Reference in a new issue