Speaker
Description
This paper and talk investigate the application of real-time scheduling techniques and analysis to the GNU Radio scheduler. Real-time scheduling theory allows for analytical bounds to be derived for end-to-end signal-processing response times. However, the current scheduling infrastructure in GNU Radio is designed using heuristics aimed at improving observed or average performance, not analytical worst-case performance. We therefore apply small changes to the GNU Radio scheduling infrastructure and harness the Linux SCHED_DEADLINE real-time earliest-deadline-first scheduling algorithm to enable more predictable and analyzable real-time signal-processing performance.
Much work on real-time analysis assumes jobs with a fixed length, or worst-case execution time. But invocations of a GNU Radio block could process a dynamic number of samples, depending upon the queue size. We call this “intra-block batching,” and enable fixed-size batches, instead of variable-sized ones. We then can apply real-time scheduling theory to set parameters (execution time and deadline) for the Linux SCHED_DEADLINE scheduler. This allows for existing literature on real-time scheduling to applied more directly to GNU Radio. Furthermore, the scheduling algorithm implemented by SCHED_DEADLINE is optimal for some classes of soft real-time workloads, enabling high analytical platform utilization. We also have experimental results that show that larger batch sizes amortize overheads (e.g., compulsory cache misses, context switch overhead, etc.) over more samples.
These overheads can also be avoided by more carefully considering the interleaving of blocks. For example, if consecutive blocks in the flowgraph are executed sequentially on a common core, they may have cache affinity for outputs and subsequent inputs. If the two blocks could be merged into a single “super block”, a context switch can be avoided. We call this “inter-block batching.” We have developed optimization techniques based upon mixed integer linear programming to compute “super blocks” and minimize overheads through more efficient inter-block batching.
In our paper and talk, we will describe means of reducing overheads by exploiting both inter- and intra-block batching. We will also describe minor changes we made to GNU Radio to enable real-time scheduling analysis results to be put to work to take advantage of the Linux real-time scheduler SCHED_DEADLINE.
| Talk Length | 30 Minutes |
|---|---|
| Link to Open Source Code | https://vanderbilt365-my.sharepoint.com/:f:/g/personal/bryan_ward_vanderbilt_edu/Ep1_Gl0AJfNCuqbtdYRd7TgBZ-U5emVACv3IjDA-IyzVAQ?e=SKLfAC |