Example #1
0
def parse_path(path, myloc, direction):
    newloc = [myloc[0], myloc[1]]
    curDir = helpers.parseDir(direction)
    if path[0].isdigit():
        print('\tContinue for ' + str(path[0] + " blocks"))
        newloc = helpers.move(path, curDir, myloc)
    elif len(path) == 1:
        curDir = helpers.turn(path, curDir)
        print('\tTurn: ' + path)
    elif path.replace(' ', '').isalpha():
        print('\tContinue straight until you reach the ' + path)
    else:
        new_dir = helpers.parseDir(path[0])
        newloc = helpers.move(path[1:], new_dir, myloc)
        print('\tHead ' + path[0] + ' for ' + path[1:] + " blocks")

    return (newloc, helpers.getDir(curDir))
def plotLatencyVsId(latencyList, idList, inputFile):
    #plotting
    fig, ax = plt.subplots()
    linesNumber = 0

    ax.plot(idList, latencyList, helpers.getBuiltInColor(linesNumber))
    fig.suptitle('Latency vs Id')
    ax.set_xlabel('Id')
    ax.set_ylabel('Latency')
    # addTimeOfFrequencyChangeAsVerticalLineOnAxis(ax, timeOfFrequencyChange)
    # if x_limit > 0:
    # ax.set_xlim([0, x_limit])

    # ax.set_ylim([0 , percentile])
    # plt.legend()

    if save:
        figureFilePath = helpers.getDir(inputFile) + 'latencyVsId.jpg'
        print 'Saving plot to ' + figureFilePath
        fig.savefig(figureFilePath, dpi=1200)
    else:
        plt.show()
        plt.close(fig)
Example #3
0
def plotServiceTimeVsStartTime(ServiceList, startList, inputFile, timeOfPause):
    #plotting
    fig, ax = plt.subplots()
    linesNumber = 0

    ax.plot(startList, ServiceList, helpers.getBuiltInColor(linesNumber))
    fig.suptitle('Service Time vs Service Start Time')
    ax.set_xlabel('Service Start Time')
    ax.set_ylabel('Service Time')
    addtimeOfPauseAsVerticalLineOnAxis(ax, timeOfPause)
    # if x_limit > 0:
    # ax.set_xlim([0, x_limit])

    # ax.set_ylim([0 , percentile])
    # plt.legend()

    if save:
        figureFilePath = helpers.getDir(inputFile) + 'serviceVsStart.jpg'
        print 'Saving plot to ' + figureFilePath
        fig.savefig(figureFilePath, dpi=1200)
    else:
        plt.show()
        plt.close(fig)
Example #4
0
#!/usr/bin/python
import BinAnalysis
import matplotlib.pyplot as plt
import sys
import helpers

# plot service time vs. memory bandwidth for
# all files passed in as arguments

bin_analysis = BinAnalysis.BinAnalysis()

fig, ax = plt.subplots()
data_file_number = 0

for bin_file in sys.argv[1:]:
    bin_analysis.readBinFile(bin_file)
    line_color = helpers.getBuiltInColor(data_file_number)
    bin_analysis.plotDataVsMemoryBandWidth(ax, 'service_time',
                                           line_color + '.', bin_file, True)
    ax.set_xlabel('memory bandwidth (bytes)')
    ax.set_ylabel('service time (ns)')
    bin_analysis.clearData()
    data_file_number += 1

plt.legend()
#stored in the folder of the last processeed file
dir_path = helpers.getDir(bin_file)
save_pic_path = dir_path + 'service_time_vs_MBW.jpg'
fig.savefig(save_pic_path, dpi=1200)
plt.close(fig)
Example #5
0
bin_analysis = BinAnalysis.BinAnalysis()

fig, ax = plt.subplots()
data_file_number = 0

for input_file in sys.argv[1:]:
    bin_analysis.readBinFile(input_file)

    sorted_service_time_array = np.sort(bin_analysis.getList('service_time'))

    sorted_service_time_list = list(sorted_service_time_array)

    yvals_array = np.arange(len(sorted_service_time_list)) / float(
        len(sorted_service_time_list))
    yvals_list = list(yvals_array)
    file_name = input_file[len(helpers.getDir(input_file)):]
    ax.plot(sorted_service_time_list,
            yvals_list,
            helpers.getBuiltInColor(data_file_number),
            label=file_name)
    bin_analysis.clearData()
    data_file_number += 1

fig.suptitle('Percentile vs. Service Time')
ax.set_xlabel('service time (ns)')
ax.set_ylabel('percentile')
ax.set_xlim([0, 10e6])
plt.legend()
#plt.show()
fig.savefig(helpers.getDir(input_file) + 'service_distribution.jpg', dpi=1200)
plt.close(fig)
Example #6
0
    qpsStr = (re.split('q|k|f', trialFolder))[1]
