MXNet创建kvstore时程序被阻塞,无报错
问题现象
使用kv_store = mxnet.kv.create('dist_async')方式创建“kvstore”时程序被阻塞。如,执行如下代码,如果无法输出“end”,表明程序阻塞。
print('start') kv_store = mxnet.kv.create('dist_async') print('end')
原因分析
worker阻塞的原因可能是连不上server。
处理方法
将如下代码放在“启动文件”里“import mxnet”之前可以看到节点间相互通信状态,同时ps能够重新发送。
import os os.environ['PS_VERBOSE'] = '2' os.environ['PS_RESEND'] = '1'
其中,“os.environ['PS_VERBOSE'] = '2'”为打印所有的通信信息。“os.environ['PS_RESEND'] = '1'”为在“PS_RESEND_TIMEOUT”毫秒后没有收到ACK消息,Van实例会重发消息。