use of org.apache.sysml.hops.globalopt.gdfgraph.GDFGraph in project incubator-systemml by apache.
the class GlobalOptimizerWrapper method optimizeProgram.
public static Program optimizeProgram(DMLProgram prog, Program rtprog) throws DMLRuntimeException, HopsException, LopsException {
LOG.debug("Starting global data flow optimization.");
Timing time = new Timing(true);
//create optimizer instance
GlobalOptimizer optimizer = createGlobalOptimizer(OPTIM);
//create global data flow graph
Summary summary = new Summary();
GDFGraph graph = GraphBuilder.constructGlobalDataFlowGraph(rtprog, summary);
if (LOG.isDebugEnabled()) {
LOG.debug("EXPLAIN GDFGraph:\n" + Explain.explainGDFNodes(graph.getGraphRootNodes(), 1));
}
//core global data flow optimization
graph = optimizer.optimize(graph, summary);
//get the final runtime program
rtprog = graph.getRuntimeProgram();
//print global optimizer summary
LOG.info(summary);
LOG.debug("Finished global data flow optimization in " + time.stop() + " ms.");
return rtprog;
}