diff --git a/python/dune/perftool/sumfact/vectorization.py b/python/dune/perftool/sumfact/vectorization.py index d6cc0740480e7eb82dd955ca97d0cc6923a8d7a2..cd0f7ffa3ea51d8bd19801ae8732e913063fd350 100644 --- a/python/dune/perftool/sumfact/vectorization.py +++ b/python/dune/perftool/sumfact/vectorization.py @@ -239,16 +239,29 @@ def level1_optimal_vectorization_strategy(sumfacts, width): # If we are using the 'target' strategy, we might want to log some information. if get_form_option("vectorization_strategy") == "target": + # Print the achieved cost and the target cost on the screen set_form_option("vectorization_strategy", "model") cost = strategy_cost((qp, optimal_strategies[qp])) print("The target cost was: {}".format(get_form_option("vectorization_target"))) print("The achieved cost was: {}".format(cost)) + set_form_option("vectorization_strategy", "target") + print("The score in 'target' logic was: {}".format(strategy_cost((qp, optimal_strategies[qp])))) + + # Print the employed vectorization strategy into a file from os.path import join - filename = join(get_option("project_basedir"), "targetstrat_{}".format(int(float(get_form_option("vectorization_target"))))) + filename = join(get_option("project_basedir"), "costmodel-verification", "targetstrat_{}.txt".format(int(float(get_form_option("vectorization_target"))))) with open(filename, 'w') as f: f.write("\n".join(stringify_vectorization_strategy((qp, optimal_strategies[qp])))) - set_form_option("vectorization_strategy", "target") - print("The score in 'target' logic was: {}".format(strategy_cost((qp, optimal_strategies[qp])))) + + # Write an entry into a csvfile which connects the given measuring identifier with a cost + from dune.testtools.parametertree.parser import parse_ini_file + inifile = parse_ini_file(get_option("inifile")) + identifier = inifile["identifier"] + filename = join(get_option("project_basedir"), "costmodel-verification", "mapping.csv") + + #TODO: Depending on the number of samples, we might need a file lock here. + with open(filename, 'a') as f: + f.write("{} {}".format(identifier, cost)) return qp, optimal_strategies[qp]