vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 6
声望: 0

用多进程优化一直卡住出不来结果,debug了一下发现是在run_optimization 方法下的pool.join()处卡住了,不论优化数据有多少,等多久都一直卡在那。
请问有人知道怎么解决么

Administrator
avatar
加入于:
帖子: 4756
声望: 278

请运行下任务管理器程序,看看你优化时的CPU占用是否为100%,若是的话则说明还在执行回测计算的过程中~优化所需的计算时间确实挺久的

Member
avatar
加入于:
帖子: 6
声望: 0

用Python的交易员 wrote:

请运行下任务管理器程序,看看你优化时的CPU占用是否为100%,若是的话则说明还在执行回测计算的过程中~优化所需的计算时间确实挺久的

不是的,是优化完成了,优化线程的CPU占用都是0%,但是卡在join处。
断点打在这里的话可以看见优化结果已经全部传到了results里,但子线程销毁不了。只有手动pool.terminate才能pool.join()成功

Administrator
avatar
加入于:
帖子: 4756
声望: 278

哦哦,那可能是某个进程中运行的优化回测任务,出现异常被挂起了,这种情况推荐用cmd运行python -m vnstation来启动,这样cmd中可以看到报错输出

Member
avatar
加入于:
帖子: 6
声望: 0

用Python的交易员 wrote:

哦哦,那可能是某个进程中运行的优化回测任务,出现异常被挂起了,这种情况推荐用cmd运行python -m vnstation来启动,这样cmd中可以看到报错输出

我没有用vnstation,装的anaconda,然后写了run.py启动的窗口,这样该怎么启动才能看到报错?

Administrator
avatar
加入于:
帖子: 4756
声望: 278

这样的话,在运行run.py的cmd中应该直接就能看到报错信息了,看看有不

Member
avatar
加入于:
帖子: 6
声望: 0

用Python的交易员 wrote:

这样的话,在运行run.py的cmd中应该直接就能看到报错信息了,看看有不

没有报错,用了pool.apply_async()的error_callback参数也没有返回错误,先曲线救国 用返回结果判断是否优化完后先terminate 再join可以暂时解决这个问题

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3

沪公网安备 31011502017034号