int steady_counts = ((Integer)ClusterBackend.steadyExecutionCounts.get(node)).intValue();
    public static void generateWorkEst() {        int threadNumber = NodeEnumerator.getNumberOfNodes();        CodegenPrintWriter p = new CodegenPrintWriter();        for (int i = 0; i < threadNumber; i++) {	    SIROperator oper = NodeEnumerator.getOperator(i);	   	    FlatNode node = NodeEnumerator.getFlatNode(i);	    	    int steady_counts = ((Integer)ClusterBackend.steadyExecutionCounts.get(node)).intValue();	    int w = 0;	    if (oper instanceof SIRFilter) {		WorkEstimate w_est = WorkEstimate.getWorkEstimate((SIRFilter)oper);		WorkList w_list = w_est.getSortedFilterWork();		w = w_list.getWork(0);	    }	    // For splitters and joiners the estimate is 8 times the sum of weights	    	    if (oper instanceof SIRJoiner) {		SIRJoiner j = (SIRJoiner)oper;		w = j.getSumOfWeights() * 8;	    }	    if (oper instanceof SIRSplitter) {		SIRSplitter s = (SIRSplitter)oper;		w = s.getSumOfWeights() * 8;	    }	    // If work estimate is 0 (for Identities) then set it to the smallest	    // positive amount 1	    if (w == 0) w = 1;	    p.print(i+" " + (w * steady_counts) + "\n");        }        try {            FileWriter fw = new FileWriter("work-estimate.txt");            fw.write(p.getString());            fw.close();        }        catch (Exception e) {            System.err.println("Unable to write work estimation file");        }       }