Towards Memory-Optimal Schedules for SDF
The Synchronous Data Flow (SDF) programming model is an established programming paradigm for stream processing applications. SDF programs are expressed by actors and streams that establish communication among actors. Streams are implemented as FIFO buffers, and the size of the FIFO buffers depends on the steady-state schedule. Finding a steady-state schedule that minimizes the sizes of FIFO buffers, is of great importance to minimize the memory consumption. The state-of-the-art provides ad-hoc heuristics only, so finding memory-optimal steady-state schedules is still an open challenge.
In this work, we study three objective functions capturing the memory utilization of three different implementations of the FIFO buffers. We show that one objective is NP-hard to optimize, while the other two can be solved optimally in polynomial time. The algorithm for computing these optimal schedules is implementable as an online algorithm. We show the effectiveness of our new algorithm comparing it with the state-of-the-art heuristics. Our experiments show that for large synthetic instances, our algorithm generates schedules that use up to 8 times less memory.
KeywordsSynchronous Data Flow (SDF) Scheduling Optimality FIFO-buffer
This project has been partially supported by the Australian Research Council Discovery Project DP1096445. We would like to thank our reviewers for the insightful feedback, and Yousun Ko for her help with the experiments.
- 1.Ahmad, W., de Groote, R., Hölzenspies, P.K.F., Stoelinga, M., van de Pol, J.: Resource-constrained optimal scheduling of synchronous dataflow graphs via timed automata. In: Proceedings of the 2014 14th International Conference on Application of Concurrency to System Design, ACSD 2014, pp. 72–81. IEEE Computer Society, Washington, DC (2014). https://doi.org/10.1109/ACSD.2014.13
- 2.Battacharya, S.S., Murthy, P.K., Lee, E.A.: Software Synthesis from Dataflow Graphs. Kluwer Academic Publishers, Norwell (1996)Google Scholar
- 4.Geilen, M., Basten, T., Stuijk, S.: Minimising buffer requirements of synchronous dataflow graphs with model checking. In: Proceedings of the 42nd Annual Design Automation Conference, DAC 2005, pp. 819–824. ACM, New York (2005). https://doi.org/10.1145/1065579.1065796
- 5.Kahn, G.: The semantics of simple language for parallel programming. In: IFIP Congress, pp. 471–475 (1974)Google Scholar
- 6.Ko, Y., Burgstaller, B., Scholz, B.: LaminarIR: compile-time queues for structured streams. In: Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2015, pp. 121–130. ACM, New York (2015). https://doi.org/10.1145/2737924.2737994
- 8.Wiggers, M.H., Bekooij, M.J.G., Smit, G.J.M.: Buffer capacity computation for throughput-constrained modal task graphs. ACM Trans. Embed. Comput. Syst. 10(2), 17:1–17:59 (2011). https://doi.org/10.1145/1880050.1880053
- 9.Wikipedia: Bézout’s identity (2016). https://en.wikipedia.org/wiki/Bzout%27s_identity. Accessed 12 Aug 2016