-
Notifications
You must be signed in to change notification settings - Fork 3
/
start_cluster_worker.py
57 lines (49 loc) · 2.15 KB
/
start_cluster_worker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import os.path
from scripts.workers import *
import argparse
def main(args):
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
if args.config_path:
config_file = args.config_path + "/masterConfig.txt"
while True:
if os.path.isfile(config_file):
configs = open(config_file).readlines()
if len(configs)==2 and 'OK' in configs[1]:
logging.info('OSC setup acquired. Starting a worker with ' + config_file)
args = eval(configs[0].strip())
break
else:
time.sleep(3)
num_workers = args.get('cpu_workers', 0) + args.get('gpu_workers', 0)
if num_workers == 0:
if args['gpu']:
args['gpu_workers'] = 1
args['cpu_workers'] = 0
else:
args['cpu_workers'] = 1
args['gpu_workers'] = 0
num_workers = 1
processes = start_local_workers(host=args['host'], jobs_port=args['jobs_port'],
results_port=args['results_port'],
models_port=args['models_port'], maxLen=args['max_len'],
cpu_workers=args['cpu_workers'], gpu_workers=args[
'gpu_workers'], gpu=args['gpu'],
batch_size=args['batch_size'], K=args['K'], D=args['D'])
for i in range(0, num_workers):
processes[i].join()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('-host', type=str)
parser.add_argument('-jobs-port', type=int)
parser.add_argument('-results-port', type=int)
parser.add_argument('-models-port', type=int)
parser.add_argument('-max-len', type=int)
parser.add_argument('-cpu-workers', type=int, default=0)
parser.add_argument('-gpu-workers', type=int, default=0)
parser.add_argument('-gpu', type=int, default=0)
parser.add_argument('-K', type=int)
parser.add_argument('-D', type=int)
parser.add_argument('-batch-size', type=int)
parser.add_argument('-config-path', type=str)
args = parser.parse_args()
main(args)