Merge branch 'scr-persistent-collective' of github.com:sfilippone/psblas3 into scr-persistent-collective

stuff happened
scr-persistent-collective
Soren Rasmussen 6 years ago
commit 33b02bd620

@ -15,51 +15,69 @@ def p(data, width=14):
filename = 'cz308.output'
filename = 'withmpi-cz40948.output'
filename = 'tokam_id_16p.output'
filename = 'tokam_id_all_comm_methods.output'
filename = '../../unitcube/results/unitcube128.output'
f = pd.read_csv(filename, sep=';')
swap_di = {8:'psblas', 16:'persistent' , 32: 'nonpersistent'}
swap_di = {8:'isend/irecv', 16:'persistent', 32:'alltoallv', 64:'ialltoallv'}
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']
ni = 100
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations > ni)]
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations > ni)]
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations > ni)]
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (q.num_iterations > ni)]
isend_irecv_marker = 'gs-'
persistent_col_marker = 'mo-'
alltoallv_marker = 'b+-'
ialltoallv_marker = 'rx-'
isend_irecv_label = 'Isend/Irecv'
persistent_col_label = 'Persistent Neighbor_alltoallv'
alltoallv_label = 'Neighbor_alltoallv'
ialltoallv_label = 'Ineighbor_alltoallv'
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 = "Average Halo Time per Communication (200-3000)"
ave_halo_title_100 = "Average Halo Time per Communication (1-100)"
y_axis_min = 700
# 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.plot(q_isend_irecv.num_iterations, q_isend_irecv.ave_halo_t_pi, isend_irecv_marker, label=isend_irecv_label)
plt.plot(q_persistent.num_iterations, q_persistent.ave_halo_t_pi, persistent_col_marker, label=persistent_col_label)
plt.plot(q_alltoallv.num_iterations, q_alltoallv.ave_halo_t_pi, alltoallv_marker, label=alltoallv_label)
plt.plot(q_ialltoallv.num_iterations, q_ialltoallv.ave_halo_t_pi, ialltoallv_marker, label=ialltoallv_label)
plt.legend()
plt.title(ave_halo_title)
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.axis(ymin=y_axis_min, ymax=1000)
# 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)]
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations < ni)]
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations < ni)]
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations < ni)]
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (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.plot(q_isend_irecv.num_iterations, q_isend_irecv.ave_halo_t_pi, isend_irecv_marker, label=isend_irecv_label)
plt.plot(q_persistent.num_iterations, q_persistent.ave_halo_t_pi, persistent_col_marker, label=persistent_col_label)
plt.plot(q_alltoallv.num_iterations, q_alltoallv.ave_halo_t_pi, alltoallv_marker, label=alltoallv_label)
plt.plot(q_ialltoallv.num_iterations, q_ialltoallv.ave_halo_t_pi, ialltoallv_marker, label=ialltoallv_label)
plt.legend()
plt.title(ave_halo_title_100)
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.axis(ymin=y_axis_min)
plt.show()

@ -11,6 +11,7 @@ def p(data, width=14):
filename = 'unitcube128.output'
filename = 'unitcube128.output.NEW'
f = pd.read_csv(filename, sep=';')
@ -20,10 +21,16 @@ f['swap_mode'].replace(swap_di, inplace=True)
q = f[['num_iterations','swap_mode','ave_halo_t_pi']]
ni = 100
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations > ni)]
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations > ni)]
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations > ni)]
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (q.num_iterations > ni)]
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
w1 = q[(q.swap_mode=='isend/irecv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
w2 = q[(q.swap_mode=='persistent') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
w3 = q[(q.swap_mode=='alltoallv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
w4 = q[(q.swap_mode=='ialltoallv') & (q.num_iterations > ni)].groupby('num_iterations', as_index=False).mean()
isend_irecv_marker = 'gs-'
persistent_col_marker = 'mo-'
@ -55,14 +62,15 @@ plt.legend()
plt.title(ave_halo_title)
plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
plt.axis(ymax=200)
# plt.axis(ymin=y_axis_min, ymax=y_axis_max)
# iterations below
ni = 101
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations < ni)]
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations < ni)]
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations < ni)]
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (q.num_iterations < ni)]
q_isend_irecv = q[(q.swap_mode=='isend/irecv') & (q.num_iterations < ni)].groupby('num_iterations', as_index=False).mean()
q_persistent = q[(q.swap_mode=='persistent') & (q.num_iterations < ni)].groupby('num_iterations', as_index=False).mean()
q_alltoallv = q[(q.swap_mode=='alltoallv') & (q.num_iterations < ni)].groupby('num_iterations', as_index=False).mean()
q_ialltoallv = q[(q.swap_mode=='ialltoallv') & (q.num_iterations < ni)].groupby('num_iterations', as_index=False).mean()
plt.figure()
plt.plot(q_isend_irecv.num_iterations, q_isend_irecv.ave_halo_t_pi, isend_irecv_marker, label=isend_irecv_label)
plt.plot(q_persistent.num_iterations, q_persistent.ave_halo_t_pi, persistent_col_marker, label=persistent_col_label)
@ -74,17 +82,18 @@ plt.xlabel(x_axis_label)
plt.ylabel(y_axis_label)
# plt.axis(ymin=y_axis_min)
plt.show()
w = f[f.np==16]
# 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']
e = f.loc[f.np==16, 'num_iterations':'ave_halo_t_pi']
e2 = f.loc[f.np==16, 'ave_neighbors':'min_rcv']
# p(w)
p(w,10)
p(w2,6)
p(e,10)
p(e2,6)

Loading…
Cancel
Save