From 28652c87ea586ccca15a163ae6a7ee64fc6bb268 Mon Sep 17 00:00:00 2001 From: lkugler <lukas.kugler@gmail.com> Date: Wed, 15 Mar 2023 10:36:51 +0100 Subject: [PATCH] improve loading config --- dartwrf/workflows.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/dartwrf/workflows.py b/dartwrf/workflows.py index 89f614b..0b711bb 100644 --- a/dartwrf/workflows.py +++ b/dartwrf/workflows.py @@ -25,13 +25,14 @@ def dict_to_py(d, outfile): class WorkFlows(object): def __init__(self, exp_config='cfg.py', server_config='server.py'): - """Set up the experiment folder in `archivedir`, copy config files, backup scripts. + """Set up the experiment folder in `archivedir`. Args: exp (str): Path to exp config file config (str): Path to the cluster config file """ - # At first, load config from present folder (later from scripts_rundir) + # in WorkFlows, we load the config from the git cloned folder + # in all other dartwrf scripts, load the config from cluster.scripts_rundir # exp = __import__('config/'+exp_config) self.cluster = importlib.import_module('config.'+server_config.strip('.py')).cluster @@ -84,10 +85,14 @@ class WorkFlows(object): except: raise - # Copy config files - shutil.copy('config/'+exp_config, self.cluster.scripts_rundir+'/cfg.py') - shutil.copy('config/'+server_config, self.cluster.scripts_rundir+'/cluster.py') # whatever server, the config name is always the same! - shutil.copy('config/'+server_config, 'config/cluster.py') # whatever server, the config name is always the same! + # later, we can load the exp cfg with `from config.cfg import exp` + shutil.copy('config/'+exp_config, self.cluster.scripts_rundir+'/config/cfg.py') + + # later, we can load the cluster cfg with `from config.cluster import cluster` + shutil.copy('config/'+server_config, self.cluster.scripts_rundir+'/config/cluster.py') # whatever server, the config name is always the same! + + # probably not needed + # shutil.copy('config/'+server_config, 'config/cluster.py') # whatever server, the config name is always the same! def prepare_WRFrundir(self, init_time): """Create WRF/run directories and wrfinput files @@ -138,7 +143,6 @@ class WorkFlows(object): if input_is_restart: # start WRF in restart mode """ - id = depends_on restart_flag = '.false.' if not input_is_restart else '.true.' # if False: # doesnt work with restarts at the moment# first_minute: @@ -180,7 +184,7 @@ class WorkFlows(object): if output_restart_interval: args.append('--restart_interval='+str(int(float(output_restart_interval)))) - id = self.cluster.run_job(' '.join(args), "preWRF", cfg_update=dict(time="2"), depends_on=[id]) + id = self.cluster.run_job(' '.join(args), "preWRF", cfg_update=dict(time="2"), depends_on=[depends_on]) cmd = script_to_str(self.cluster.run_WRF).replace('<exp.expname>', exp.expname ).replace('<cluster.wrf_rundir_base>', self.cluster.wrf_rundir_base) @@ -240,7 +244,7 @@ class WorkFlows(object): def create_satimages(self, init_time, depends_on=None): cmd = self.cluster.python_verif+' ~/RTTOV-WRF/run_init.py '+self.cluster.archivedir+init_time.strftime('/%Y-%m-%d_%H:%M/') - id = self.cluster.run_job(cmd, "RTTOV", cfg_update={"ntasks": "12", "time": "80", "mem": "180G"}, depends_on=[depends_on]) + id = self.cluster.run_job(cmd, "RTTOV", cfg_update={"ntasks": "12", "time": "80", "mem": "200G"}, depends_on=[depends_on]) return id -- GitLab