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