Nowadays, networked embedded systems are widely being used. These systems are consisted of multiple embedded devices connected through wired or wireless network to accomplish a mission, such as networked robots for rescue missions and surveillance systems. Networked embedded systems are driven by the tight coordination between computational components, sensors and the interaction with each other, more specifically, in cooperative distributed tasks that each device has to share its data with others to be processed. These devices have a limited computation and computation capacity, therefore, solely considering just the computation or just the communication in designing applications, may result in enormous communication or computation overhead. Therefore, computation-communication aware design is unavoidable in order to achieve a reliable and yet fast execution.
In the first part of the dissertation, we explore a methodology to decentralize an application among a team of cooperative agents (networked embedded systems). As a target application, we focused on Cooperative Localization, where there is a tightly coupled data dependency between agents. Cooperative localization (CL) is a popular method for localizing a team ofcommunicating robots in GPS-denied environments. In this iterative application, the data is generated locally on each agent. The data is then shared among all agents because the application output depends on the data generated by the whole team. After computing the location, the output has to be sent back to the agent. Fast and accurate localization is critical
because a delayed estimation will mislead navigation and other applications and may lead to a mission failure. Therefore, we first distribute the UKF based CL among robots, then we provide a replication technique to reduce the communication overhead, which improves the run-time of the algorithm. However, computation replication increases the computation
overhead on the agents. Therefore, we provide a method to choose between the replication amount that minimizes the overall CPU overhead considering a user defined application latency.
In some applications, because of limited computation capacity of embedded devices, the data has to be sent to a node with a higher computation capacity, such as a local server, edge, or cloud for processing acceleration. In addition, in some systems, agents are not willing to share their information with each other, other than a trusted node (e.g. edge). Edge computinghas been recently the focus of many research projects. In this part of the dissertation, we provide a methodology for agents that are coordinated with the edge to reduce the task wait time on the edge. In an edge with a time slotted scheme, task arrival time impacts the system’s performance. Since the on-device computation/network delay varies, the tasks might arrive after the allocated time on the edge, so they need to wait on the edge until the next time the accelerator becomes available for processing. In a cooperative system, the edge can guide the end device to shift its sampling time. This will ensure that the tasks arrive at the right moment to reduce the task wait time on the edge. Therefore, we proposed a method to find the end device sampling time adjustment during runtime to decrease the overall task wait time on the edge based on the arrival time distribution. However, the tasks arrive in a streaming mode and the entire arrival time distribution is unknown. In addition,
the distribution changes over time. Therefore, we also developed a method to predict the task arrival time, and enforce the adjustment delay during runtime using a feedback loop. The experimental result shows that by sending a limited number of commands to the end devices (Raspberry Pi boards), the wait time decreased by up to 74%.
In conclusion, during this dissertation, we illustrated how communication-computation co-optimization can improve the performance of networked embedded systems. We provided solutions for application decentralization while considering the communication-computation tradeoff. Furthermore, we show that the coordination between networked embedded systemsand the edge can improve the responsiveness despite the network noise by just utilizing task arrival time and a feedback loop.