123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #!/usr/bin/env python
- import sys, os, stat
- app_start = int(sys.argv[1])
- apps = int(sys.argv[2])
- num_of_apps = int(sys.argv[3])
- MS = 1000000
- mean_agent = 0
- #out_filename = './app_times.txt'
- #fd_w = open(out_filename, 'w')
- work_dir = sys.argv[4]
- scen_num = sys.argv[5]
- workld = int(sys.argv[6])
- app_logs_dir = work_dir + 'app_logs_' + str(num_of_apps) + '_' + scen_num + '/'#sys.argv[4]
- worker_time_array = [0, 0, 0, 0, 0, 0, 0]
- worker_num_array = [0, 0, 0, 0, 0, 0, 0]
- for i in range(app_start,app_start + apps):
- input_filename = app_logs_dir + str(i) + '.txt'
- fd_r = open(input_filename, 'r')
- #[16:12:12:509177] A matrix mul is over. Remaining workload is 40 active cores = 2 //14
- #[16:12:12:866558] A matrix mul is over in resizing. Remaining workload is 39 active cores = 3
- exec_list = []
- one_line = fd_r.readline().split()
- iter_cores = 0
- while one_line != []:
- if one_line[1] == 'A':
- iter_fin = one_line[0].strip('[]')
-
- if iter_cores > 0: #Not first time
-
- time_m = iter_start.split(':')
- time_m2 = iter_fin.split(':')
- dif = ((int(time_m2[0]) - int(time_m[0])) * 3600 * MS) + ((int(time_m2[1]) - int(time_m[1])) * 60 * MS) + ((int(time_m2[2]) - int(time_m[2])) * MS) + ((int(time_m2[3]) - int(time_m[3])))
- if (dif > 0):
- exec_list.append([iter_cores,dif])
- if len(one_line) == 14:
- iter_cores = int(one_line[13])
- else:
- iter_cores = int(one_line[15])
-
- iter_start = iter_fin
- elif one_line[1] == 'Matrix':
- iter_fin = one_line[0].strip('[]')
- time_m = iter_start.split(':')
- time_m2 = iter_fin.split(':')
- dif = ((int(time_m2[0]) - int(time_m[0])) * 3600 * MS) + ((int(time_m2[1]) - int(time_m[1])) * 60 * MS) + ((int(time_m2[2]) - int(time_m[2])) * MS) + ((int(time_m2[3]) - int(time_m[3])))
- if (dif > 0):
- exec_list.append([iter_cores,dif])
- one_line = fd_r.readline().split()
- fd_r.close()
- #for i in exec_list:
- # print str(i[0]) + ' -> ' + str(i[1])
- #print '\n'
- if workld > 1:
- prev_workers = -1
- cur_rep = 0
- for i in exec_list:
- if cur_rep == 0:
- workers = i[0]
- cur_rep = 1
- cur_time = i[1]
- else:
- prev_workers = workers
- workers = i[0]
- if prev_workers == workers:
- cur_rep += 1
- cur_time += i[1]
- if cur_rep == workld:
- worker_time_array[workers-1] += cur_time
- worker_num_array[workers-1] += 1 #+= workld
- #prev_workers = -1
- cur_rep = 0
- else:
- cur_rep = 1
- cur_time = i[1]
- else:
- for i in exec_list:
- workers = i[0]
- cur_time = i[1]
- worker_time_array[workers-1] += cur_time
- worker_num_array[workers-1] += 1
-
- print_str = ''
- for i in range(0,7):
- if worker_num_array[i] > 0:
- avg_time = worker_time_array[i] / worker_num_array[i] #* workld)
- else:
- avg_time = 0
- print str(i+1) + ' -> ' + str(worker_num_array[i]) + ' : ' + str(worker_time_array[i]) + ' -> ' + str(avg_time)
- print_str += str(avg_time) + '\n'
- print print_str
- #write_line = str(mean_idag) + '\n' + str(mean_init) + '\n' + str(mean_agent) + '\n'
- #fd_w.write(write_line)
- #fd_w.close()
|