Posts

Showing posts from August, 2017

Deferred Execution Models

Image
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