create_input_app_sim.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/env python
  2. import sys, os, stat, random, math, numpy
  3. A_min = 2
  4. A_max = 16
  5. N_req_params = 3
  6. #app_input_idag_conf_1_1_rr_max_fast_A_1apps.txt
  7. num_of_apps = int(sys.argv[1])
  8. input_filename = sys.argv[2]
  9. fd_r = open(input_filename, 'r')
  10. input_workld = sys.argv[3]
  11. fd_workld = open(input_workld, 'r')
  12. #suffix = sys.argv[4]
  13. if len(sys.argv) < (N_req_params+2):
  14. suffix = '_A'
  15. out_filename = input_filename[0:35] + suffix + '_' + str(num_of_apps) + 'apps.txt'
  16. #tmp_str = input_filename.split('.')
  17. #out_filename = tmp_str[0]
  18. #for i in range(1,len(tmp_str)-1):
  19. # out_filename += '.' + tmp_str[i]
  20. ##out_filename = input_filename.split('.')[0:1] + '_' + suffix + '.txt'
  21. #out_filename += '_' + suffix + '.txt'
  22. else:
  23. out_filename = sys.argv[N_req_params+1]
  24. print out_filename
  25. fd_w = open(out_filename, 'w')
  26. Var_values = [0.01, 0.1, 0.5, 0.9, 1.11, 5, 10, 100]
  27. print Var_values
  28. replication_ratio = num_of_apps / len(Var_values)
  29. print 'replication ratio is ' + str(replication_ratio)
  30. replication = int(replication_ratio)
  31. Var_list = replication * Var_values;
  32. print Var_list
  33. Var_list_perm = numpy.random.permutation(Var_list)
  34. print Var_list_perm
  35. print len(Var_list_perm)
  36. for i in range(0,num_of_apps):
  37. one_line = fd_r.readline().split()
  38. one_workld = fd_workld.readline().split()
  39. #write_line = str(one_line[0]) + ' ' + str(one_line[1]) + ' ' + str(round(random.uniform(0,2),2)) + ' ' + str(int(math.ceil(random.uniform(1,8)))) + ' ' + str(one_line[3]) + '\n'
  40. write_line = str(one_line[0]) + ' ' + str(one_line[1]) + ' ' + str(Var_list_perm[i]) + ' ' + str(int(math.ceil(random.uniform(A_min,A_max)))) + ' ' + str(one_workld[0]) + '\n'
  41. #print str(one_line[0])
  42. #print str(one_line[1])
  43. #print str(Var_list_perm[i])
  44. #print str(int(math.ceil(random.uniform(A_min,A_max))))
  45. #print str(one_workld[0])
  46. fd_w.write(write_line)
  47. #print write_line
  48. fd_workld.close()
  49. fd_r.close()
  50. fd_w.close()