【发布时间】:2019-01-23 14:57:48
【问题描述】:
我正在尝试使用多处理 python 包(可在此处找到:https://docs.python.org/3.4/library/multiprocessing.html?highlight=process)来并行化我的预处理功能。
它在我的计算机上运行良好(使用了我的 4 个 CPU),但是当我在 google cloud ml-engine 作业上运行我的代码时,它似乎不起作用。该作业比顺序作业花费的时间要长得多,并且 cpu 利用率在某个时候下降到几乎 0%。
这是我的代码尝试:
import multiprocessing as mp
pool = mp.Pool(processes=mp.cpu_count())
params = [ some_params_lists]
pool.starmap(fn_to_run_in_parallel, params)
pool.close()
pool.join()
我也尝试过使用multiprocessing.Process(),但没有任何运气。
机器配置:
ScaleTier = 'CUSTOM'
masterTYpe = 'large_model'
【问题讨论】:
-
您能否评论一下您在机器学习引擎工作中使用的机器类型?
-
嗨,当然。我刚刚编辑了这个问题。我使用带有 large_model 的定制机器
-
我们可以假设在 pool.join() 之后没有其他任何事情发生吗? (只是想排除代码已经超出了mp代码的可能性)
-
是的,在那之后没有其他事情发生
标签: python python-multiprocessing google-cloud-ml