- Timestamp:
- Aug 28, 2014, 6:47:35 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/reconfiguration/platforms/tsar_generic_iob/scripts/parse.py
r777 r782 1 #!/usr/bin/python 2 # @author Cesar Fuguet <cesar.fuguet-tortolero@lip6.fr> 3 # @date 28 August, 2014 4 # @desc generate output file containing a table with the format below: 5 # 6 # fault configurations 7 # | faultconfig 0 | faultconfig 1 | faultconfig M 8 # ---------------------------------------------------- 9 # 4 | cycles | cycles | cycles 10 # # clusters 16 | cycles | cycles | cycles 11 # 64 | cycles | cycles | cycles 12 # N | cycles | cycles | cycles 13 1 14 import os 2 15 import sys 3 16 4 def parse_ffstend(configs, confpath, outpath):17 def parse_ffstend(configs, faultconfigs, confpath, outpath): 5 18 # write header 6 19 ffst_end = open(outpath, "w") 7 ffst_end.writelines([ 8 "# ffst end (cycles)\n", 9 "# clusters cycles\n", 10 "\n"]) 20 ffst_end.write("# ffst end (cycles)\n") 11 21 12 22 # repeat while configurations is not empty 23 quit = 0 13 24 for x,y in configs: 14 confdir = confpath + "/config_{}c/".format(x*y) 25 ffst_end.write("\n") 26 ffst_end.write(str(x*y)) 27 for f in xrange(faultconfigs): 28 temp = "config_{0}c{1}f/".format(x*y, f) 29 confdir = os.path.join(confpath, temp) 15 30 16 # parse term log and get relevant information 17 with open(confdir + "term", "r") as termlog: 31 # parse term log and get relevant information 32 termname = os.path.join(confdir, "term") 33 try: 34 termlog = open(termname, "r") 35 except IOError as e: 36 print "IOError {0}: {1}".format(termname, e.strerror) 37 quit = 1 38 break 39 40 found = False 18 41 for line in termlog: 19 42 partitions = line.partition(':') 20 43 if partitions[0].strip() == "FFST (END)": 44 found = True 21 45 value = int(partitions[2]) 22 ffst_end.write(" {} {}\n".format(x*y,value))46 ffst_end.write(" {0}".format(value)) 23 47 break 24 48 49 if not found: ffst_end.write(" -1") 50 # end for faultconfig 51 52 if quit: break 53 # end for configs 54 25 55 ffst_end.close() 56 # end def parse_ffstend 26 57 27 58 if __name__ == "__main__": … … 32 63 configs.append([16, 16]) 33 64 34 assert len(sys.argv) > 2, "Introduce config path and output path" 65 assert len(sys.argv) > 3,\ 66 "Introduce number of faulty configs, config path and output path" 35 67 36 parse_ffstend(configs, sys.argv[1], sys.argv[2]) 68 parse_ffstend(configs, int(sys.argv[1]), sys.argv[2], sys.argv[3]) 69 70 # vim: tabstop=4 : softtabstop=4 : shiftwidth=4 : expandtab
Note: See TracChangeset
for help on using the changeset viewer.