From 12903b2540cefb040174d230bc0d04719a6dc1b7 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Thu, 13 Apr 2023 20:16:33 -0500 Subject: [PATCH 1/3] feat: adds option to cap core count for temp aware run --- deepdog/temp_aware_real_spectrum_run.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deepdog/temp_aware_real_spectrum_run.py b/deepdog/temp_aware_real_spectrum_run.py index 73d526f..0d6c5de 100644 --- a/deepdog/temp_aware_real_spectrum_run.py +++ b/deepdog/temp_aware_real_spectrum_run.py @@ -90,6 +90,7 @@ class TempAwareRealSpectrumRun: max_monte_carlo_cycles_steps: int = 10, chunksize: int = CHUNKSIZE, initial_seed: int = 12345, + cap_core_count: int = 0, ) -> None: self.measurements_dict = measurements_dict self.dot_inputs_dict = { @@ -126,6 +127,8 @@ class TempAwareRealSpectrumRun: self.filename = f"{timestamp}-{filename_slug}.realdata.{ff_string}.bayesrun.csv" self.initial_seed = initial_seed + self.cap_core_count = cap_core_count + def go(self) -> None: with open(self.filename, "a", newline="") as outfile: writer = csv.DictWriter(outfile, fieldnames=self.csv_fields, dialect="unix") @@ -151,6 +154,8 @@ class TempAwareRealSpectrumRun: ): _logger.debug(f"Doing model #{model_count}: {model_name}") core_count = multiprocessing.cpu_count() - 1 or 1 + if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): + core_count = self.cap_core_count with multiprocessing.Pool(core_count) as pool: cycle_count = 0 cycle_success = 0 From bf15f4a7b7f59504983624e7d512ed7474372032 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Thu, 13 Apr 2023 20:17:48 -0500 Subject: [PATCH 2/3] feat: adds option to cap core count for real spectrum run --- deepdog/real_spectrum_run.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deepdog/real_spectrum_run.py b/deepdog/real_spectrum_run.py index be4d71a..c70c0ce 100644 --- a/deepdog/real_spectrum_run.py +++ b/deepdog/real_spectrum_run.py @@ -88,6 +88,7 @@ class RealSpectrumRun: chunksize: int = CHUNKSIZE, initial_seed: int = 12345, use_fast_filter: bool = True, + cap_core_count: int = 0, ) -> None: self.measurements = measurements self.dot_inputs = [(measure.r, measure.f) for measure in self.measurements] @@ -123,6 +124,8 @@ class RealSpectrumRun: self.filename = f"{timestamp}-{filename_slug}.realdata.{ff_string}.bayesrun.csv" self.initial_seed = initial_seed + self.cap_core_count = cap_core_count + def go(self) -> None: with open(self.filename, "a", newline="") as outfile: writer = csv.DictWriter(outfile, fieldnames=self.csv_fields, dialect="unix") @@ -145,6 +148,8 @@ class RealSpectrumRun: ): _logger.debug(f"Doing model #{model_count}: {model_name}") core_count = multiprocessing.cpu_count() - 1 or 1 + if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): + core_count = self.cap_core_count with multiprocessing.Pool(core_count) as pool: cycle_count = 0 cycle_success = 0 From 1cf44541531541088198bd4599d467df3e1acbcf Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Thu, 13 Apr 2023 20:21:17 -0500 Subject: [PATCH 3/3] fix: avoids redefinition of core count in loop --- deepdog/real_spectrum_run.py | 7 ++++--- deepdog/temp_aware_real_spectrum_run.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/deepdog/real_spectrum_run.py b/deepdog/real_spectrum_run.py index c70c0ce..5b682dd 100644 --- a/deepdog/real_spectrum_run.py +++ b/deepdog/real_spectrum_run.py @@ -143,13 +143,14 @@ class RealSpectrumRun: results = [] _logger.debug("Going to iterate over models now") + core_count = multiprocessing.cpu_count() - 1 or 1 + if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): + core_count = self.cap_core_count + _logger.info(f"Using {core_count} cores") for model_count, (model, model_name) in enumerate( zip(self.models, self.model_names) ): _logger.debug(f"Doing model #{model_count}: {model_name}") - core_count = multiprocessing.cpu_count() - 1 or 1 - if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): - core_count = self.cap_core_count with multiprocessing.Pool(core_count) as pool: cycle_count = 0 cycle_success = 0 diff --git a/deepdog/temp_aware_real_spectrum_run.py b/deepdog/temp_aware_real_spectrum_run.py index 0d6c5de..fd08b9d 100644 --- a/deepdog/temp_aware_real_spectrum_run.py +++ b/deepdog/temp_aware_real_spectrum_run.py @@ -149,13 +149,14 @@ class TempAwareRealSpectrumRun: results = [] _logger.debug("Going to iterate over models now") + core_count = multiprocessing.cpu_count() - 1 or 1 + if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): + core_count = self.cap_core_count + _logger.info(f"Using {core_count} cores") for model_count, (model, model_name) in enumerate( zip(self.models, self.model_names) ): _logger.debug(f"Doing model #{model_count}: {model_name}") - core_count = multiprocessing.cpu_count() - 1 or 1 - if (self.cap_core_count >= 1) and (self.cap_core_count < core_count): - core_count = self.cap_core_count with multiprocessing.Pool(core_count) as pool: cycle_count = 0 cycle_success = 0