double upper_bound = cm.estimateWorkloadCost(args.catalogContext, args.workload);
final ProfileMeasurement timer = new ProfileMeasurement("timer").start();
LowerBoundsCalculator lb = new LowerBoundsCalculator(info, args.num_intervals);
double lower_bound = lb.calculate(args.workload);
timer.stop();
ListOrderedMap<String, Object> m = new ListOrderedMap<String, Object>();
m.put("# of Partitions", args.catalogContext.numberOfPartitions);
m.put("# of Intervals", args.num_intervals);
m.put("Lower Bound", String.format("%.03f", lower_bound));