Esempio n. 1
0
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