Skip to content

Commit a73270f

Browse files
committed
o Modify runners and add time for testing all
1 parent af6b639 commit a73270f

File tree

5 files changed

+68
-11
lines changed

5 files changed

+68
-11
lines changed

workflows/rnd_or_grid/python/nt3_tc1_runner.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,12 @@ def run(hyper_parameter_map):
6161
framework = sys.argv[4]
6262
exp_id = sys.argv[5]
6363
run_id = sys.argv[6]
64+
benchmark_timeout = int(sys.argv[7])
6465
hyper_parameter_map = runner_utils.init(param_string, instance_directory, framework, 'save')
6566
hyper_parameter_map['model_name'] = model_name
6667
hyper_parameter_map['experiment_id'] = exp_id
6768
hyper_parameter_map['run_id'] = run_id
69+
hyper_parameter_map['timeout'] = benchmark_timeout
6870
# clear sys.argv so that argparse doesn't object
6971
sys.argv = ['nt3_tc1_runner']
7072
result = run(hyper_parameter_map)

workflows/rnd_or_grid/python/p1b1_runner.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import json
88
import os
99
import p1b1
10-
import runner_utils
1110

1211
def run(hyper_parameter_map):
1312
framework = hyper_parameter_map['framework']
@@ -25,8 +24,6 @@ def run(hyper_parameter_map):
2524

2625
# params is python dictionary
2726
params = pkg.initialize_parameters()
28-
runner_utils.format_params(hyper_parameter_map)
29-
3027
for k,v in hyper_parameter_map.items():
3128
#if not k in params:
3229
# raise Exception("Parameter '{}' not found in set of valid arguments".format(k))

workflows/rnd_or_grid/python/p2b1_runner.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@ def run(hyper_parameter_map):
4646
framework = sys.argv[3]
4747
exp_id = sys.argv[4]
4848
run_id = sys.argv[5]
49+
benchmark_timeout = int(sys.argv[6])
4950
hyper_parameter_map = runner_utils.init(param_string, instance_directory,
5051
framework, 'save_path')
5152
hyper_parameter_map['experiment_id'] = exp_id
5253
hyper_parameter_map['run_id'] = run_id
54+
hyper_parameter_map['timeout'] = benchmark_timeout
5355
# clear sys.argv so that argparse doesn't object
5456
sys.argv = ['p2b1_runner']
5557
result = run(hyper_parameter_map)

workflows/rnd_or_grid/python/p3b1_runner.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,39 @@
88
import os
99
import p3b1
1010
import runner_utils
11+
import socket
12+
13+
node_pid = "%s,%i" % (socket.gethostname(), os.getpid())
14+
print("node,pid: " + node_pid)
15+
16+
logger = None
17+
18+
def get_logger():
19+
""" Set up logging """
20+
global logger
21+
if logger is not None:
22+
return logger
23+
import logging, sys
24+
logger = logging.getLogger(__name__)
25+
logger.setLevel(logging.DEBUG)
26+
h = logging.StreamHandler(stream=sys.stdout)
27+
fmtr = logging.Formatter('%(asctime)s %(name)s %(levelname)-9s %(message)s',
28+
datefmt='%Y/%m/%d %H:%M:%S')
29+
h.setFormatter(fmtr)
30+
logger.addHandler(h)
31+
return logger
1132

1233
def run(hyper_parameter_map):
34+
35+
logger = get_logger()
1336
framework = hyper_parameter_map['framework']
37+
logger.debug("IMPORT START")
1438
if framework == 'keras':
1539
import p3b1_baseline_keras2
1640
pkg = p3b1_baseline_keras2
1741
else:
1842
raise ValueError("Unsupported framework: {}".format(framework))
43+
logger.debug("IMPORT STOP")
1944

2045
# params is python dictionary
2146
params = pkg.initialize_parameters()
@@ -26,8 +51,12 @@ def run(hyper_parameter_map):
2651
# raise Exception("Parameter '{}' not found in set of valid arguments".format(k))
2752
params[k] = v
2853

54+
logger.debug("WRITE_PARAMS START")
2955
runner_utils.write_params(params, hyper_parameter_map)
56+
logger.debug("WRITE_PARAMS STOP")
57+
logger.debug("DO_N_FOLD START")
3058
avg_loss = pkg.do_n_fold(params)
59+
logger.debug("DO_N_FOLD STOP")
3160

3261
if framework == 'keras':
3362
# works around this error:
@@ -41,16 +70,28 @@ def run(hyper_parameter_map):
4170
return avg_loss
4271

