python multiprocessing.pool的限制不起作用

时间:2018-07-19 06:51:27

标签: python multiprocessing

当我使用multiprocessing.pool进行定量策略研究时,使用htop的linux服务器监视器出现了问题。似乎参数进程无法正常工作,并且所有cpus都被占用。
例如,如果我设置multiprocessing.pool(processes = 8)并使用pool.apply_async以参数长度6000运行我的回测策略。似乎一切都在回测的开始是正确的,并且一段时间后,它表明所有该程序占用了24 cpus,看来process = 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()

linux server -htop screen
有谁可以帮助我解决这个问题? 非常感谢!

0 个答案:

没有答案