X-Git-Url: https://git.siccegge.de//index.cgi?a=blobdiff_plain;f=cool.py;h=d8dd0930fe292ed975b163596996664f093f737b;hb=6680ab9d71502064e07f86fcb0772949451c7aad;hp=18ed21d850bbddce0139ca8ab8276f2d253ffc67;hpb=0d5c7d931d1b5a5cb8a758ffb433726c930f4e4d;p=master%2Fcool-versuchung.git diff --git a/cool.py b/cool.py index 18ed21d..d8dd093 100755 --- a/cool.py +++ b/cool.py @@ -19,7 +19,7 @@ def natural_key(string_): def parse_timedelta(strrep): minutes, seconds = strrep.split(":") - return seconds + 60 * minutes + return float(seconds) + 60 * float(minutes) class SolverExperiment(Experiment): @@ -38,14 +38,17 @@ class SolverExperiment(Experiment): def run(self): print("Building Solver ...") self.build_solver() - formulas = sorted(os.listdir(self.inputs.formulas.path), key=natural_key) - shell.track(self.outputs.timing.path) - for formula in formulas: - print("Running for %s ..." % formula) - try: - self.run_solver(os.path.join(self.inputs.formulas.path, formula)) - except CommandFailed: - break + with self.inputs.formulas as path: + formulas = sorted(os.listdir(path), key=natural_key) + shell.track(self.outputs.timing.path) + + for formula in formulas: + print("Running for %s ..." % formula) + try: + + self.run_solver(os.path.join(path, formula)) + except CommandFailed: + break @@ -137,6 +140,7 @@ class ComparisonExperiment(Experiment): command = command.split("<")[1].strip().strip('"') formula = os.path.basename(command) time = parse_timedelta(timeline.split(": ")[1].strip()) + time = time if time > 0 else 0.001 memory = memoryline.split(": ")[1].strip() csv.append([formula, time, memory]) csv.flush() @@ -154,6 +158,7 @@ class ComparisonExperiment(Experiment): os.path.basename(self.inputs.treetab.metadata['formulas'])) plt.yscale('log') plt.ylabel('time / s') + plt.ylim(0.001, 10000) plt.xlabel('problem size') plt.plot([x[0].split('.')[1] for x in self.outputs.cool_data.value], [x[1] for x in self.outputs.cool_data.value], @@ -161,11 +166,11 @@ class ComparisonExperiment(Experiment): plt.plot([x[0].split('.')[1] for x in self.outputs.treetab_data.value], [x[1] for x in self.outputs.treetab_data.value], 'gv', label="TreeTab") - plt.legend() plt.plot([x[0].split('.')[1] for x in self.outputs.gmul_data.value], [x[1] for x in self.outputs.gmul_data.value], 'r*', label="GMUL") + plt.legend(loc=2) plt.savefig('time.svg', format='svg') plt.close() @@ -181,11 +186,11 @@ class ComparisonExperiment(Experiment): plt.plot([x[0].split('.')[1] for x in self.outputs.treetab_data.value], [x[2] for x in self.outputs.treetab_data.value], 'gv', label="TreeTab") - plt.legend() plt.plot([x[0].split('.')[1] for x in self.outputs.gmul_data.value], [x[2] for x in self.outputs.gmul_data.value], 'r*', label="GMUL") + plt.legend(loc=2) plt.savefig('memory.svg', format='svg')