python multiprocessing.pool的限制没有';行不通
当我使用multiprocessing.pool进行定量策略研究时,使用htop的linux服务器监视器中出现了一个问题。似乎参数进程不工作,所有CPU都被占用。python multiprocessing.pool的限制没有';行不通,python,multiprocessing,Python,Multiprocessing,当我使用multiprocessing.pool进行定量策略研究时,使用htop的linux服务器监视器中出现了一个问题。似乎参数进程不工作,所有CPU都被占用。 例如,如果我设置multiprocessing.pool(processs=8)并使用pool.apply\u async来运行参数长度为6000的回溯测试策略。在回溯测试开始时似乎一切正常,一段时间后,它显示所有24个CPU都被该程序占用,似乎进程=8不工作。 伪代码如下: def stragegy(paras): # so
例如,如果我设置multiprocessing.pool(processs=8)并使用pool.apply\u async来运行参数长度为6000的回溯测试策略。在回溯测试开始时似乎一切正常,一段时间后,它显示所有24个CPU都被该程序占用,似乎进程=8不工作。
伪代码如下:
def stragegy(paras):
# some trading logic
return indicator
if __name == '__main__':
# paras_list has 6000 different parameters
# a_list: store the result of strategy
paras_list = [[..], [..], ...[..]]
a_list = []
pool = multiprocessing.Pool(processes=8) # create 8 processes
for i in range(len(paras_list)):
a_list.append(pool.apply_async(func=strategy, args=(paras_list[i])))
pool.close()
pool.join()
有人能帮我解决这个问题吗?
非常感谢 如果在单个进程中运行
strategy
函数(删除池逻辑),会启动多少个进程?您正在使用哪些库和框架?@noxdafox在这种情况下,将只启动一个进程。在我的多处理程序中,一开始似乎一切正常,然后在大约50个参数的回测完成后,cpu资源突然全部被占用。@noxdafox我在代码中使用了pandas、numpy、多处理、os和时间库。