6 class AutoTunerArgParser:
8 self.parser = argparse.ArgumentParser(description='Parsing the output log of the CSolver auto tuner ...')
9 self.parser.add_argument('--file', '-f', metavar='out.log', type=str, nargs=1,help='output log of running the autotuner ...')
10 self.args = self.parser.parse_args()
12 def getFileName(self):
13 return self.args.file[0]
15 configs = {"EXECTIME": "-",
20 "ELEMENTOPTSETS" : "-",
21 "PROXYVARIABLE" : "-",
26 "ENCODINGGRAPHOPT" : "-"
29 REGEXES = {"EXECTIME": "CSOLVER solve time: (.*)",
30 "SATTIME":"SAT Solving time: (.*)",
31 "TESTCASE": "deserializing (.+) ...",
32 "PREPROCESS" : "Param PREPROCESS = (.*)range=\[0,1\]",
33 "ELEMENTOPT" : "Param ELEMENTOPT = (.*)range=\[0,1\]",
34 "ELEMENTOPTSETS" : "Param ELEMENTOPTSETS = (.*)range=\[0,1\]",
35 "PROXYVARIABLE" : "Param PROXYVARIABLE = (.*)range=\[1,5\]",
36 "#SubGraph" : "#SubGraph = (.*)",
37 "NODEENCODING" : "Param NODEENCODING = (.*)range=\[0,3\](.*)",
38 "EDGEENCODING" : "Param EDGEENCODING = (.*)range=\[0,2\](.*)",
39 "NAIVEENCODER" : "Param NAIVEENCODER = (.*)range=\[1,3\](.*)",
40 "ENCODINGGRAPHOPT" : "Param ENCODINGGRAPHOPT = (.*)range=\[0,1\]"
43 def printHeader(file):
46 for config in configs:
47 mystr+=str(config)+","
50 def printConfig(file, data):
54 mystr+=str(data[config])+","
59 argprocess = AutoTunerArgParser()
60 output = open("tuner.csv", "w")
62 with open(argprocess.getFileName()) as file:
64 if line.startswith("Mutating"):
65 printConfig(output,configs)
66 elif line.startswith("Best tuner"):
67 printConfig(output,configs);
70 p = re.compile(REGEXES[regex])
71 token = p.search(line)
73 if regex == "TESTCASE":
74 configs[regex] = re.search(REGEXES[regex], line).group(1)
76 configs[regex] = re.findall("\d+\.?\d*", line)[0]
78 configs["EXECTIME"] = "BEST TUNE:"
79 printConfig(output, configs)
80 print "Done with parsing " + argprocess.getFileName()
82 if __name__ == "__main__":