我正在尝试进行进程间通信,因为我无法弄清楚如何在Windows下使用命名管道,我以为我会使用网络套接字.一切都在当地发生.服务器能够在单独的进程中启动从属服务器并侦听某个端口.奴隶完成他们的工作并将结果提交给主人.我如何确定哪个端口可用?我想我不能听80或21端口?
我正在使用Python,如果这会减少选择.
谢谢!
我使用pytorch分布式训练我的模型。我有两个节点和每个节点两个gpu,我为一个节点运行代码:
python train_net.py --config-file configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_coco.yaml --num-gpu 2 --num-machines 2 --machine-rank 0 --dist-url tcp://192.168.**.***:8000
Run Code Online (Sandbox Code Playgroud)
和另一个:
python train_net.py --config-file configs/InstanceSegmentation/pointrend_rcnn_R_50_FPN_1x_coco.yaml --num-gpu 2 --num-machines 2 --machine-rank 1 --dist-url tcp://192.168.**.***:8000
Run Code Online (Sandbox Code Playgroud)
但是另一个有 RuntimeError 问题
global_rank 3 machine_rank 1 num_gpus_per_machine 2 local_rank 1
global_rank 2 machine_rank 1 num_gpus_per_machine 2 local_rank 0
Traceback (most recent call last):
File "train_net.py", line 109, in <module>
args=(args,),
File "/root/detectron2_repo/detectron2/engine/launch.py", line 49, in launch
daemon=False,
File "/root/anaconda3/envs/PointRend/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 171, in spawn
while not spawn_context.join():
File "/root/anaconda3/envs/PointRend/lib/python3.6/site-packages/torch/multiprocessing/spawn.py", line 118, in join
raise …Run Code Online (Sandbox Code Playgroud)