def test_multi_process_sequence(n_gpu=2, worker_func_maker=unpickle_func):
barrier = mp.Barrier(n_gpu)
if PROFILE:
target = seq_profiling_worker
else:
target = sequence_worker
procs = [mp.Process(target=target,
args=(rank, n_gpu, barrier, worker_func_maker))
for rank in range(1, n_gpu)]
for p in procs:
p.start()
theano.gpuarray.use("cuda0")
f_train, name = build_train_func()
pickle_func(f_train)
barrier.wait()
# workers make function (maybe unpickle).
barrier.wait()
for i in range(n_gpu):
time.sleep(1)
barrier.wait()
if i == 0:
test_the_function(f_train, name)
for p in procs:
p.join()
评论列表
文章目录