baseFolder = 'q' + qpsStr + 'base'
if not os.path.isdir(baseFolder):
    helpers.pErr('Base folder ' + baseFolder + ' does not exist', 1)

#get spark start time from time file in trial folder
timeFile = trialFolder + '/' + trialFolder + '.time'
if not os.path.isfile(timeFile):
    helpers.pErr('File ' + timeFile + ' does not exist', 1)
#find spark starting time
sparkStartingTime = helpers.getSparkTime(timeFile)
if not sparkStartingTime > 0:
    helpers.pErr('Spark starting time not recorded in file ' + timeFile, 2)

#check to see if user wants to run get aggregate
scriptDir = helpers.getDir(sys.argv[0])
if run_get_aggregate:
    print 'Running get_aggregate_data_from_csv.py'
    csvFile = trialFolder + '/' + trialFolder + '.csv'
    if not subprocess.call(
        [scriptDir + 'get_aggregate_data_from_csv.py', csvFile]) == 0:
        helpers.pErr('Unable to get aggregate data from csv file')
#check to see if aggregate data exist, if not, run script to obtain it
aggFile = trialFolder + '/' + trialFolder + '.agg'
if not os.path.isfile(aggFile):
    helpers.pWarn(
        'No aggregate data file exists, running script to obtain from csv file'
    )
    csvFile = trialFolder + '/' + trialFolder + '.csv'
    if not subprocess.call(
        [scriptDir + 'get_aggregate_data_from_csv.py', csvFile]) == 0:
for argument in suppliedArguments:
    if '--percentile=' in argument:
        percentile = float((argument.strip().split('='))[1])
        print 'Plotting up to ' + str(percentile) + " percentile"

    if '--x_limit=' in argument:
        x_limit = float((argument.strip().split('='))[1])
        print 'Plotting with x_limit set to ' + str(x_limit)

    if '--exclude=' in argument:
        exclude_percentage = float((argument.strip().split('='))[1])
        print 'excluding the first ' + str(exclude_percentage * 100) + "% data"

    if '--save' in argument:
        save = True
        figureFilePath = helpers.getDir(
            input_file) + 'latency_distribution.jpg'
        print 'Saving plot to ' + figureFilePath

for input_file in sys.argv[1:]:
    bin_analysis.readBinFile(input_file)

    sorted_latency_array = np.sort(bin_analysis.getList('latency'))

    sorted_latency_list = list(sorted_latency_array)

    caring_data_from_id = int(len(sorted_latency_list) * exclude_percentage)
    sorted_latency_list = sorted_latency_list[caring_data_from_id:]

    yvals_array = np.arange(len(sorted_latency_list)) / float(
        len(sorted_latency_list))
    yvals_list = list(yvals_array)
if len(sys.argv) < 2:
    print "please provide csv file"
    exit(1)

csvFile = str(sys.argv[1])

if csvFile.endswith('.csv'):
    noSuffix = csvFile[:-4]
else:
    noSuffix = csvFile
    csvFile = csvFile + '.csv'

if not os.path.isfile(csvFile):
    helpers.pErr("Input csv file does not exist")

scriptDir = helpers.getDir(sys.argv[0])
if not os.path.isfile(csvFile + '.correctionLog'):
    helpers.pWarn(
        'csv correction log does not exist, running correction script')
    if not subprocess.call([scriptDir + 'correct_csv.py', csvFile]) == 0:
        helpers.pErr('Unable to correct csv file')

setupFile = noSuffix + '.setup'

if not os.path.isfile(setupFile):
    print "Cannot find setup file " + setupFile
    exit(1)

helpers.readSetup(setupFile)

lsa_cores = helpers.getCores(helpers.params['SERVERCORES'])
Example #9
0
	Latency95thList = datas[thread]['95thLatency']
	# print qpsList
	# print Latency95thList
	sortedQpsList = []
	sortedLatencyList = []
	rearrangeByQps(qpsList, Latency95thList, sortedQpsList, sortedLatencyList)
	print sortedQpsList
	print sortedLatencyList
	ax.plot(sortedQpsList,sortedLatencyList,helpers.getBuiltInColor(linesNumber),label='Thread='+thread)
	linesNumber += 1

fig.suptitle('95-th Percentile Latency vs. QPS')
ax.set_xlabel('QPS')
ax.set_ylabel('Latency (ms)')

if x_limit > 0:
	ax.set_xlim([0, x_limit])

# ax.set_ylim([0 , percentile])
plt.legend()

if save:
	figureFilePath = helpers.getDir(input_file)+'latency_distribution.jpg'
	print 'Saving plot to ' + figureFilePath
	fig.savefig(figureFilePath, dpi=1200)
else:
	plt.show()
	plt.close(fig)


###############################################################