diff --git a/simrunner/data_config.json b/simrunner/data_config.json new file mode 100644 index 0000000000000000000000000000000000000000..a05af4949ddbe3632239aec09350530c3c8dacd3 --- /dev/null +++ b/simrunner/data_config.json @@ -0,0 +1,6 @@ +{ + "s": ["1M", "2M", "3M"], + "n": ["30", "10", "20"], + "i": ["0.1", "0.2", "0.3"], + "N": ["4", "4", "4"] +} \ No newline at end of file diff --git a/simrunner/simrunner.py b/simrunner/simrunner.py index c67f44d225dd5a29b27ea7626ee94f8d3e502593..0cc05fdb6c40003bf1a9cbdecfec54fe5c489bce 100644 --- a/simrunner/simrunner.py +++ b/simrunner/simrunner.py @@ -1,42 +1,41 @@ import os +import json import subprocess -def start_cpp_program(program_path, arguments): +def read_config(): + with open("simrunner/data_config.json", "r") as file: + d_config = json.load(file) + return d_config + + +def start_process(program_path, arguments): command = [program_path] + arguments process = subprocess.run(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE) return process -def send_input(program_path, arg): - command = [program_path] + arg - process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE) - stdout, stderr = process.communicate() - return stdout.decode() +def run_sim(d_config, m_folder, s_path): + for data_set in range(len(d_config["s"])): + size = d_config["s"][data_set] + nevents = d_config["n"][data_set] + interval = d_config["i"][data_set] + threads = d_config["N"][data_set] + folder_name = d_config["s"][data_set] + relativ_path = os.path.join(m_folder, "output1", folder_name) + os.makedirs(relativ_path, mode=0o777, exist_ok=True) + arguments = ["-o", relativ_path, "--posixDataDir", "protokoll", "-n", nevents, + "-s", size, "-i", interval, "-N", threads] + output = start_process(s_path, arguments) + print(output) -data_config = { - "s": ["1M", "2M", "3M"], #Size - "n": ["30", "10", "20"], #nEvents - "i": ["0.1", "0.2", "0.3"], #interval - "N": ["4", "4", "4"] #UsedThreads - -} -data_size = ["1M", "2M"] +data_config = read_config() skript_path = os.path.abspath(__file__) main_folder = os.path.dirname(os.path.dirname(skript_path)) data_path = os.path.join(main_folder, "protokoll") -cpp_program_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim") +sim_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim") os.makedirs(data_path, mode=0o777, exist_ok=True) -for data_set in range(len(data_config["s"])): - size = data_config["s"][data_set] - nEvents = data_config["n"][data_set] - interval = data_config["i"][data_set] - threads = data_config["N"][data_set] - folder_name = data_config["s"][data_set] - relativ_path = os.path.join(main_folder, "output1", folder_name) - os.makedirs(relativ_path, mode=0o777, exist_ok=True) - arguments = ["-o", relativ_path, "--posixDataDir", "protokoll", "-n", nEvents, "-s", size, "-i", interval, "-N", threads] - output = start_cpp_program(cpp_program_path, arguments) - print(output) +run_sim(data_config, main_folder, sim_path) +