class_docstr: Strategy for training multiple TPU devices using the :func:`torch_xla.distributed.xla_multiprocessing.spawn`
  method.
code: def setup_environment(self) -> None:
      assert self.parallel_devices is not None
      if len(self.parallel_devices) == 1:
          # spawning only 1 device with PjRT is not supported:
          # https://github.com/Lightning-AI/lightning/pull/17408#discussion_r1170671732
          raise NotImplementedError(
              f"The {type(self).__name__} does not support running on a single device with the PjRT runtime."
              " Try using all devices or the `SingleDeviceXLAStrategy` strategy"
          )
  
      self._launched = True
      rank_zero_only.rank = self.global_rank
      super().setup_environment()
  
imports: import io
  from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Union
  import torch
  from torch import Tensor
  from torch.nn import Module
  from torch.optim import Optimizer
  from torch.utils.data import DataLoader
  from typing_extensions import override
  from lightning.fabric.accelerators import Accelerator
  from lightning.fabric.accelerators.xla import _XLA_GREATER_EQUAL_2_1
  from lightning.fabric.plugins import XLAPrecision
  from lightning.fabric.plugins.environments import XLAEnvironment
  from lightning.fabric.plugins.io.xla import XLACheckpointIO
  from lightning.fabric.strategies import ParallelStrategy, _StrategyRegistry
  from lightning.fabric.strategies.launchers.xla import _XLALauncher
  from lightning.fabric.strategies.strategy import TBroadcast
  from lightning.fabric.utilities.rank_zero import rank_zero_only
  from lightning.fabric.utilities.types import _PATH, ReduceOp
label_desc: Use image node_id 13 for calling the XLAStrategy obj's underlying member method code with example usage: obj.setup_environment() without return types