From 353c8b85d51f8e7b6afd86b6d5dc2f91cc4ac73c Mon Sep 17 00:00:00 2001 From: Philipp Arras <c@philipp-arras.de> Date: Thu, 17 Mar 2022 15:37:54 +0100 Subject: [PATCH] output directory is always were the config file is located --- cfg/cygnusa.cfg | 1 - cfg/cygnusa_mf.cfg | 1 - cfg/cygnusa_mf_cfm.cfg | 1 - cfg/cygnusa_polarization.cfg | 1 - cfg/gauss_001almacycle53noisy.cfg | 1 - cfg/mf.cfg | 1 - .../cfg.txt} | 0 misc/mpa_cluster/total_script.sh | 9 ++++---- resolve/command_line/resolve.py | 22 ++++++++++++++----- resolve/config_utils.py | 1 - 10 files changed, 21 insertions(+), 17 deletions(-) rename misc/mpa_cluster/{cfgs/cygnusa_polarization_13360.cfg => sample_reconstruction/cfg.txt} (100%) diff --git a/cfg/cygnusa.cfg b/cfg/cygnusa.cfg index 94093854..ffafd0f0 100644 --- a/cfg/cygnusa.cfg +++ b/cfg/cygnusa.cfg @@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA) number of randomly sampled rows = 10000 [optimization] -output folder = output_cygnusa_stokesi total iterations = 23 likelihood = points,data weights,full,* constants = None,None,4*sky,None,* diff --git a/cfg/cygnusa_mf.cfg b/cfg/cygnusa_mf.cfg index 5945386a..4651a089 100644 --- a/cfg/cygnusa_mf.cfg +++ b/cfg/cygnusa_mf.cfg @@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA),CYG-ALL-4811-8MHZ.ms:(Cy number of randomly sampled rows = 10000 [optimization] -output folder = output total iterations = 30 likelihood = points,data weights,full,* constants = None,None,4*sky,5*weights,None,* diff --git a/cfg/cygnusa_mf_cfm.cfg b/cfg/cygnusa_mf_cfm.cfg index 84bb5f19..18055b65 100644 --- a/cfg/cygnusa_mf_cfm.cfg +++ b/cfg/cygnusa_mf_cfm.cfg @@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA),CYG-ALL-4811-8MHZ.ms:(Cy number of randomly sampled rows = 10000 [optimization] -output folder = output total iterations = 20 likelihood = data weights constants = None diff --git a/cfg/cygnusa_polarization.cfg b/cfg/cygnusa_polarization.cfg index 1b2701d8..d642d183 100644 --- a/cfg/cygnusa_polarization.cfg +++ b/cfg/cygnusa_polarization.cfg @@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA) number of randomly sampled rows = 10000 [optimization] -output folder = output_cygnusa_polarization total iterations = 23 likelihood = points,data weights,full,* constants = None,None,4*sky,5*weights,None,* diff --git a/cfg/gauss_001almacycle53noisy.cfg b/cfg/gauss_001almacycle53noisy.cfg index 82e6d0e2..c3ee9493 100644 --- a/cfg/gauss_001almacycle53noisy.cfg +++ b/cfg/gauss_001almacycle53noisy.cfg @@ -5,7 +5,6 @@ science target = /data/gauss_001almacycle53noisy.ms:(gauss_001.alma.cycle5.3_0$0 #number of randomly sampled rows = 10000 [optimization] -output folder = output total iterations = 23 likelihood = data weights constants = None diff --git a/cfg/mf.cfg b/cfg/mf.cfg index 4942663b..146b5e68 100644 --- a/cfg/mf.cfg +++ b/cfg/mf.cfg @@ -5,7 +5,6 @@ science target = mf_test_data.npz #number of randomly sampled rows = 10000 [optimization] -output folder = output_mf total iterations = 1 likelihood = data weights constants = None diff --git a/misc/mpa_cluster/cfgs/cygnusa_polarization_13360.cfg b/misc/mpa_cluster/sample_reconstruction/cfg.txt similarity index 100% rename from misc/mpa_cluster/cfgs/cygnusa_polarization_13360.cfg rename to misc/mpa_cluster/sample_reconstruction/cfg.txt diff --git a/misc/mpa_cluster/total_script.sh b/misc/mpa_cluster/total_script.sh index 7ecc87ef..7085f31c 100644 --- a/misc/mpa_cluster/total_script.sh +++ b/misc/mpa_cluster/total_script.sh @@ -1,8 +1,9 @@ set -ex -INSTALL_DIR=~/temp4/cluster_playground +CONFIG_FILE=`realpath cfgs/cygnusa_polarization_13360.cfg` +INSTALL_DIR=`dirname $CONFIG_FILE` QUEUE=pascal -RESOLVE_BRANCH=mpa_cluster +RESOLVE_BRANCH=devel NIFTY_BRANCH=NIFTy_8 # Possible values for pe @@ -15,7 +16,7 @@ TOTAL_THREADS=100 # Total number of threads across all MPI tasks MEM=40G # Memory per Task MPI_NP=5 # Number of MPI processes -#./prepare_environment.sh $INSTALL_DIR $QUEUE $RESOLVE_BRANCH $NIFTY_BRANCH +./prepare_environment.sh $INSTALL_DIR $QUEUE $RESOLVE_BRANCH $NIFTY_BRANCH python3 generate_cluster_files.py \ --qname $QUEUE \ --venv-dir $INSTALL_DIR \ @@ -24,4 +25,4 @@ python3 generate_cluster_files.py \ --mpi-np $MPI_NP \ --total-threads $TOTAL_THREADS \ --mem $MEM \ - cfgs/cygnusa_polarization_13360.cfg --max-iteration 2 + $CONFIG_FILE # --max-iteration 2 diff --git a/resolve/command_line/resolve.py b/resolve/command_line/resolve.py index 74546b23..2b94aaba 100644 --- a/resolve/command_line/resolve.py +++ b/resolve/command_line/resolve.py @@ -47,14 +47,23 @@ def main(): nthreads = args.j ift.set_nthreads(nthreads) + # Read config file + if not os.path.isfile(args.config_file): + raise RuntimeError(f"Config file {args.config_file} not found") + output_directory = os.path.split(args.config_file)[0] + if output_directory == "": + output_directory = "." cfg = ConfigParser() cfg.read(args.config_file) + # /Read config file + # Read data obs_calib_flux, obs_calib_phase, obs_science = parse_data_config(cfg) if cfg["sky"]["polarization"] == "I": obs_science = [oo.restrict_to_stokesi().average_stokesi() for oo in obs_science] assert len(obs_calib_flux) == len(obs_calib_phase) == 0 + # /Read data # Model operators diffuse, additional_diffuse = sky_model_diffuse(cfg["sky"], obs_science, nthreads=nthreads) @@ -90,13 +99,11 @@ def main(): lhs["data weights"] = ImagingLikelihood(obs_science, sky, epsilon=epsilon, do_wgridding=do_wgridding, nthreads=nthreads) # /Likelihoods - outdir = parse_optimize_kl_config(cfg["optimization"], lhs, domains)["output_directory"] - # Profiling position = 0.1 * ift.from_random(lhs["full"].domain) barrier(comm) if master: - os.makedirs(outdir, exist_ok=True) + os.makedirs(output_directory, exist_ok=True) with ift.random.Context(12): ift.exec_time(lhs["full"], verbose=args.verbose) if args.profile_only: @@ -105,10 +112,11 @@ def main(): barrier(comm) # /Profiling + # Inference def inspect_callback(sl, iglobal, position): - visualize_weighted_residuals(obs_science, sl, iglobal, sky, weights, outdir, io=master, + visualize_weighted_residuals(obs_science, sl, iglobal, sky, weights, output_directory, io=master, do_wgridding=do_wgridding, epsilon=epsilon, nthreads=nthreads) - plot_sky(sl.average(sky), os.path.join(outdir, f"sky/sky_{iglobal}.pdf")) + plot_sky(sl.average(sky), os.path.join(output_directory, f"sky/sky_{iglobal}.pdf")) if args.terminate is None: terminate_callback = lambda iglobal: False @@ -119,7 +127,9 @@ def main(): get_comm = comm ift.optimize_kl(**parse_optimize_kl_config(cfg["optimization"], lhs, domains, inspect_callback), plottable_operators=operators, comm=get_comm, overwrite=True, - plot_latent=True, resume=args.resume, terminate_callback=terminate_callback) + plot_latent=True, resume=args.resume, terminate_callback=terminate_callback, + output_directory=output_directory) + # /Inference if __name__ == "__main__": diff --git a/resolve/config_utils.py b/resolve/config_utils.py index b2d599c6..b55d6cc6 100644 --- a/resolve/config_utils.py +++ b/resolve/config_utils.py @@ -79,7 +79,6 @@ def parse_optimize_kl_config(cfg, likelihood_dct, constants_dct={}, inspect_call sampling_iterations = f_int(cfg["sampling iteration limit"]) res["n_samples"] = lambda ii: f_int(cfg["n samples"])[ii] res["sampling_iteration_controller"] = lambda ii: ift.AbsDeltaEnergyController(0.05, iteration_limit=sampling_iterations[ii], convergence_level=3, name="Sampling") - res["output_directory"] = os.path.expanduser(cfg["output folder"]) def optimizer(ii): -- GitLab