Skip to content

Commit a32d394

Browse files
authored
Merge pull request #846 from NVIDIA/ipod/cloudai-24/dse-report
DSE reporting
2 parents e330d84 + 68c6d35 commit a32d394

13 files changed

Lines changed: 1521 additions & 156 deletions

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ cloudai generate-report\
8484
--result-dir /path/to/result_directory
8585
```
8686

87+
Generated artifacts depend on the scenario contents:
88+
89+
- A plain scenario status report is written as `<scenario>.html`.
90+
- If the scenario contains DSE test cases, an additional DSE-specific report is written as `<scenario>-dse-report.html`.
91+
- For DSE runs, the best discovered test configuration is also written as `<dse-case>/<iteration>/<dse-case>.toml`.
92+
- Custom reporters could generate additional artifacts.
93+
8794
### install
8895
This mode installs test prerequisites. For more details, please refer to the [installation guide](https://nvidia.github.io/cloudai/workloads_requirements_installation.html). It automatically runs as part of the `run` mode if prerequisites are not met.
8996

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,8 @@ root_package = "cloudai"
145145
[[tool.importlinter.contracts]]
146146
name = "Report generator is leaf dependency"
147147
type = "forbidden"
148-
forbidden_modules = ["cloudai.systems", "cloudai.workloads", "cloudai.cli"]
149-
allow_indirect_imports = true # allow "from cloudai.core import ..."
148+
forbidden_modules = ["cloudai.workloads", "cloudai.cli"]
149+
allow_indirect_imports = true # allow "from cloudai.core import ..."
150150
source_modules = ["cloudai.report_generator"]
151151

152152
[[tool.importlinter.contracts]]

src/cloudai/_core/registry.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# SPDX-FileCopyrightText: NVIDIA CORPORATION & AFFILIATES
2-
# Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# Copyright (c) 2024-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
# SPDX-License-Identifier: Apache-2.0
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -228,7 +228,8 @@ def report_order(k: str) -> int:
228228
return {
229229
"per_test": 0, # first
230230
"status": 2,
231-
"tarball": 3, # last
231+
"dse": 3,
232+
"tarball": 4, # last
232233
}.get(k, 1)
233234

234235
return sorted(self.scenario_reports.items(), key=lambda kv: report_order(kv[0]))

src/cloudai/registration.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def register_all():
4646
)
4747
from cloudai.core import Registry
4848
from cloudai.models.scenario import ReportConfig
49-
from cloudai.reporter import PerTestReporter, StatusReporter, TarballReporter
49+
from cloudai.reporter import DSEReporter, PerTestReporter, StatusReporter, TarballReporter
5050

5151
# Import systems
5252
from cloudai.systems.kubernetes import KubernetesInstaller, KubernetesRunner, KubernetesSystem
@@ -303,6 +303,7 @@ def register_all():
303303

304304
Registry().add_scenario_report("per_test", PerTestReporter, ReportConfig(enable=True))
305305
Registry().add_scenario_report("status", StatusReporter, ReportConfig(enable=True))
306+
Registry().add_scenario_report("dse", DSEReporter, ReportConfig(enable=True))
306307
Registry().add_scenario_report("tarball", TarballReporter, ReportConfig(enable=True))
307308
Registry().add_scenario_report(
308309
"nixl_bench_summary",

0 commit comments

Comments
 (0)