1
1
#! /usr/bin/env bash
2
2
set -eu
3
3
4
- # CORI WORKFLOW
4
+ # THETA WORKFLOW
5
5
# Main entry point for P1B3 mlrMBO workflow
6
6
7
7
# Autodetect this workflow directory
@@ -19,17 +19,15 @@ BENCHMARK_DIR=$EMEWS_PROJECT_ROOT/../../../Benchmarks/Pilot3/P3B1
19
19
export PROCS=${PROCS:- 10}
20
20
21
21
# MPI processes per node
22
- # Cori has 32 cores per node, 128GB per node
22
+ # (Theta has 64 cores per node, 192GB per node)
23
23
export PPN=${PPN:- 1}
24
24
25
-
26
25
export QUEUE=${QUEUE:- default}
27
26
export WALLTIME=${WALLTIME:- 02: 00: 00}
28
27
29
28
# mlrMBO settings
30
29
# How many to runs evaluate per iteration
31
30
32
-
33
31
MAX_BUDGET=${MAX_BUDGET:- 110}
34
32
# Total iterations
35
33
MAX_ITERATIONS=${MAX_ITERATIONS:- 4}
@@ -42,83 +40,62 @@ PARAM_SET_FILE=${PARAM_SET_FILE:-$EMEWS_PROJECT_ROOT/data/parameter_set3.R}
42
40
43
41
# USER SETTINGS END
44
42
45
-
46
43
# Source some utility functions used by EMEWS in this script
47
44
source " ${EMEWS_PROJECT_ROOT} /etc/emews_utils.sh"
48
45
49
- if [ " $# " -ne 1 ]; then
50
- script_name=$( basename $0 )
51
- echo " Usage: ${script_name} EXPERIMENT_ID (e.g. ${script_name} experiment_1)"
52
- exit 1
53
- fi
46
+ WORKFLOWS_ROOT=$( cd $EMEWS_PROJECT_ROOT ; cd .. ; /bin/pwd )
47
+ source $WORKFLOWS_ROOT /common/sh/langs-theta.sh
48
+ source $WORKFLOWS_ROOT /common/sh/utils.sh
54
49
55
50
# uncomment to turn on swift/t logging. Can also set TURBINE_LOG,
56
51
# TURBINE_DEBUG, and ADLB_DEBUG to 0 to turn off logging
57
- # export TURBINE_LOG=1 TURBINE_DEBUG=1 ADLB_DEBUG=1
52
+ # export TURBINE_LOG=1 # TURBINE_DEBUG=1 ADLB_DEBUG=1
58
53
59
- export EXPID=$1
60
- export TURBINE_OUTPUT_ROOT=${TURBINE_OUTPUT_ROOT:- $EMEWS_PROJECT_ROOT / experiments}
61
- export TURBINE_OUTPUT=$TURBINE_OUTPUT_ROOT /$EXPID
62
- check_directory_exists
54
+ get_expid $*
63
55
64
56
export TURBINE_JOBNAME=" ${EXPID} _job"
65
57
66
- # if R cannot be found, then these will need to be
67
- # uncommented and set correctly.
68
- # export R_HOME=/path/to/R
69
- # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$R_HOME/lib
70
- # export PYTHONHOME=
71
-
72
-
73
-
74
- TCL=/home/wozniak/Public/sfw/theta/tcl-8.6.1
75
- export R=/home/wozniak/Public/sfw/theta/R-3.4.0/lib64/R
76
- export PY=/home/wozniak/Public/sfw/theta/Python-2.7.12
77
- export LD_LIBRARY_PATH=$PY /lib:$R /lib:$LD_LIBRARY_PATH
78
- COMMON_DIR=$EMEWS_PROJECT_ROOT /../common/python
79
- PYTHONPATH=$EMEWS_PROJECT_ROOT /python:$BENCHMARK_DIR :$COMMON_DIR
80
- PYTHONHOME=/home/wozniak/Public/sfw/theta/Python-2.7.12
81
-
82
- export PATH=/home/wozniak/Public/sfw/theta/swift-t-pyr/stc/bin:$TCL /bin:$PATH
83
- # $PYTHONHOME/bin:$TCL/bin:$PATH
84
-
85
58
# Resident task workers and ranks
86
59
export TURBINE_RESIDENT_WORK_WORKERS=1
87
60
export RESIDENT_WORK_RANKS=$(( PROCS - 2 ))
88
61
89
62
# EQ/R location
90
63
EQR=$EMEWS_PROJECT_ROOT /ext/EQ-R
91
64
92
- CMD_LINE_ARGS=" $* -pp=$PROPOSE_POINTS -mi=$MAX_ITERATIONS -mb=$MAX_BUDGET -ds=$DESIGN_SIZE "
93
- CMD_LINE_ARGS+=" -param_set_file=$PARAM_SET_FILE -script_file=$EMEWS_PROJECT_ROOT /scripts/theta_run_model.sh "
94
- CMD_LINE_ARGS+=" -exp_id=$EXPID -log_script=$EMEWS_PROJECT_ROOT /../common/sh/theta_run_logger.sh"
65
+ SCRIPT_FILE=$EMEWS_PROJECT_ROOT /scripts/theta_run_model.sh
66
+ LOG_SCRIPT=$EMEWS_PROJECT_ROOT /../common/sh/theta_run_logger.sh
95
67
96
- TURBINE_DIR=/home/wozniak/Public/sfw/theta/swift-t-pyr/turbine/lib
68
+ CMD_LINE_ARGS=( $*
69
+ -exp_id=$EXPID
70
+ -pp=$PROPOSE_POINTS
71
+ -mi=$MAX_ITERATIONS
72
+ -mb=$MAX_BUDGET
73
+ -ds=$DESIGN_SIZE
74
+ -param_set_file=$PARAM_SET_FILE
75
+ -script_file=$SCRIPT_FILE
76
+ -log_script=$LOG_SCRIPT
77
+ )
97
78
98
- # set machine to your scheduler type (e.g. pbs, slurm, cobalt etc.),
99
- # or empty for an immediate non-queued unscheduled run
100
- MACHINE=" theta"
101
-
102
- if [ -n " $MACHINE " ]; then
103
- MACHINE=" -m $MACHINE "
104
- fi
79
+ TURBINE_DIR=/home/wozniak/Public/sfw/theta/swift-t-pyr/turbine/lib
105
80
106
81
# Add any script variables that you want to log as
107
82
# part of the experiment meta data to the USER_VARS array,
108
83
# for example, USER_VARS=("VAR_1" "VAR_2")
109
84
USER_VARS=($CMD_LINE_ARGS )
110
85
# log variables and script to to TURBINE_OUTPUT directory
111
- log_script
86
+ # log_script
112
87
113
88
# echo's anything following this to standard out
114
89
set -x
115
- WORKFLOW_SWIFT=ai_workflow3.swift
116
- swift-t -n $PROCS $MACHINE -p -I $EQR -r $EQR -r $TURBINE_DIR \
90
+ WORKFLOW_SWIFT=$EMEWS_PROJECT_ROOT /swift/ai_workflow3.swift
91
+ swift-t -m theta \
92
+ -n $PROCS \
93
+ -p -I $EQR -r $EQR -r $TURBINE_DIR \
94
+ -t i:$EMEWS_PROJECT_ROOT /swift/init-theta.sh \
117
95
-e LD_LIBRARY_PATH=$LD_LIBRARY_PATH \
118
- -e TURBINE_RESIDENT_WORK_WORKERS=$TURBINE_RESIDENT_WORK_WORKERS \
119
- -e RESIDENT_WORK_RANKS=$RESIDENT_WORK_RANKS \
120
- -e EMEWS_PROJECT_ROOT=$EMEWS_PROJECT_ROOT \
121
- -e PYTHONPATH=$PYTHONPATH \
122
- -e PYTHONHOME=$PYTHONHOME \
123
- -e TURBINE_OUTPUT=$TURBINE_OUTPUT \
124
- $EMEWS_PROJECT_ROOT /swift/$WORKFLOW_SWIFT $CMD_LINE_ARGS
96
+ -e TURBINE_RESIDENT_WORK_WORKERS \
97
+ -e RESIDENT_WORK_RANKS \
98
+ -e EMEWS_PROJECT_ROOT \
99
+ -e PYTHONPATH=$PYTHONPATH \
100
+ -e PYTHONHOME=$PYTHONHOME \
101
+ $WORKFLOW_SWIFT ${CMD_LINE_ARGS[@]}
0 commit comments