Spinal Code: Automatic Code Extraction for Near-User Computation in Fogs [abstract] (ACM DL, PDF)
Bongjun Kim, Seonyeong Heo, Gyeongmin Lee, Seungbin Song, Jong Kim, and Hanjun Kim
Proceedings of the 28th International Conference on
Compiler Construction (CC), February 2019.
In the Internet of Things (IoT) environments, cloud servers
integrate various IoT devices including sensors and actuators, and
provide new services that assist daily lives of users interacting
with the physical world. While response time is a crucial factor
of quality of the services, supporting short response time is
challenging for the cloud servers due to a growing number and
amount of connected devices and their communication. To reduce
the burden of the cloud servers, fog computing is a promising
alternative to offload computation and communication overheads
from the cloud servers to fog nodes. However, since existing fog
computing frameworks do not extract codes for fog nodes fully
automatically, programmers should manually write and analyze their
applications for fog computing. This work proposes Spinal Code, a new
compiler-runtime framework for near-user computation that
automatically partitions an original cloud-centric program into
distributed sub-programs running over the cloud and fog nodes.
Moreover, to reduce response time in the physical world, Spinal Code
allows programmers to annotate latency sensitive actuators in a
program, and optimizes the critical paths from required sensors to
the actuators when it generates the sub-programs. This work
implements 9 IoT programs across 4 service domains: healthcare,
smart home, smart building and smart factory, and demonstrates
that Spinal Code successfully reduces 44.3% of response time and
79.9% of communication on the cloud compared with a
cloud-centric model.