In this poster we describe a new intermediate graph representation for macro-dataflow programs, DFGR, which is capable of offering a high-level view of applications for easy programmability, while allowing the expression of complex applications using dataflow principles. DFGR makes it possible to write applications in a manner that is oblivious of the underlying parallel runtime, and can easily be targeted by both programming systems and domain experts. Coupled with a parallel runtime, DFGR offers good load balancing, performant and energy efficient execution on heterogeneous architectures. In addition, DFGR can use further optimizations in the form of graph transformations, enabling efficient task composition and assignment, for improved scalability.