From bf15f4a7b7f59504983624e7d512ed7474372032 Mon Sep 17 00:00:00 2001 From: Deepak Mallubhotla Date: Thu, 13 Apr 2023 20:17:48 -0500 Subject: [PATCH] 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