Skip to content
Snippets Groups Projects
Commit 353c8b85 authored by Philipp Arras's avatar Philipp Arras
Browse files

output directory is always were the config file is located

parent 44099cae
Branches
Tags
1 merge request!37Draft: Observation: introduce __hash__
...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA) ...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA)
number of randomly sampled rows = 10000 number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output_cygnusa_stokesi
total iterations = 23 total iterations = 23
likelihood = points,data weights,full,* likelihood = points,data weights,full,*
constants = None,None,4*sky,None,* constants = None,None,4*sky,None,*
......
...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA),CYG-ALL-4811-8MHZ.ms:(Cy ...@@ -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 number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output
total iterations = 30 total iterations = 30
likelihood = points,data weights,full,* likelihood = points,data weights,full,*
constants = None,None,4*sky,5*weights,None,* constants = None,None,4*sky,5*weights,None,*
......
...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA),CYG-ALL-4811-8MHZ.ms:(Cy ...@@ -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 number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output
total iterations = 20 total iterations = 20
likelihood = data weights likelihood = data weights
constants = None constants = None
......
...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA) ...@@ -5,7 +5,6 @@ science target = CYG-ALL-2052-2MHZ.ms:(Cygnus-N$0$DATA)
number of randomly sampled rows = 10000 number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output_cygnusa_polarization
total iterations = 23 total iterations = 23
likelihood = points,data weights,full,* likelihood = points,data weights,full,*
constants = None,None,4*sky,5*weights,None,* constants = None,None,4*sky,5*weights,None,*
......
...@@ -5,7 +5,6 @@ science target = /data/gauss_001almacycle53noisy.ms:(gauss_001.alma.cycle5.3_0$0 ...@@ -5,7 +5,6 @@ science target = /data/gauss_001almacycle53noisy.ms:(gauss_001.alma.cycle5.3_0$0
#number of randomly sampled rows = 10000 #number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output
total iterations = 23 total iterations = 23
likelihood = data weights likelihood = data weights
constants = None constants = None
......
...@@ -5,7 +5,6 @@ science target = mf_test_data.npz ...@@ -5,7 +5,6 @@ science target = mf_test_data.npz
#number of randomly sampled rows = 10000 #number of randomly sampled rows = 10000
[optimization] [optimization]
output folder = output_mf
total iterations = 1 total iterations = 1
likelihood = data weights likelihood = data weights
constants = None constants = None
......
set -ex set -ex
INSTALL_DIR=~/temp4/cluster_playground CONFIG_FILE=`realpath cfgs/cygnusa_polarization_13360.cfg`
INSTALL_DIR=`dirname $CONFIG_FILE`
QUEUE=pascal QUEUE=pascal
RESOLVE_BRANCH=mpa_cluster RESOLVE_BRANCH=devel
NIFTY_BRANCH=NIFTy_8 NIFTY_BRANCH=NIFTy_8
# Possible values for pe # Possible values for pe
...@@ -15,7 +16,7 @@ TOTAL_THREADS=100 # Total number of threads across all MPI tasks ...@@ -15,7 +16,7 @@ TOTAL_THREADS=100 # Total number of threads across all MPI tasks
MEM=40G # Memory per Task MEM=40G # Memory per Task
MPI_NP=5 # Number of MPI processes 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 \ python3 generate_cluster_files.py \
--qname $QUEUE \ --qname $QUEUE \
--venv-dir $INSTALL_DIR \ --venv-dir $INSTALL_DIR \
...@@ -24,4 +25,4 @@ python3 generate_cluster_files.py \ ...@@ -24,4 +25,4 @@ python3 generate_cluster_files.py \
--mpi-np $MPI_NP \ --mpi-np $MPI_NP \
--total-threads $TOTAL_THREADS \ --total-threads $TOTAL_THREADS \
--mem $MEM \ --mem $MEM \
cfgs/cygnusa_polarization_13360.cfg --max-iteration 2 $CONFIG_FILE # --max-iteration 2
...@@ -47,14 +47,23 @@ def main(): ...@@ -47,14 +47,23 @@ def main():
nthreads = args.j nthreads = args.j
ift.set_nthreads(nthreads) 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 = ConfigParser()
cfg.read(args.config_file) cfg.read(args.config_file)
# /Read config file
# Read data
obs_calib_flux, obs_calib_phase, obs_science = parse_data_config(cfg) obs_calib_flux, obs_calib_phase, obs_science = parse_data_config(cfg)
if cfg["sky"]["polarization"] == "I": if cfg["sky"]["polarization"] == "I":
obs_science = [oo.restrict_to_stokesi().average_stokesi() for oo in obs_science] obs_science = [oo.restrict_to_stokesi().average_stokesi() for oo in obs_science]
assert len(obs_calib_flux) == len(obs_calib_phase) == 0 assert len(obs_calib_flux) == len(obs_calib_phase) == 0
# /Read data
# Model operators # Model operators
diffuse, additional_diffuse = sky_model_diffuse(cfg["sky"], obs_science, nthreads=nthreads) diffuse, additional_diffuse = sky_model_diffuse(cfg["sky"], obs_science, nthreads=nthreads)
...@@ -90,13 +99,11 @@ def main(): ...@@ -90,13 +99,11 @@ def main():
lhs["data weights"] = ImagingLikelihood(obs_science, sky, epsilon=epsilon, do_wgridding=do_wgridding, nthreads=nthreads) lhs["data weights"] = ImagingLikelihood(obs_science, sky, epsilon=epsilon, do_wgridding=do_wgridding, nthreads=nthreads)
# /Likelihoods # /Likelihoods
outdir = parse_optimize_kl_config(cfg["optimization"], lhs, domains)["output_directory"]
# Profiling # Profiling
position = 0.1 * ift.from_random(lhs["full"].domain) position = 0.1 * ift.from_random(lhs["full"].domain)
barrier(comm) barrier(comm)
if master: if master:
os.makedirs(outdir, exist_ok=True) os.makedirs(output_directory, exist_ok=True)
with ift.random.Context(12): with ift.random.Context(12):
ift.exec_time(lhs["full"], verbose=args.verbose) ift.exec_time(lhs["full"], verbose=args.verbose)
if args.profile_only: if args.profile_only:
...@@ -105,10 +112,11 @@ def main(): ...@@ -105,10 +112,11 @@ def main():
barrier(comm) barrier(comm)
# /Profiling # /Profiling
# Inference
def inspect_callback(sl, iglobal, position): 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) 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: if args.terminate is None:
terminate_callback = lambda iglobal: False terminate_callback = lambda iglobal: False
...@@ -119,7 +127,9 @@ def main(): ...@@ -119,7 +127,9 @@ def main():
get_comm = comm get_comm = comm
ift.optimize_kl(**parse_optimize_kl_config(cfg["optimization"], lhs, domains, inspect_callback), ift.optimize_kl(**parse_optimize_kl_config(cfg["optimization"], lhs, domains, inspect_callback),
plottable_operators=operators, comm=get_comm, overwrite=True, 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__": if __name__ == "__main__":
......
...@@ -79,7 +79,6 @@ def parse_optimize_kl_config(cfg, likelihood_dct, constants_dct={}, inspect_call ...@@ -79,7 +79,6 @@ def parse_optimize_kl_config(cfg, likelihood_dct, constants_dct={}, inspect_call
sampling_iterations = f_int(cfg["sampling iteration limit"]) sampling_iterations = f_int(cfg["sampling iteration limit"])
res["n_samples"] = lambda ii: f_int(cfg["n samples"])[ii] 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["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): def optimizer(ii):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment