in benchmarking/run_lab.py [0:0]
def _downloadFiles(self):
"""Download benchmark files."""
try:
# Download models
self.job["models_location"] = []
getLogger().info(
f"Downloading models for benchmark {self.job['identifier']} id {self.job['id']}"
)
path = self._saveBenchmarks()
location = self.benchmark_downloader.run(path)
self.job["models_location"].extend(location)
# Download programs
if "info" in self.job["benchmarks"]:
getLogger().info(
f"Downloading programs for benchmark {self.job['identifier']} id {self.job['id']}"
)
if "treatment" not in self.job["benchmarks"]["info"]:
getLogger().error(
"Field treatment " 'must exist in job["benchmarks"]'
)
elif "programs" not in self.job["benchmarks"]["info"]["treatment"]:
getLogger().error(
'Field "program" must exist in '
'job["benchmarks"]["info"]["treatment"]'
)
else:
treatment_info = self.job["benchmarks"]["info"]["treatment"]
getLogger().info("Downloading treatment binary")
treatment_locations = self._downloadBinaries(treatment_info)
self.job["programs_location"] = treatment_locations
if "control" in self.job["benchmarks"]["info"]:
if "programs" not in self.job["benchmarks"]["info"]["control"]:
getLogger().error(
'Field "program" must exist in '
'job["benchmarks"]["info"]["control"]'
)
else:
control_info = self.job["benchmarks"]["info"]["control"]
getLogger().info("Downloading control binary")
control_locations = self._downloadBinaries(control_info)
self.job["programs_location"].extend(control_locations)
except Exception:
raise DownloadException(
f"Failed to download files for benchmark {self.job['identifier']} id {self.job['id']}"
)
finally:
gc.collect()