def pltPwrcapTimeIF(arch, app, dataPath, pltPath, thresh): tot_time = [] mean_pwr = [] r2r_time = [] r2r_mean_pwr = [] mean_energy = [] fID = "" pls = [] for p in np.arange(125, 255, 5): pls.append(p) pl = str(p) if arch == "P100": fID = app + '-fp64-run-' + pl + '-P100-1328-' elif arch == "V100": fID = app + '-fp64-run-' + pl + '-V100-1380-' r2r_mean_pwr.clear() r2r_time.clear() for r in range(3): d = pc.readMetrics(dataPath + fID + str(r)) df, s, e = pc.getComputationStartEnd(d, thresh) # striping non-computing power consumption data = pc.getStablePwr(df, s, e) r2r_mean_pwr.append(data['pwr'].mean()) seconds = max(data['time']) - min(data['time']) r2r_time.append(seconds) mpwr = mean(r2r_mean_pwr) mTime = mean(r2r_time) mean_pwr.append(mpwr) tot_time.append(mTime) mean_energy.append(mpwr * mTime) #print ('\nTime: ',tot_time,'\n') #print ('\nPower: ',mean_pwr,'\n') return mean_energy, tot_time, mean_pwr, arch, app, pltPath, 'PWRCAP', pls
def pltDVFSTimeIF(arch, app, dataPath, pltPath, thresh): tot_time = [] mean_pwr = [] r2r_time = [] r2r_mean_pwr = [] freqs = [] if arch == 'V100': alt = 0 f = 135 while f <= upper_freq: fID = app + '-fp64-run-250-V100-' + str(f) + '-' freqs.append(f) r2r_mean_pwr.clear() r2r_time.clear() if f == 1005: thresh = 85 for r in range(3): d = pc.readMetrics(dataPath + fID + str(r)) df, s, e = pc.getComputationStartEnd(d, thresh) # striping non-computing power consumption data = pc.getStablePwr(df, s, e) r2r_mean_pwr.append(data['pwr'].mean()) seconds = max(data['time']) - min(data['time']) r2r_time.append(seconds) mean_pwr.append(mean(r2r_mean_pwr)) tot_time.append(mean(r2r_time)) if alt == 0: f += 7 alt = 1 else: f += 8 alt = 0 #print ('\nTime: ',tot_time,'\n') print('\nPower: ', mean_pwr, '\n') return tot_time, mean_pwr, arch, app, pltPath, 'DVFS', freqs elif arch == 'P100': f = 544 while f <= 1329: # 1328 fID = app + '-fp64-run-250-P100-' + str(f) + '-' freqs.append(f) r2r_mean_pwr.clear() r2r_time.clear() if f > 1005: thresh = 85 for r in range(3): d = pc.readMetrics(dataPath + fID + str(r)) df, s, e = pc.getComputationStartEnd(d, thresh) # striping non-computing power consumption data = pc.getStablePwr(df, s, e) r2r_mean_pwr.append(data['pwr'].mean()) seconds = max(data['time']) - min(data['time']) r2r_time.append(seconds) mean_pwr.append(mean(r2r_mean_pwr)) tot_time.append(mean(r2r_time)) if f == 1328: break if (path.exists(dataPath + app + '-fp64-run-250-P100-' + str(f + 12) + '-0')): f += 12 elif (path.exists(dataPath + 'dgemm-fp64-run-250-P100-' + str(f + 13) + '-0')): f += 13 return tot_time, mean_pwr, arch, app, pltPath, 'DVFS', freqs