Modeling, analysis, and simulation of communication software execution on multicore devices
Øystein Dale · NORA - Norwegian Open Research Archives · 2016
The effects of software execution are typically not accounted for when performing experiments in network simulators. This leads to discrepancies between the results observed in simulation experiments and the effects that can be observed in real networks. A methodology to model communication software execution exists, with an extension for the ns-3 network simulator to model the effects of software execution in network simulations. However, this approach has only been considered for singlecore devices. In this thesis the methodology, including the tools and the implementation of the singlecore processing model for ns-3, is extended to enable modeling, analysis, and simulation of multicore devices. Extending the methodology and the implementation of the processing model requires extensive knowledge about multicore execution. This topic is investigated using the Linux kernel as an example, including how the kernel supports symmetric multiprocessing and how networked packets are handled by the kernel. The existing methodology is presented, along with the design changes required to facilitate modeling, analysis, and simulation of multicore devices. The applicability of the extended methodology is demonstrated by modeling the execution of communication software on a Galaxy Nexus, an Android-based multicore smartphone. The network driver on this device is analyzed and the methodology is applied to model the driver. Software execution is simulated using a processing model for ns-3 that is extended to account for multicore execution. The result of a simulation experiment is compared against measurements taken on the smartphone under similar conditions in a real network. The results show that the methodology can be applied to capture and simulate behaviors that can be observed on the real device. Further, experiments that reveal how multicore software execution affects network performance are done. These show that thread migration does not significantly impact the latency a packet experiences on devices with small caches, that reducing the amount of queuing in the kernel greatly reduces the latency experienced by a packet, and that small changes to the behavior of software can have a significant impact on network performance.