diff --git a/Makefile b/Makefile index 1c36fcffa9e89c90f93dee604047366e7ebbe3a8..59d083b73991330a724b9929ee4fb778f57b90a2 100644 --- a/Makefile +++ b/Makefile @@ -27,6 +27,13 @@ help: @echo "Modify the file param.cfg to select the branch inside the nemo mirror that you would like to profile." @echo "" @echo +################################################### +# Experiment recipes specified in param.cfg file +experiment: + for recipe in ${experiment_recipes} ; do \ + echo $${recipe} ; \ + $(MAKE) $${recipe} ; \ + done #################################################### # NEMO Sources diff --git a/experiment_launcher.cmd b/experiment_launcher.cmd new file mode 100755 index 0000000000000000000000000000000000000000..62bbbbd6a3918b820ca5a2ddcf885c05f95791fa --- /dev/null +++ b/experiment_launcher.cmd @@ -0,0 +1,22 @@ +# Script to control a multiexperiment + +experiments_folder=experiments +experiment_configurations_folder=experiments_to_run + +# Create experiments folder if it does not exist +[ ! -d experiments ] && mkdir ${experiments_folder} + +# Look at the experiments that need to be launched +experiment_configurations=$( ls ${experiment_configurations_folder} ) + +# For each experiment clone the repo there +for experiment in ${experiment_configurations} ; do + # Clone repository to the new experiment folder + git clone . ${experiments_folder}/${experiment} + # Copy the configuration file into the new folder + cp ${experiment_configurations_folder}/${experiment} ${experiments_folder}/${experiment}/param.cfg + # Launch the experiment in background and save the log + cd ${experiments_folder}/${experiment} + nohup make experiment &> log & + cd - +done diff --git a/experiments_to_run/O0 b/experiments_to_run/O0 new file mode 100644 index 0000000000000000000000000000000000000000..67108a7cfec5f3c9bc9a6ca695e2788f86886d93 --- /dev/null +++ b/experiments_to_run/O0 @@ -0,0 +1,24 @@ +# Branch to profile +nemo_branch=avoid_error_partition +# Configuration name +configuration_name=BENCH +# the following parameter should be cfgs in case the configuration is based on ORCA or tests if it is based n the bench +configuration_folder=tests +# Details of the configuration which you would put after makenemo, excluding the arch file +configuration_details=-a BENCH +# For BENCH specifies the resolution at which it will run +configuration_resolution=orca1 +# Suffix of the arch file used +arch_file_prefix=O0 +# Enable or disable output (TRUE or FALSE) +output=FALSE +# Number of steps used in test (Adjust acording to cost) +test_steps=200 +trace_steps=20 +# Processes used for the modelfactor +number_of_processes=48 96 +# This value will be passed to the slurm parameter --ntasks-per-node (default in mn4 is 48) +processes_per_node=48 + +# Which parts of the recipe will be executed when we run make experiment +experiment_recipes = json diff --git a/experiments_to_run/Production b/experiments_to_run/Production new file mode 100644 index 0000000000000000000000000000000000000000..30c6540002511062163b849d65bc328db3880492 --- /dev/null +++ b/experiments_to_run/Production @@ -0,0 +1,24 @@ +# Branch to profile +nemo_branch=avoid_error_partition +# Configuration name +configuration_name=BENCH +# the following parameter should be cfgs in case the configuration is based on ORCA or tests if it is based n the bench +configuration_folder=tests +# Details of the configuration which you would put after makenemo, excluding the arch file +configuration_details=-a BENCH +# For BENCH specifies the resolution at which it will run +configuration_resolution=orca1 +# Suffix of the arch file used +arch_file_prefix=prod +# Enable or disable output (TRUE or FALSE) +output=FALSE +# Number of steps used in test (Adjust acording to cost) +test_steps=200 +trace_steps=20 +# Processes used for the modelfactor +number_of_processes=48 96 192 +# This value will be passed to the slurm parameter --ntasks-per-node (default in mn4 is 48) +processes_per_node=48 + +# Which parts of the recipe will be executed when we run make experiment +experiment_recipes = json diff --git a/param.cfg b/param.cfg index 521396b52b8c673bbc84895afd432d6e226fd532..30c6540002511062163b849d65bc328db3880492 100644 --- a/param.cfg +++ b/param.cfg @@ -19,3 +19,6 @@ trace_steps=20 number_of_processes=48 96 192 # This value will be passed to the slurm parameter --ntasks-per-node (default in mn4 is 48) processes_per_node=48 + +# Which parts of the recipe will be executed when we run make experiment +experiment_recipes = json