1. A method for efficient execution of analytic queries, comprising: collecting network flow information from switches within a cluster; receiving analytic queries with a programming model for processing and generating large data sets with a parallel, distributed process on the cluster with collaborative software-defined networking; and scheduling candidate tasks for a node when a node asks for tasks.