Summary
As
multi-devices technology has been developing drastically, sharing resources are
paramount and available in host and client devices. However, the ways of
sharing data between devices have disadvantages such as limited storage
coverage, complex programming efforts or huge inter-device network traffic.
Dynamix is a framework supporting efficient
cross-device resource sharing. First, Dynamix maximizes resource coverage by
integrating CPU, memory and I/O resources. Second, it mitigates efforts of
programming by move data sharing details from app layer to lower layer. Third, the
framework minimizes inter-device network traffic by dynamic task
redistribution.
Existing
sharing mechanisms support I/O request forwarding, but they support only I/O
resources for resource sharing, require carefully designed abstraction layers
to support single-device applications and can suffer from severe network
overheads.
Code
Offloading and Distributed Computation utilize remote computation resources (e.g.,
CPU, memory) by offloading performance-critical code regions to more powerful
devices. However, they support only computation resources for cross-device
sharing, which leaves I/O resources to be wasted. The migrated tasks should
eventually go back to the requesting device, which restricts the scope of
performance-critical task redistributions.
Distributed
Programming Platform is limited to computation resources for cross-device
sharing for resource coverage and leaves the burden of difficult multi-device
programming to application developers.
There
are three goals of Dynamix: High Resource Coverage, Single-device Application
Support and Resource-aware Task Redistribution.
To
do so, three key points of implementation proposed by authors are Resource
Integrator, Thread Migrator and a Master Daemon.
The
framework is evaluated on Google Nexus smartphones, an in-house Samsung Smart
TV and a photo classifier using TensorFlow library and gains impressive
results: e.g., Dynamix achieves 8.3-x higher throughput than RF (Request
Forwarding), while paying only 11% performance drop from the maximum throughput
for 1080p or 8.2 FPS to 24 FPS on the home theater.
Criticism
Comment
Dynamix should be evaluated using a
sufficient platform or testbed, not just on popular platforms.
Dynamix should consider the scenario
that we share resource with untrusted devices.
Question
Dynamix just cover a sub-field of
problem, what if we want to cover everything of device not just CPU, memory and
I/O? Maybe we need a more comprehensive platform.
Is master daemon keep tracking of
resource availability on all devices? What if it fails on a device to perform
operations? Any back-up solutions?