diff --git a/src/accelerate/commands/config/cluster.py b/src/accelerate/commands/config/cluster.py
index 1ba5839e2..65c0e56b2 100644
--- a/src/accelerate/commands/config/cluster.py
+++ b/src/accelerate/commands/config/cluster.py
@@ -37,6 +37,7 @@ def get_cluster_input():
     num_machines = 1
     main_process_ip = None
     main_process_port = None
+    rdzv_backend = "static"
     if distributed_type in [DistributedType.MULTI_GPU, DistributedType.MULTI_CPU]:
         num_machines = _ask_field(
             "How many different machines will you use (use more than 1 for multi-node training)? [1]: ",
@@ -56,6 +57,9 @@ def get_cluster_input():
                 "What is the port you will use to communicate with the main process? ",
                 lambda x: int(x),
             )
+            rdzv_backend = _ask_field(
+                "What rendezvous backend will you use? ('static', 'c10d', ...)", default="static"
+            )
 
     if distributed_type == DistributedType.NO:
         use_cpu = _ask_field(
@@ -323,4 +327,5 @@ def get_cluster_input():
         deepspeed_config=deepspeed_config,
         fsdp_config=fsdp_config,
         use_cpu=use_cpu,
+        rdzv_backend=rdzv_backend,
     )
diff --git a/src/accelerate/commands/config/config_args.py b/src/accelerate/commands/config/config_args.py
index 11ca0ca90..e78aad181 100644
--- a/src/accelerate/commands/config/config_args.py
+++ b/src/accelerate/commands/config/config_args.py
@@ -137,6 +137,7 @@ class ClusterConfig(BaseConfig):
     num_machines: int = 1
     main_process_ip: Optional[str] = None
     main_process_port: Optional[int] = None
+    rdzv_backend: Optional[str] = "static"
     main_training_function: str = "main"
 
     # args for deepspeed_plugin
diff --git a/src/accelerate/commands/launch.py b/src/accelerate/commands/launch.py
index ea27afb75..11aadc8e2 100644
--- a/src/accelerate/commands/launch.py
+++ b/src/accelerate/commands/launch.py
@@ -26,13 +26,13 @@
 from typing import Dict, List
 
 import torch
+import torch.distributed.run as distrib_run
 
 import psutil
 from accelerate.commands.config import default_config_file, load_config_from_file
 from accelerate.commands.config.config_args import SageMakerConfig
 from accelerate.state import get_int_from_env
 from accelerate.utils import (
-    TORCH_LAUNCH_PARAMS,
     ComputeEnvironment,
     DistributedType,
     PrecisionType,
@@ -50,9 +50,6 @@
 from rich.logging import RichHandler
 
 
-if is_torch_version(">=", "1.9.0"):
-    import torch.distributed.run as distrib_run
-
 FORMAT = "%(message)s"
 logging.basicConfig(format=FORMAT, datefmt="[%X]", handlers=[RichHandler()])
 
@@ -379,8 +376,7 @@ def multi_gpu_launcher(args):
         setattr(args, "nproc_per_node", str(num_processes // num_machines))
         setattr(args, "nnodes", str(num_machines))
         setattr(args, "node_rank", str(args.machine_rank))
-        setattr(args, "master_addr", str(args.main_process_ip))
-        setattr(args, "master_port", str(args.main_process_port))
+        setattr(args, "rdzv_endpoint", f"{args.main_process_ip}:{args.main_process_port}")
     else:
         setattr(args, "nproc_per_node", str(num_processes))
         if args.main_process_port is not None:
@@ -451,33 +447,19 @@ def multi_gpu_launcher(args):
         if args.fsdp_state_dict_type is not None:
             current_env["FSDP_STATE_DICT_TYPE"] = str(args.fsdp_state_dict_type)
     current_env["OMP_NUM_THREADS"] = str(args.num_cpu_threads_per_process)
-    if is_torch_version(">=", "1.9.0"):
-        debug = getattr(args, "debug", False)
-        args = _filter_args(args)
-        with patch_environment(**current_env):
-            console = get_console()
-
-            try:
-                distrib_run.run(args)
-            except:
-                if debug:
-                    console.print("\n[bold red]Using --debug, `torch.distributed` Stack Trace:[/bold red]")
-                    console.print_exception(suppress=[__file__], show_locals=False)
-    else:
-        # We still have to use subprocess, the user won't get a clean traceback as a result
-        cmd = get_launch_prefix()
-        for k, v in vars(args).items():
-            if k in TORCH_LAUNCH_PARAMS and v:
-                param = [f"--{k}"]
-                if type(v) != bool:
-                    param.append(v)
-                cmd.extend(param)
-        cmd.append(args.training_script)
-        cmd.extend(args.training_script_args)
-        process = subprocess.Popen(cmd, env=current_env)
-        process.wait()
-        if process.returncode != 0:
-            raise subprocess.CalledProcessError(returncode=process.returncode, cmd=cmd)
+    if is_torch_version("<", "1.9.0"):
+        raise NotImplementedError("Multi-node training requires pytorch>=1.9.0")
+
+    debug = getattr(args, "debug", False)
+    args = _filter_args(args)
+    with patch_environment(**current_env):
+        try:
+            distrib_run.run(args)
+        except:
+            if debug:
+                console = get_console()
+                console.print("\n[bold red]Using --debug, `torch.distributed` Stack Trace:[/bold red]")
+                console.print_exception(suppress=[__file__], show_locals=False)
 
 
 def deepspeed_launcher(args):



Discussion: body: _The documentation is not available anymore as the PR was closed or merged._