Deferred Execution Models
As a Google Intern at Hyderabad, I got introduced to a couple of really cool libraries ( TensorFlow and FlumeJava ) that use the so called Deferred Execution Model . I found some very interesting similarities between the two libraries and in this blog post, I'll seek to discuss on how deferred execution works by taking instances from the two libraries. I'll also discuss the pros and cons of Deferred Execution . What is Deferred Execution ? The term Defer simply means to postpone. This is exactly what happens in Deferred Execution too. Every variable or operation is just deferred on a dependency graph . The dependency graph is a directed acyclic graph. Each node in the graph represents either a variable or an operation. Each edge in the graph represents the dependency of a variable or an operation on another. This dependency graph can be executed starting from any node that you specify. Execution happens in such a way that, all dependency nodes (the nodes