diff --git a/pytorch_lightning/models/trainer.py b/pytorch_lightning/models/trainer.py index 5f6a207a..f91e7859 100644 --- a/pytorch_lightning/models/trainer.py +++ b/pytorch_lightning/models/trainer.py @@ -364,6 +364,8 @@ class Trainer(TrainerIO): if nb_gpu_nodes == 1: return 0, '127.0.0.1' + + # on multi-node, every node rank > 0 waits until rank 0 # saves the ip to disk ip_file = os.path.join(ip_file_dir, '.ip_meta') @@ -372,6 +374,10 @@ class Trainer(TrainerIO): my_ip = subprocess.run(['hostname', '-I'], stdout=subprocess.PIPE).stdout.decode('utf-8') my_ip = my_ip.split(' ')[0] + test_name = f'{os.getpid()}_{my_ip}' + ip_dir = os.path.join(ip_file_dir, '.ips', test_name) + os.makedirs(ip_dir, exist_ok=True) + # save the ip to the file # block file so only one process can access at a time ip_dir = os.path.join(ip_file_dir, '.ips', my_ip)