Loading main.py +2 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ CLI_CONFIG = SettingsConfigDict( ) def main(): def main(cli_args: list[str] | None = None): parser = argparse.ArgumentParser( description=""" ExaDigiT Resource Allocator & Power Simulator (RAPS) Loading Loading @@ -153,7 +153,7 @@ def main(): # TODO: move telemetry and other misc scripts into here args = parser.parse_args() args = parser.parse_args(cli_args) args.func(args) Loading tests/conftest.py +20 −3 Original line number Diff line number Diff line import pytest import uuid import shutil from glob import glob from pathlib import Path import gc def pytest_addoption(parser): Loading @@ -15,6 +19,19 @@ def pytest_runtest_setup(item): pytest.skip(reason) @pytest.fixture def random_id(): return f"test-{str(uuid.uuid4())[:8]}" @pytest.fixture() def sim_output(): """ Handles cleaning up output from the sim. Can also be used even if you aren't outputing anything to run garbage collection after the sim. """ out = f"test-output/test-{str(uuid.uuid4())[:8]}" yield out for file in glob(f"{out}*"): if Path(file).is_dir(): shutil.rmtree(file) else: Path(file).unlink() # Also force a garbage collection to clean up memory after running a simulation gc.collect() tests/systems/conftest.py +17 −10 Original line number Diff line number Diff line import pytest from tests.util import DATA_PATH @pytest.fixture(params=[ Loading Loading @@ -180,18 +181,24 @@ def system_config(system): @pytest.fixture def system_file(system): def system_files(system): files = { "40frontiers": [], "adastraMI250": ["AdastaJobsMI250_15days.parquet"], "frontier": ["slurm/joblive/date=2024-01-18/", "jobprofile/date=2024-01-18/"], "fugaku": ["21_04.parquet"], "gcloudv2": ["/v2/google_cluster_data_2011_sample"], "lassen": ["Lassen-Supercomputer-Job-Dataset"], "marconi100": ["job_table.parquet"], "mit_supercloud": ["202201"], "setonix": [""], "adastraMI250": ["adastraMI250/AdastaJobsMI250_15days.parquet"], "frontier": ["frontier/slurm/joblive/date=2024-01-18/", "frontier/jobprofile/date=2024-01-18/"], "fugaku": ["fugaku/21_04.parquet"], "gcloudv2": ["gcloud/v2/google_cluster_data_2011_sample"], "lassen": ["lassen/Lassen-Supercomputer-Job-Dataset"], "marconi100": ["marconi100/job_table.parquet"], "mit_supercloud": ["mit_supercloud/202201"], "setonix": [], "summit": [], "lumi": [] } return files.get(system, files) file_list = [DATA_PATH / f for f in files.get(system, [])] for file in file_list: assert file.exists(), \ f"File `{file}' does not exist. does ./data exist or is RAPS_DATA_DIR set?" return [str(f) for f in file_list] tests/systems/test_engine.py +1 −4 Original line number Diff line number Diff line import gc import pytest from raps.engine import Engine from raps.sim_config import SimConfig Loading @@ -15,7 +14,7 @@ pytestmark = [ ] def test_engine(system, system_config): def test_engine(system, system_config, sim_output): if not system_config.get("main", False): pytest.skip(f"{system} does not support basic main run.") Loading @@ -35,5 +34,3 @@ def test_engine(system, system_config): assert engine_stats['time simulated'] == '0:02:00' # TODO: More specific tests of values gc.collect() tests/systems/test_main_basic_run.py +2 −12 Original line number Diff line number Diff line import os import subprocess import gc import pytest from tests.util import PROJECT_ROOT Loading @@ -11,7 +10,7 @@ pytestmark = [ ] def test_main_basic_run(system, system_config, random_id): def test_main_basic_run(system, system_config, sim_output): if not system_config.get("main", False): pytest.skip(f"{system} does not support basic main run.") Loading @@ -20,15 +19,6 @@ def test_main_basic_run(system, system_config, random_id): "python", "main.py", "run", "--time", "1m", "--system", system, "-o", random_id "-o", sim_output ], capture_output=True, text=True, stdin=subprocess.DEVNULL) assert result.returncode == 0, f"Failed on {system}: {result.stderr}" subprocess.run( f"rm {random_id}.npz && rm -fr simulation_results/{random_id}", shell=True, check=True ) del result gc.collect() Loading
main.py +2 −2 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ CLI_CONFIG = SettingsConfigDict( ) def main(): def main(cli_args: list[str] | None = None): parser = argparse.ArgumentParser( description=""" ExaDigiT Resource Allocator & Power Simulator (RAPS) Loading Loading @@ -153,7 +153,7 @@ def main(): # TODO: move telemetry and other misc scripts into here args = parser.parse_args() args = parser.parse_args(cli_args) args.func(args) Loading
tests/conftest.py +20 −3 Original line number Diff line number Diff line import pytest import uuid import shutil from glob import glob from pathlib import Path import gc def pytest_addoption(parser): Loading @@ -15,6 +19,19 @@ def pytest_runtest_setup(item): pytest.skip(reason) @pytest.fixture def random_id(): return f"test-{str(uuid.uuid4())[:8]}" @pytest.fixture() def sim_output(): """ Handles cleaning up output from the sim. Can also be used even if you aren't outputing anything to run garbage collection after the sim. """ out = f"test-output/test-{str(uuid.uuid4())[:8]}" yield out for file in glob(f"{out}*"): if Path(file).is_dir(): shutil.rmtree(file) else: Path(file).unlink() # Also force a garbage collection to clean up memory after running a simulation gc.collect()
tests/systems/conftest.py +17 −10 Original line number Diff line number Diff line import pytest from tests.util import DATA_PATH @pytest.fixture(params=[ Loading Loading @@ -180,18 +181,24 @@ def system_config(system): @pytest.fixture def system_file(system): def system_files(system): files = { "40frontiers": [], "adastraMI250": ["AdastaJobsMI250_15days.parquet"], "frontier": ["slurm/joblive/date=2024-01-18/", "jobprofile/date=2024-01-18/"], "fugaku": ["21_04.parquet"], "gcloudv2": ["/v2/google_cluster_data_2011_sample"], "lassen": ["Lassen-Supercomputer-Job-Dataset"], "marconi100": ["job_table.parquet"], "mit_supercloud": ["202201"], "setonix": [""], "adastraMI250": ["adastraMI250/AdastaJobsMI250_15days.parquet"], "frontier": ["frontier/slurm/joblive/date=2024-01-18/", "frontier/jobprofile/date=2024-01-18/"], "fugaku": ["fugaku/21_04.parquet"], "gcloudv2": ["gcloud/v2/google_cluster_data_2011_sample"], "lassen": ["lassen/Lassen-Supercomputer-Job-Dataset"], "marconi100": ["marconi100/job_table.parquet"], "mit_supercloud": ["mit_supercloud/202201"], "setonix": [], "summit": [], "lumi": [] } return files.get(system, files) file_list = [DATA_PATH / f for f in files.get(system, [])] for file in file_list: assert file.exists(), \ f"File `{file}' does not exist. does ./data exist or is RAPS_DATA_DIR set?" return [str(f) for f in file_list]
tests/systems/test_engine.py +1 −4 Original line number Diff line number Diff line import gc import pytest from raps.engine import Engine from raps.sim_config import SimConfig Loading @@ -15,7 +14,7 @@ pytestmark = [ ] def test_engine(system, system_config): def test_engine(system, system_config, sim_output): if not system_config.get("main", False): pytest.skip(f"{system} does not support basic main run.") Loading @@ -35,5 +34,3 @@ def test_engine(system, system_config): assert engine_stats['time simulated'] == '0:02:00' # TODO: More specific tests of values gc.collect()
tests/systems/test_main_basic_run.py +2 −12 Original line number Diff line number Diff line import os import subprocess import gc import pytest from tests.util import PROJECT_ROOT Loading @@ -11,7 +10,7 @@ pytestmark = [ ] def test_main_basic_run(system, system_config, random_id): def test_main_basic_run(system, system_config, sim_output): if not system_config.get("main", False): pytest.skip(f"{system} does not support basic main run.") Loading @@ -20,15 +19,6 @@ def test_main_basic_run(system, system_config, random_id): "python", "main.py", "run", "--time", "1m", "--system", system, "-o", random_id "-o", sim_output ], capture_output=True, text=True, stdin=subprocess.DEVNULL) assert result.returncode == 0, f"Failed on {system}: {result.stderr}" subprocess.run( f"rm {random_id}.npz && rm -fr simulation_results/{random_id}", shell=True, check=True ) del result gc.collect()