原因:
中途中断DDP运行,未释放端口号,该进程仍在运行,导致端口号冲突
解决方式
方法1
- 通过
ps -ef
命令查看之前未释放的进程PID;-e
显示所有进程,-f
显示进程的全部信息,包括PID PPID
等 - 通过
kill -9 PID
杀死进程,释放相关端口号,-9
表示强制关闭 - 运行进程
方法2
- 通过
nvidia-smi
查看不同显卡上运行的进程与相关进程号
- 通过
kill -9 PID
杀死占用显存的 进程
方法3
如果有多个进程需要同一端口号,则可以通过给不同进程指定不同端口号的方式。
在运行命令时手动增加--master_port=XXXX
;如下所示
python -m torch.distributed.launch --nproc_per_node=8 --master_port=25641 main_task_retrieval.py
详细了解可看以下链接
- https://blog.csdn.net/flyingluohaipeng/article/details/126899077
- https://blog.csdn.net/brain_zZ/article/details/118632825