4372
if __name__ == '__main__':
73+
logger = get_logger()
74+
logger.debug("RUN START")
75+
4476
param_string = sys.argv[1]
4577
instance_directory = sys.argv[2]
4678
framework = sys.argv[3]
4779
exp_id = sys.argv[4]
4880
run_id = sys.argv[5]
81+
benchmark_timeout = int(sys.argv[6])
82+
83+
logger.debug("RUN INIT START")
84+
4985
hyper_parameter_map = runner_utils.init(param_string, instance_directory,
5086
framework, 'save_path')
87+
logger.debug("RUN INIT STOP")
5188
hyper_parameter_map['experiment_id'] = exp_id
5289
hyper_parameter_map['run_id'] = run_id
90+
hyper_parameter_map['timeout'] = benchmark_timeout
5391
# clear sys.argv so that argparse doesn't object
5492
sys.argv = ['p3b1_runner']
5593
result = run(hyper_parameter_map)
94+
logger.debug("WRITE OUTPUT START")
5695
runner_utils.write_output(result, instance_directory)
96+
logger.debug("WRITE OUTPUT STOP")
97+
logger.debug("RUN STOP")

workflows/rnd_or_grid/python/test/test_runners.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import p3b1_runner
55
import nt3_tc1_runner
66

7+
from datetime import datetime
8+
79
def main():
810

911
hyper_parameter_map = {'epochs' : 1}
@@ -14,35 +16,48 @@ def main():
1416
# hyper_parameter_map['dense'] = [1219, 536]
1517
# hyper_parameter_map['framework'] = 'keras'
1618

17-
1819
#1 # p1b1 - works
1920
# hyper_parameter_map['save'] = './p1bl1_testing_failure'
2021
print("STARTING#####P1B1##########")
22+
ts_p1b1 = datetime.now()
2123
p1b1_validation_loss = p1b1_runner.run(hyper_parameter_map)
22-
print("DONE##########P1B1#####")
23-
24+
te_p1b1 = datetime.now()
25+
print("Validation loss=",p1b1_validation_loss)
26+
print("DONE##########P1B1#####, TIME=", te_p1b1 - ts_p1b1)
27+
2428

2529
#2 # p1b3 - works too big for desktop
2630
print("STARTING#####P1B3##########")
31+
te_p1b3 = datetime.now()
2732
p1b3_validation_loss = p1b3_runner.run(hyper_parameter_map)
28-
print("DONE######P1B3#########")
33+
te_p1b3 = datetime.now()
34+
print("Validation loss=",p1b3_validation_loss)
35+
print("DONE##########P1B1#####, TIME=", te_p1b3 - ts_p1b3)
2936

3037
#3 # p2b1 - works
3138
print("STARTING#####P2B1##########")
39+
te_p2b1 = datetime.now()
3240
p2b1_validation_loss = p2b1_runner.run(hyper_parameter_map)
33-
print("DONE#####P2B1##########")
41+
te_p2b1 = datetime.now()
42+
print("Validation loss=",p2b1_validation_loss)
43+
print("DONE##########P1B1#####, TIME=", te_p2b1 - ts_p2b1)
3444

3545
#4 # p3b1 - fails - ValueError: invalid literal for int() with base 10: '1200;1200'
3646
print("STARTING#####P3B1##########")
47+
te_p3b1 = datetime.now()
3748
p3b1_validation_loss = p3b1_runner.run(hyper_parameter_map)
38-
print("DONE#####P3B1##########")
49+
te_p3b1 = datetime.now()
50+
print("Validation loss=",p3b1_validation_loss)
51+
print("DONE##########P1B1#####, TIME=", te_p3b1 - ts_p3b1)
3952

4053
#5 # NT3 - works - too big
4154
print("STARTING#####NT3##########")
4255
hyper_parameter_map['model_name'] = 'nt3'
56+
te_nt3 = datetime.now()
4357
nt3tc1_validation_losss = nt3_tc1_runner.run(hyper_parameter_map)
44-
print("DONE#####NT3##########")
58+
te_nt3 = datetime.now()
59+
print("Validation loss=",nt3tc1_validation_loss)
60+
print("DONE##########P1B1#####, TIME=", te_nt3 - ts_nt3)
4561

46-
# # print("Validation Loss: ", p1b1_validation_loss)
4762
if __name__ == '__main__':
4863
main()

0 commit comments

Comments
 (0)