initial commit for public eval
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
"""Sender + receiver CPU per (experiment, solution): mean and sample SD in %."""
|
||||
from pathlib import Path
|
||||
|
||||
import pandas as pd
|
||||
|
||||
|
||||
METRICS = {
|
||||
"sender-cpu": "cpu_sender",
|
||||
"receiver-cpu": "cpu_receiver",
|
||||
}
|
||||
|
||||
|
||||
def compute(derived: Path) -> tuple[dict[str, str], list[Path]]:
|
||||
out: dict[str, str] = {}
|
||||
sources: list[Path] = []
|
||||
for exp_dir in sorted(p for p in derived.iterdir() if p.is_dir()):
|
||||
runs = exp_dir / "runs.csv"
|
||||
if not runs.exists():
|
||||
continue
|
||||
sources.append(runs)
|
||||
df = pd.read_csv(runs)
|
||||
for sol, sub in df.groupby("solution", sort=True):
|
||||
for metric, col in METRICS.items():
|
||||
x = sub[col].to_numpy()
|
||||
base = f"{exp_dir.name}/{metric}/{sol}"
|
||||
out[f"{base}/mean-pct"] = f"{x.mean():.2f}"
|
||||
out[f"{base}/sd-pct"] = f"{x.std(ddof=1):.2f}"
|
||||
return out, sources
|
||||
Reference in New Issue
Block a user