Skip to content

Commit b5cbe4c

Browse files
committed
Upadte
1 parent dfddea4 commit b5cbe4c

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

graph_net/plot_St.py

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from 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"\nComparison 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

Comments
 (0)