In summary, static graphs are easy to optimize but lack the expressivity found in higher-level languages; dynamic graphs provide this missing expressivity but introduce new compilation and execution challenges, especially on heterogeneous hardware and FPGAs.
Roesch, Jared, Steven Lyubomirsky, Logan Weber, Josh Pollock, Marisa Kirisame, Tianqi Chen, and Zachary Tatlock. "Relay: a new IR for machine learning frameworks." In Proceedings of the 2nd ACM SIGPLAN International Workshop on Machine Learning and Programming Languages, pp. 58-68. ACM, 2018.
My question is
Why are static graphs easier to optimize than dynamic graphs?
Why are static graphs less expressive than dynamic graphs?
What compilation and execution challenge dynamic graphs face? How about static graphs? What causes these problems for dynamic graphs?
If such a question is not suitable to be asked here, please redirect me to another stack. Thanks!