Search in sources :

Example 1 with GDFGraph

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;
}
Also used : GDFGraph(org.apache.sysml.hops.globalopt.gdfgraph.GDFGraph) Timing(org.apache.sysml.runtime.controlprogram.parfor.stat.Timing)

Aggregations

GDFGraph (org.apache.sysml.hops.globalopt.gdfgraph.GDFGraph)1 Timing (org.apache.sysml.runtime.controlprogram.parfor.stat.Timing)1