55from graph_net import analysis_util
66
77
8- def plot_S_results (s_scores : dict , cli_args : argparse .Namespace ):
8+ def plot_St (s_scores : dict , cli_args : argparse .Namespace ):
99 """
1010 Plot S(t) curve
1111 """
@@ -62,13 +62,37 @@ def plot_S_results(s_scores: dict, cli_args: argparse.Namespace):
6262 print (f"\n Comparison plot saved to { output_file } " )
6363
6464
65- def main ():
66- """Main execution function for plotting S(t)."""
65+ def main (args ):
66+ # 1. Scan folders to get data
67+ all_results = analysis_util .scan_all_folders (args .benchmark_path )
68+ if not all_results :
69+ print ("No valid data found. Exiting." )
70+ return
71+
72+ # 2. Calculate scores for each curve
73+ all_s_scores = {}
74+ for folder_name , samples in all_results .items ():
75+ s_scores , _ = analysis_util .calculate_s_scores (
76+ samples ,
77+ folder_name ,
78+ negative_speedup_penalty = args .negative_speedup_penalty ,
79+ fpdb = args .fpdb ,
80+ )
81+ all_s_scores [folder_name ] = s_scores
82+
83+ # 3. Plot the results
84+ if any (all_s_scores .values ()):
85+ os .makedirs (args .output_dir , exist_ok = True )
86+ plot_St (all_s_scores , args )
87+ else :
88+ print ("No S(t) scores were calculated. Skipping plot generation." )
89+
90+
91+ if __name__ == "__main__" :
6792 parser = argparse .ArgumentParser (
6893 description = "Calculate and plot S(t) scores from benchmark results." ,
6994 formatter_class = argparse .RawTextHelpFormatter ,
7095 )
71- # Add arguments
7296 parser .add_argument (
7397 "--benchmark-path" ,
7498 type = str ,
@@ -94,31 +118,4 @@ def main():
94118 help = "Base penalty for severe errors (e.g., crashes, correctness failures)." ,
95119 )
96120 args = parser .parse_args ()
97-
98- # 1. Scan folders to get data
99- all_results = analysis_util .scan_all_folders (args .benchmark_path )
100- if not all_results :
101- print ("No valid data found. Exiting." )
102- return
103-
104- # 2. Calculate scores for each curve
105- all_s_scores = {}
106- for folder_name , samples in all_results .items ():
107- s_scores , _ = analysis_util .calculate_s_scores (
108- samples ,
109- folder_name ,
110- negative_speedup_penalty = args .negative_speedup_penalty ,
111- fpdb = args .fpdb ,
112- )
113- all_s_scores [folder_name ] = s_scores
114-
115- # 3. Plot the results
116- if any (all_s_scores .values ()):
117- os .makedirs (args .output_dir , exist_ok = True )
118- plot_S_results (all_s_scores , args )
119- else :
120- print ("No S(t) scores were calculated. Skipping plot generation." )
121-
122-
123- if __name__ == "__main__" :
124- main ()
121+ main (args )
0 commit comments