class_docstr: Launches processes that run a given function in parallel on XLA supported hardware, and joins them all at the
  end.
  
  The main process in which this launcher is invoked creates N so-called worker processes (using the
  `torch_xla` :func:`xmp.spawn`) that run the given function.
  Worker processes have a rank that ranges from 0 to N - 1.
  
  Note:
      - This launcher requires all objects to be pickleable.
      - It is important that the entry point to the program/script is guarded by ``if __name__ == "__main__"``.
  
  Args:
      strategy: A reference to the strategy that is used together with this launcher
code: def __init__(
      self, strategy: Union["XLAStrategy", "XLAFSDPStrategy"]
  ) -> None:
      if not _XLA_AVAILABLE:
          raise ModuleNotFoundError(str(_XLA_AVAILABLE))
      self._strategy = strategy
      self._start_method = "fork"
  
file_path: pytorch-lightning/src/lightning/fabric/strategies/launchers/xla.py
imports: import queue
  import time
  from typing import TYPE_CHECKING, Any, Callable, Optional, Union
  import torch.multiprocessing
  from typing_extensions import override
  from lightning.fabric.accelerators.xla import _XLA_AVAILABLE
  from lightning.fabric.strategies.launchers.launcher import _Launcher
  from lightning.fabric.strategies.launchers.multiprocessing import _GlobalStateSnapshot
  from lightning.fabric.utilities.apply_func import move_data_to_device
label_desc: Use image node_id 1 to create a new _XLALauncher object from inherited base classes: _Launcher with example: obj = _XLALauncher(strategy)