فهرست منبع

added new compare and a HI2LI model

Snej69420 3 ماه پیش
والد
کامیت
aea2e0a0ff
2فایلهای تغییر یافته به همراه0 افزوده شده و 108 حذف شده
  1. 0 108
      devstone/CompareDSDEVS.py
  2. 0 0
      devstone/compare.py

+ 0 - 108
devstone/CompareDSDEVS.py

@@ -1,108 +0,0 @@
-#!/usr/bin/env python3
-"""
-Compares DEVStone benchmark results for different model types (LI, HI, HO, DynamicLIHI, etc.)
-based on varying width and depth.
-
-Input CSV format (same as original):
-  model_type, depth, width, run, creation_time, setup_time, simulation_time
-
-Produces:
-  - Scalability plots (Width & Depth)
-  - Overhead composition
-  - Summary statistics table
-"""
-
-import pandas as pd
-import matplotlib.pyplot as plt
-import seaborn as sns
-from pathlib import Path
-
-# === CONFIGURATION ===
-INPUT_FILE = "./Results-PyPDEVS/DEVSTONE-dynamic.csv"
-OUTPUT_DIR = Path("./Results-PyPDEVS")
-OUTPUT_DIR.mkdir(exist_ok=True)
-
-# === LOAD DATA ===
-data = pd.read_csv(INPUT_FILE)
-if "variant" not in data.columns:
-    data["variant"] = "Default"
-
-# Compute total time
-data["total_time"] = data["creation_time"] + data["setup_time"] + data["simulation_time"]
-
-# Aggregate mean & std
-agg = (
-    data.groupby(["model_type", "depth", "width"], as_index=False)
-    .agg({
-        "creation_time": ["mean", "std"],
-        "setup_time": ["mean", "std"],
-        "simulation_time": ["mean", "std"],
-        "total_time": ["mean", "std"],
-    })
-)
-agg.columns = ["_".join(col).rstrip("_") for col in agg.columns.values]
-
-sns.set_theme(style="whitegrid", font_scale=1.2)
-
-# === Scalability with Width ===
-for depth in sorted(agg["depth"].unique()):
-    subset = agg[agg["depth"] == depth]
-    plt.figure(figsize=(7, 5))
-    sns.lineplot(
-        data=subset, x="width", y="simulation_time_mean",
-        hue="model_type", marker="o"
-    )
-    plt.title(f"Scalability with Width – Depth {depth}")
-    plt.xlabel("Width (# submodels per level)")
-    plt.ylabel("Mean Simulation Time (s)")
-    plt.tight_layout()
-    plt.savefig(OUTPUT_DIR / f"scalability_width_depth{depth}.png")
-    plt.close()
-
-# === Scalability with Depth ===
-for width in sorted(agg["width"].unique()):
-    subset = agg[agg["width"] == width]
-    plt.figure(figsize=(7, 5))
-    sns.lineplot(
-        data=subset, x="depth", y="simulation_time_mean",
-        hue="model_type", marker="o"
-    )
-    plt.title(f"Scalability with Depth – Width {width}")
-    plt.xlabel("Depth (levels)")
-    plt.ylabel("Mean Simulation Time (s)")
-    plt.tight_layout()
-    plt.savefig(OUTPUT_DIR / f"scalability_depth_width{width}.png")
-    plt.close()
-
-# === Overhead Composition per Model Type ===
-comp = data.melt(
-    id_vars=["model_type", "depth", "width"],
-    value_vars=["creation_time", "setup_time", "simulation_time"],
-    var_name="phase",
-    value_name="time"
-)
-plt.figure(figsize=(9, 6))
-sns.barplot(
-    data=comp, x="model_type", y="time", hue="phase",
-    estimator="mean", errorbar="sd"
-)
-plt.title("Average Overhead Composition by Model Type")
-plt.ylabel("Mean time (s)")
-plt.tight_layout()
-plt.savefig(OUTPUT_DIR / "overhead_composition_models.png")
-plt.close()
-
-# === Summary Table ===
-summary = (
-    data.groupby("model_type", as_index=False)
-    .agg({
-        "creation_time": "mean",
-        "setup_time": "mean",
-        "simulation_time": "mean",
-        "total_time": "mean"
-    })
-    .sort_values("total_time")
-)
-summary.to_csv(OUTPUT_DIR / "summary_table.csv", index=False)
-
-print(f"\n✅ Analysis complete. Results saved in: {OUTPUT_DIR}/")

+ 0 - 0
devstone/compare.py