From 24eff3ed552b7753d2b147cd58b7efb24527a9ac Mon Sep 17 00:00:00 2001 From: Soren Rasmussen Date: Sun, 5 May 2019 18:09:16 +0100 Subject: [PATCH] better graphs, better organization --- .../artless-final-results/create_chart.py | 72 ++++++++++++++++++- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/test/halo/artless-final-results/create_chart.py b/test/halo/artless-final-results/create_chart.py index 55599949..832e2c57 100644 --- a/test/halo/artless-final-results/create_chart.py +++ b/test/halo/artless-final-results/create_chart.py @@ -1,11 +1,77 @@ import pandas as pd import numpy as np +import matplotlib.pyplot as plt + +def p(data, width=14): + print(list(data)) + with pd.option_context('display.max_colwidth', width, 'expand_frame_repr', False): + mw = pd.get_option('display.max_colwidth') + print(data.rename(columns=lambda x: x[:mw-3] + '...' if len(x) > mw else x)) + + +# def pq(data): + filename = 'cz308.output' +filename = 'withmpi-cz40948.output' +filename = 'tokam_id_16p.output' f = pd.read_csv(filename, sep=';') -swap_di = {16:'persistant' , 32: 'nonpersistant'} +swap_di = {8:'psblas', 16:'persistent' , 32: 'nonpersistent'} +f['swap_mode'].replace(swap_di, inplace=True) + + +q = f[['num_iterations','swap_mode','ave_halo_t_pi']] +q_nonb_p2p = q[q.swap_mode=='psblas'] +q_per_nonb_col = q[q.swap_mode=='persistent'] +q_nonper_nonb_col = q[q.swap_mode=='nonpersistent'] + +nonb_p2p_marker = 'g+-' +per_nonb_col_marker = 'rs-' +nonper_nonb_col_marker = 'bx-' + +x_axis_label = 'Number of Halo Communications' +y_axis_label = 'Time per iteration (microseconds)' +ave_halo_title = "Average Halo Time per Communication (1-3000)" +ave_halo_title_100 = "Average Halo Time per Communication (1-100)" + + +# the whole scale +plt.figure() +plt.plot(q_nonb_p2p.num_iterations, q_nonb_p2p.ave_halo_t_pi, nonb_p2p_marker, label='Non-blocking Point-to-Point') +plt.plot(q_per_nonb_col.num_iterations, q_per_nonb_col.ave_halo_t_pi, per_nonb_col_marker, label='Persistent Non-blocking Collective') +plt.plot(q_nonper_nonb_col.num_iterations, q_nonper_nonb_col.ave_halo_t_pi, nonper_nonb_col_marker, label='Non-persistent Non-Blocking Collective') +plt.legend() +plt.title(ave_halo_title) +plt.xlabel(x_axis_label) +plt.ylabel(y_axis_label) + +# iterations below +ni = 101 +q_nonb_p2p = q[(q.swap_mode=='psblas') & (q.num_iterations < ni)] +q_per_nonb_col = q[(q.swap_mode=='persistent') & (q.num_iterations < ni)] +q_nonper_nonb_col = q[(q.swap_mode=='nonpersistent') & (q.num_iterations < ni)] +plt.figure() +plt.plot(q_nonb_p2p.num_iterations, q_nonb_p2p.ave_halo_t_pi, nonb_p2p_marker, label='Non-blocking Point-to-Point') +plt.plot(q_per_nonb_col.num_iterations, q_per_nonb_col.ave_halo_t_pi, per_nonb_col_marker, label='Persistent Non-blocking Collective') +plt.plot(q_nonper_nonb_col.num_iterations, q_nonper_nonb_col.ave_halo_t_pi, nonper_nonb_col_marker, label='Non-persistent Non-Blocking Collective') +plt.legend() +plt.title(ave_halo_title_100) +plt.xlabel(x_axis_label) +plt.ylabel(y_axis_label) + +plt.show() + +w = f[f.np==16] + +# q = f.loc[f.np==16, 'total_time':'ave_request_create_t'] +# w = f.loc[f.np==16, 'ave_alltoall_comm_t':'ave_request_create_t'] +w = f.loc[f.np==16, 'num_iterations':'ave_halo_t_pi'] +w2 = f.loc[f.np==16, 'ave_neighbors':'min_rcv'] + +# p(w) +p(w,10) +p(w2,6) + -q = f[['np','ave_time','swap_mode']] -q['swap_mode'].replace(swap_di, inplace=True)