From 8214efe84e7362393fa52cf11de37e6116c7e718 Mon Sep 17 00:00:00 2001 From: Michael Reuscher <michael.reuscher@desy.de> Date: Tue, 18 Jul 2023 16:51:11 +0200 Subject: [PATCH] new way to sim_run and new plots --- simrunner/data_config.json | 117 +--------------------- simrunner/simrunner.py | 44 +++++--- tests/sizeScan.bash | 2 +- visualizer/visualizer/DataFrameCreator.py | 13 ++- visualizer/visualizer/SeabornPlotter.py | 18 ++-- visualizer/visualizer/main.py | 2 +- 6 files changed, 49 insertions(+), 147 deletions(-) diff --git a/simrunner/data_config.json b/simrunner/data_config.json index c57965e..7700084 100644 --- a/simrunner/data_config.json +++ b/simrunner/data_config.json @@ -1,122 +1,7 @@ { - "data_set_1":{ + "data_config":{ "--posixDataDir": "protokoll", "-n": "100", - "-s": "1M", - "-i": "0.1s", - "-N": "4"}, - "data_set_2":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "2M", - "-i": "0.1s", - "-N": "4"}, - "data_set_3":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "3M", - "-i": "0.1s", - "-N": "4"}, - "data_set_4":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "4M", - "-i": "0.1s", - "-N": "4"}, - "data_set_5":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "5M", - "-i": "0.1s", - "-N": "4"}, - "data_set_6":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "6M", - "-i": "0.1s", - "-N": "4"}, - "data_set_7":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "8M", - "-i": "0.1s", - "-N": "4"}, - "data_set_8":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "16M", - "-i": "0.1s", - "-N": "4"}, - "data_set_9":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "7M", - "-i": "0.1s", - "-N": "4"}, - "data_set_10":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "9M", - "-i": "0.1s", - "-N": "4"}, - "data_set_11":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "12M", - "-i": "0.1s", - "-N": "4"}, - "data_set_12":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "600", - "-i": "0.1s", - "-N": "4"}, - "data_set_13":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "1200", - "-i": "0.1s", - "-N": "4"}, - "data_set_14":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "2400", - "-i": "0.1s", - "-N": "4"}, - "data_set_15":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "4800", - "-i": "0.1s", - "-N": "4"}, - "data_set_16":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "9600", - "-i": "0.1s", - "-N": "4"}, - "data_set_17":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "60000", - "-i": "0.1s", - "-N": "4"}, - "data_set_18":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "120000", - "-i": "0.1s", - "-N": "4"}, - "data_set_19":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "240000", - "-i": "0.1s", - "-N": "4"}, - "data_set_20":{ - "--posixDataDir": "protokoll", - "-n": "100", - "-s": "480000", "-i": "0.1s", "-N": "4"} } \ No newline at end of file diff --git a/simrunner/simrunner.py b/simrunner/simrunner.py index e3db2a4..9acaa43 100644 --- a/simrunner/simrunner.py +++ b/simrunner/simrunner.py @@ -21,27 +21,37 @@ def start_process(program_path, arguments): def set_arguments(data_config): data_config = read_config() e_list = [] - for outer_key in data_config.keys(): - inner_dict = data_config[outer_key] - arguments = [] - for k, v in inner_dict.items(): - arguments.append(k) - arguments.append(v) - arguments.append("-o") - arguments.append(outer_key) - e_list.append(arguments) + byte_sizes = ['16', '32', '64', '128', '256', '512', '1024', '2048', '4096', '8192', + '16384', '32768', '65536', '131072', '262144', '524288', '1048576', '2097152', + '4194304', '8388608', '16777216', '33554432', '67108864'] + + for event in byte_sizes: + event_name = "Data_Set_" + event + arguments = ["-s", event] + for outer_key in data_config.keys(): + inner_dict = data_config[outer_key] + for k, v in inner_dict.items(): + arguments.append(k) + arguments.append(v) + arguments.append("-o") + arguments.append(event_name) + e_list.append(arguments) return e_list -def run_sim(e_list, d_path, s_path): +def run_sim(e_list, d_path, sim_path, st_path): for event in e_list: folder_name = event[-1] - relativ_path = os.path.join(d_path, folder_name) - os.makedirs(relativ_path, mode=0o777, exist_ok=True) - event[-1] = relativ_path + stat_file_name = "statistics_" + folder_name + relativ_path_data = os.path.join(d_path, folder_name) + relativ_path_stat = os.path.join(st_path, stat_file_name + ".dat") + os.makedirs(relativ_path_data, mode=0o777, exist_ok=True) + event[-1] = relativ_path_data arguments = event - output, errors, return_code = start_process(s_path, arguments) + output, errors, return_code = start_process(sim_path, arguments) print(output) + with open(relativ_path_stat, "w") as stat_file: + stat_file.write(output) print(errors) if return_code > 0: print("return code: ", return_code) @@ -52,11 +62,13 @@ def run_sim(e_list, d_path, s_path): main_folder = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) data_path = os.path.join(main_folder, "output1") protokoll_path = os.path.join(main_folder, "protokoll") +stat_path = os.path.join(data_path, "statistics") os.makedirs(protokoll_path, mode=0o777, exist_ok=True) -sim_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim") +os.makedirs(stat_path, mode=0o777, exist_ok=True) +simulation_path = os.path.join(os.path.dirname(__file__), "../build/src/detsim") # Setup arguments for Sim event_list = set_arguments(read_config()) # Run detectorSimulation -run_sim(event_list, data_path, sim_path) +run_sim(event_list, data_path, simulation_path, stat_path) diff --git a/tests/sizeScan.bash b/tests/sizeScan.bash index 5950c42..99b291d 100755 --- a/tests/sizeScan.bash +++ b/tests/sizeScan.bash @@ -22,7 +22,7 @@ TTree t("t","t"); $(ls $resultbase/*/worker-dump-*.dat | awk '{print "t.ReadFile(\"" $0 "\",\"start/D:t/D:s/I\");"}'); Double_t *binsx=new Double_t[$n+1]; binsx[0]=0.75*(1<<4); -Double_t f=TMath::Power((1.5*(1<<25))/binsx[0],1./$n); +Double_t f=TMath::Power((1binsx = .5*(1<<25))/binsx[0],1./$n); for (Int_t i=1; i<=$n; i++) {binsx[i]= binsx[i-1]*f;} Double_t *binsy=new Double_t[101]; binsy[0]=1e-6; diff --git a/visualizer/visualizer/DataFrameCreator.py b/visualizer/visualizer/DataFrameCreator.py index 0df1e33..50d3e94 100644 --- a/visualizer/visualizer/DataFrameCreator.py +++ b/visualizer/visualizer/DataFrameCreator.py @@ -6,11 +6,13 @@ class DataFrameCreator: def __init__(self, f_path): self.folder_path = f_path - def create_dataframes(self): + def create_dataframes_data(self): dfs = {} - - for root, _, files in os.walk(self.folder_path): - for filename in files: + for root, _, folder in os.walk(self.folder_path): + if os.path.basename(root) == "statistics": + print("this was statistic") + continue + for filename in folder: if filename.endswith('.dat'): file_path = os.path.join(root, filename) dataframe_name = os.path.splitext(filename)[0] @@ -37,3 +39,6 @@ class DataFrameCreator: merged_dfs[outer_key] = merged_dataframe_sorted return merged_dfs + + + diff --git a/visualizer/visualizer/SeabornPlotter.py b/visualizer/visualizer/SeabornPlotter.py index 2c3eb5f..eb53e4e 100644 --- a/visualizer/visualizer/SeabornPlotter.py +++ b/visualizer/visualizer/SeabornPlotter.py @@ -13,30 +13,30 @@ class SeabornPlotter: self.current_plot = None def configure_plot(self, ax): - #ax.set_xscale('log') if self.name == "idle" or self.name == "wait": ax.set_yscale('symlog', linthresh=0.1) - - else: ax.set_yscale('log') - def plot(self): df = self.dataframe x = df['size'] y = df['duration'] title = "Procedure: {}".format(self.name) - f, ax = plt.subplots(figsize=(32, 18)) - sns.boxplot(x=x, y=y, color=".15", palette="light:b") + f, ax = plt.subplots(figsize=(16, 9)) + sns.boxenplot(x=x, y=y, color=".15", palette="light:b", scale="linear") self.configure_plot(ax) + # Anpassung der Achsenbeschriftungen und des Titels + ax.set_xlabel("Data size [Bytes]") + ax.set_ylabel("Time/Event [s]") plt.title(title) - plt.xlabel("Size of written data in ms") - plt.ylabel("Duration") - plt.savefig(title) + + plt.grid(True) + plt.xticks(rotation=45) + plt.savefig(title + ".svg", format='svg') plt.show() diff --git a/visualizer/visualizer/main.py b/visualizer/visualizer/main.py index 5afc90a..7235961 100644 --- a/visualizer/visualizer/main.py +++ b/visualizer/visualizer/main.py @@ -16,7 +16,7 @@ def main(): # Import Data creator = DataFrameCreator(data_path) - dataframes = creator.create_dataframes() + dataframes = creator.create_dataframes_data() for frame in dataframes.keys(): if not dataframes[frame].empty: # Setup Plotter -- GitLab