@@ -10,9 +10,24 @@ the Swift script to launch a P2B1 run, and to
10
10
2 . Pass the return value (TODO specify this) from a P2B1 run back to the running mlrBMO algorithm
11
11
via the swift script.
12
12
13
- The workflow ultimately produces a ` final_res.Rds ` serialized R object that
14
- contains the final best parameter values and various metadata about the
15
- parameter evaluations.
13
+ For each run of the workflow, the following are produced:
14
+
15
+ * ` final_res.Rds ` - a serialized R object that
16
+ contains the final best parameter values and various metadata about the
17
+ parameter evaluations. This file will be written to the experiment directory (see below).
18
+ * ` experiment_start.json ` - a json file containing experiment (i.e. workflow)
19
+ level data (e.g. the start time, mlrMBO parameters, etc.). This will be
20
+ written to the experiment directory.
21
+ * ` experiment_end.json ` - a json file containing experiment (i.e. workflow)
22
+ level data (e.g. the stop time, status info, etc). This will be
23
+ written to the experiment directory.
24
+
25
+ For each run of the benchmark model, the following is produced:
26
+
27
+ * ` run.json ` - a json file containing data describing the individual run: the
28
+ parameters for that run and per epoch details such as the validation loss. This
29
+ file will be written to the output directory for that particular run (e.g.)
30
+ ` p2b1_mlrMBO/experiments/E1/run_1_1_0/output/run.json ` .
16
31
17
32
## User requirements ##
18
33
@@ -112,16 +127,16 @@ p2b1_mlrMBO/
112
127
* ` R/mlrMBO3.R ` - the mlrMBO R code
113
128
* ` R/mlrMBO_utils.R ` - utility functions used by the mlrMBO R code
114
129
* ` python/p2b1_runner.py ` - python code called by the swift script to run P3B1.
115
- * ` python/test/test.py ` - python code for testing the p3b1_runner .
130
+ * ` python/test/test.py ` - python code for testing the p2b1_runner .
116
131
* ` swift/workflow3.swift ` - the swift workflow script
117
132
* ` swift/workflow.sh ` - generic launch script to set the appropriate enviroment variables etc. and then launch the swift workflow script
118
133
* ` swift/cori_workflow3.sh ` - launch script customized for the Cori supercomputer
119
134
* ` swift/cori_settings.sh ` - settings for running on the Cori supercomputer
120
135
* ` swift/ai_workflow.sh ` - launch script for running the app invocation ("ai") workflow (see below).
121
136
* ` swift/ai_workflow3.swift ` - app invocation version (see below) of the swift workflow
122
137
* ` swift/theta_workflow.sh ` - launch script for running on theta. This uses the app invocation workflow.
123
- * ` scripts/theta_run_model.sh ` - theta-specific bash script used to launch nt3_runner .py
124
- * ` scripts/run_model.sh ` - generic bash script used to to launch nt3_runner .py
138
+ * ` scripts/theta_run_model.sh ` - theta-specific bash script used to launch p2b1_runner .py
139
+ * ` scripts/run_model.sh ` - generic bash script used to to launch p2b1_runner .py
125
140
126
141
## Running the Workflow ##
127
142
@@ -160,32 +175,30 @@ int design_size = toint(argv("ds", "10"));
160
175
string param_set = argv("param_set_file");
161
176
```
162
177
163
- In addition, the following variable is used to determine which version of
164
- the workflow is run, by defining which swift is actually run.
165
-
166
- * ` SWIFT_FILE ` - the swift workflow file to run
167
- * Set to ` $EMEWS_PROJECT_ROOT\swift\workflow3.swift ` to run the benchmarks via swift's integrated python.
168
- * Set to ` $EMEWS_PROJECT_ROOT\swift\ai_workflow3.swift ` to run the benchmarks via a swift
169
- app function.
170
-
171
- If you need to run the _ ai_ -version of the workflow, there is an addtional shell
172
- variable to set:
173
-
174
- * ` SCRIPT_FILE ` - the path to the bash script that is used to launch the python
175
- benchmark runner code (e.g. ` scripts/run_model.sh ` ).
176
-
177
178
If running on an HPC machine, set ` PROCS ` , ` PPN ` , ` QUEUE ` , ` WALLTIME ` and ` MACHINE `
178
179
as appropriate.
179
180
180
181
Lastly, see the TODOs in the launch script for any additional variables to set.
181
182
182
- Running the * workflow script* :
183
+ ### App Invocation Shell Variables ###
184
+
185
+ If you need to run the _ ai_ -version of the workflow, there are two additional shell
186
+ variables to set:
187
+
188
+ * ` SCRIPT_FILE ` - the path to the bash script that is used to launch the python
189
+ benchmark runner code (e.g. ` scripts/run_model.sh ` ).
190
+ * ` LOG_SCRIPT_FILE ` - the path to the bash script that is used to launch the python
191
+ logging code code. By default these scripts are in the
192
+ ` Supervisor/workflows/common/sh ` directory as they can be shared among the
193
+ different workflows. See for example ` Supervisor/workflows/common/sh/run_logger.sh `
194
+
195
+ ### Running the * workflow script* ###
183
196
184
197
The workflow is executed by running the launch script and passing it an
185
198
'experiment id', i.e., ` swift/workflow.sh <EXPID> ` where ` EXPID ` is the
186
199
experiment ID (provide any token you want). The workflow
187
200
output, various swift related files, and the ` final_res.Rds ` file will be written
188
- into a ` nt3_mlrMBO /experiments/X` directory where X is the experiment id. A copy
201
+ into a ` p2b1_mlrMBO /experiments/X` directory where X is the experiment id. A copy
189
202
of the launch script that was used to launch the workflow will also be written
190
203
to this directory.
191
204
@@ -264,7 +277,7 @@ In addition to final_res.Rds, for each run the workflow writes out the hyperpara
264
277
used in that run to a ` parameters.txt ` file in each run's instance directory.
265
278
` parameters.txt ` can be used to run the model outside of the workflow using
266
279
the ` --config_file ` command line argument. For example,
267
- ` python nt3_baseline_keras2 .py --config_file parameters.txt `
280
+ ` python p2b1_baseline_keras2 .py --config_file parameters.txt `
268
281
269
282
### Running on Cori ###
270
283
@@ -276,7 +289,7 @@ for the EQ/R swift extension.
276
289
277
290
* Compile the EQ/R swift-t extension.
278
291
```
279
- cd Supervisor/workflows/nt3_mlrMBO /ext/EQ-R/eqr
292
+ cd Supervisor/workflows/p2b1_mlrMBO /ext/EQ-R/eqr
280
293
./cori_build.sh
281
294
```
282
295
@@ -292,7 +305,7 @@ debugging runs and will need to be changed for a production run.
292
305
An example:
293
306
294
307
```
295
- cd Supervisor/workflows/nt3_mlrMBO /swift
308
+ cd Supervisor/workflows/p2b1_mlrMBO /swift
296
309
source cori_settings.sh
297
310
./cori_workflow.sh T1
298
311
```
0 commit comments