Add booster strong scaling configs
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import math
|
||||
|
||||
|
||||
def print_table(data, spec):
|
||||
@@ -31,6 +32,9 @@ if __name__ == "__main__":
|
||||
"mean_time": lambda job: job["means"]["TimeStep"],
|
||||
"std_time": lambda job: job["stds"]["TimeStep"],
|
||||
"speedup": lambda job: jobs[0]["means"]["TimeStep"] / job["means"]["TimeStep"],
|
||||
"speedup_std": lambda job: jobs[0]["stds"]["TimeStep"] / job["means"]["TimeStep"],
|
||||
# Standard deviation scaled to speedup
|
||||
"speedup_std": lambda job: (jobs[0]["means"]["TimeStep"] / job["means"]["TimeStep"]) * (job["stds"]["TimeStep"] / job["means"]["TimeStep"]),
|
||||
# 95% confidence interval
|
||||
"speedup_error": lambda job: (jobs[0]["means"]["TimeStep"] / job["means"]["TimeStep"]) * (job["stds"]["TimeStep"] / job["means"]["TimeStep"]) / math.sqrt(len(jobs)) * 1.96,
|
||||
}
|
||||
print_table(jobs, scaling_spec)
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import copy
|
||||
import json
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
SIZE = [384, 384, 384]
|
||||
|
||||
with (Path(__file__).parent.parent / "templates" / "strong-booster.json").open(encoding="utf8") as f:
|
||||
template = json.load(f)
|
||||
|
||||
configs = [
|
||||
[ 1, 1, 1],
|
||||
[ 1, 1, 2],
|
||||
[ 1, 2, 2],
|
||||
[ 2, 2, 2],
|
||||
[ 2, 2, 4],
|
||||
[ 2, 4, 4],
|
||||
[ 4, 4, 4],
|
||||
[ 4, 4, 8],
|
||||
]
|
||||
|
||||
out_path = Path(__file__).parent.parent / "generated" / "config"
|
||||
|
||||
for c in configs:
|
||||
nc = copy.deepcopy(template)
|
||||
nc["Geometry"]["blockcount"] = c
|
||||
nc["Geometry"]["blocksize"] = [bs // bc for bc, bs in zip(c, SIZE)]
|
||||
|
||||
nc_out_path = out_path / f"strong-booster-{c[0]:02}-{c[1]:02}-{c[2]:02}.json"
|
||||
print(f"Dumping {(c[0] * c[1] * c[2])} to {nc_out_path}")
|
||||
with nc_out_path.open("w", encoding="utf8") as f:
|
||||
json.dump(nc, f)
|
||||
@@ -76,6 +76,7 @@ if __name__ == "__main__":
|
||||
p = argparse.ArgumentParser(description="Load and analzye data from nastja timing files")
|
||||
p.add_argument("jobid", nargs="+")
|
||||
p.add_argument("--prettify", action="store_true")
|
||||
p.add_argument("--dump-timings", action="store_true")
|
||||
args = p.parse_args()
|
||||
|
||||
results = []
|
||||
@@ -99,6 +100,8 @@ if __name__ == "__main__":
|
||||
jobs.append(last_step)
|
||||
|
||||
array_mean_timings = load_array_mean_timings(jobid, excluded_array_indices)
|
||||
if args.dump_timings:
|
||||
print(array_mean_timings, file=sys.stderr)
|
||||
|
||||
results.append({
|
||||
"jobid": jobid,
|
||||
|
||||
Reference in New Issue
Block a user