
# 日志提示"RuntimeError: connect() timed out"
#### 问题现象
使用pytorch进行分布式训练时，日志中出现报错"RuntimeError: connect() timed out"。
#### 原因分析
出现该问题的可能原因如下：
如果在此之前是有进行数据复制的，每个节点复制的速度不是同一个时间完成的，然后有的节点没有复制完，其他节点进行torch.distributed.init_process_group()导致超时。
#### 处理方法
如果是多个节点复制不同步，并且没有barrier的话导致的超时，可以在复制数据之前，先进行torch.distributed.init_process_group()，然后再根据local_rank()==0去复制数据，之后再调用torch.distributed.barrier()等待所有rank完成复制。具体可参考如下代码：
```
import moxing as mox
import torch
torch.distributed.init_process_group()
if local_rank == 0: 
    mox.file.copy_parallel(src,dst) 
torch.distributed.barrier()
```
#### 建议与总结
在创建训练作业前，推荐您先使用ModelArts开发环境调试训练代码，避免代码迁移过程中的错误。
- 直接使用线上notebook环境调试请参考[使用JupyterLab开发模型](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0012.html)。
- 配置本地IDE（Pycharm或者VSCode）连接云上环境调试请参考[使用本地IDE开发模型](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0019.html)。
 
