def generate_generic_cpustat_per_xact(jgraphs, results_dir, parameter, title, ylabel): user_data = get_cpustat_per_xact_data(results_dir, "USER", parameter) kernel_data = get_cpustat_per_xact_data(results_dir, "KERNEL", parameter) combined_data = get_cpustat_per_xact_data(results_dir, "COMBINED", parameter) lines = [] lines.append(mfgraph.merge_data(group_title = "User", data = user_data)) lines.append(mfgraph.merge_data(group_title = "Kernel", data = kernel_data)) lines.append(mfgraph.merge_data(group_title = "Combined", data = combined_data)) draw_std_line(jgraphs, title, ylabel, lines)
def generate_throughput(jgraphs, results_dir): # ECperf Data data = get_throughput_data(results_dir) ecperf_data = mfgraph.merge_data(group_title = "ECperf", data = data) # Graph ECperf Data linear = get_linear(data=ecperf_data) linear_data = mfgraph.merge_data(group_title = "Linear", data = linear) lines = [ecperf_data, linear_data] draw_std_line(jgraphs, "Throughput", "BBops/min", lines)
def generate_throughput_no_gc(jgraphs, results_dir): ylabel = "Throughput" # Gather ECperf Data data = get_throughput_data(results_dir) data_no_gc = get_throughput_no_gc_data(results_dir) ecperf_data = mfgraph.merge_data(group_title = "ECperf", data = data) ecperf_data_no_gc = mfgraph.merge_data(group_title = "ECperf no GC", data = data_no_gc) # Graph ECperf Data linear = get_linear(data=ecperf_data) linear_data = mfgraph.merge_data(group_title = "Linear", data = linear) lines = [linear_data, ecperf_data, ecperf_data_no_gc] draw_std_line(jgraphs, "Effect of GC on Throughput", ylabel, lines)
def generate_gc_time_per_xact(jgraphs, results_dir): ylabel = "GC Time Per Transaction" # Gather ECperf data data = get_gc_time_per_xact_data(results_dir) ecperf_data = mfgraph.merge_data(group_title = "ECperf", data = data) #draw the graph lines = [ecperf_data] draw_std_line(jgraphs, "GC Time/Tranaction", ylabel, lines)
def generate_indirect_branch_prediction_rate(jgraphs, results_dir): gshare_data = mfgraph.merge_data(group_title="GSHARE", data=get_branch_prediction_rate_data("INDIRE", "GSHARE")) agree_data = mfgraph.merge_data(group_title="AGREE", data=get_branch_prediction_rate_data("INDIRE", "AGREE")) yags_data = mfgraph.merge_data(group_title="YAGS", data=get_branch_prediction_rate_data("INDIRE", "YAGS")) print gshare_data lines = [gshare_data, agree_data, yags_data] jgraphs.append(mfgraph.line_graph(lines, title = "INDIRECT Branch Prediction Accuracy", xlabel = "PHT Bits", ylabel = "% Correct", xsize = 6, ysize = 4.5, ymin = 80, ymax = 100 ))
def generate_tuning(jgraphs, results_dir): ylabel = "Throughput in BBops/min" data_map = get_tuning_data(results_dir) lines = [] for key in data_map.keys(): label = "%d threads" % key lines.append(mfgraph.merge_data(group_title = label, data = data_map[key])) draw_std_line(jgraphs, "Tuning Data", ylabel, lines)
def generate_gc_time(jgraphs, results_dir): xlabel = "Processors" ylabel = "Time Spent in Garbage Collection (%)" # Gather ECperf data data = get_gc_time_data(results_dir) ecperf_data = mfgraph.merge_data(group_title = "ECperf", data = data) lines = [ecperf_data] draw_std_line(jgraphs, "GC Time", "GC Time (s)", lines)
def generate_tuning(jgraphs, results_dir): ylabel = "Throughput in BBops/min" data_map = get_tuning_data(results_dir) lines = [] for key in data_map.keys(): label = "%d threads" % key lines.append(mfgraph.merge_data(group_title=label, data=data_map[key])) draw_std_line(jgraphs, "Tuning Data", ylabel, lines)
def generate_gc_time(jgraphs, results_dir): xlabel = "Processors" ylabel = "Time Spent in Garbage Collection (%)" # Gather ECperf data data = get_gc_time_data(results_dir) ecperf_data = mfgraph.merge_data(group_title="ECperf", data=data) lines = [ecperf_data] draw_std_line(jgraphs, "GC Time", "GC Time (s)", lines)
def generate_indirect_branch_prediction_rate(jgraphs, results_dir): gshare_data = mfgraph.merge_data(group_title="GSHARE", data=get_branch_prediction_rate_data( "INDIRE", "GSHARE")) agree_data = mfgraph.merge_data(group_title="AGREE", data=get_branch_prediction_rate_data( "INDIRE", "AGREE")) yags_data = mfgraph.merge_data(group_title="YAGS", data=get_branch_prediction_rate_data( "INDIRE", "YAGS")) print gshare_data lines = [gshare_data, agree_data, yags_data] jgraphs.append( mfgraph.line_graph(lines, title="INDIRECT Branch Prediction Accuracy", xlabel="PHT Bits", ylabel="% Correct", xsize=6, ysize=4.5, ymin=80, ymax=100))