code: def dispatch_run(
      local_rank, cls, work, delta_queue, *args: Any, **kwargs: Any
  ):
      if local_rank == 0:
          if isinstance(delta_queue, dict):
              delta_queue = cls.process_queue(delta_queue)
              work._request_queue = cls.process_queue(
                  work._request_queue
              )
              work._response_queue = cls.process_queue(
                  work._response_queue
              )
  
          state_observer = WorkStateObserver(
              work, delta_queue=delta_queue
          )
          state_observer.start()
          _proxy_setattr(work, delta_queue, state_observer)
  
      cls.run(local_rank, unwrap(work.run), *args, **kwargs)
  
      if local_rank == 0:
          state_observer.join(0)
  
file_path: pytorch-lightning/src/lightning/app/components/multi_node/pytorch_spawn.py
imports: from typing import Any, Callable, Protocol, Type, runtime_checkable
  from lightning.app.components.multi_node.base import MultiNode
  from lightning.app.core.queues import MultiProcessQueue
  from lightning.app.core.work import LightningWork
  from lightning.app.utilities.packaging.cloud_compute import CloudCompute
  from lightning.app.utilities.proxies import WorkRunExecutor, WorkStateObserver, _proxy_setattr, unwrap
label_desc: Use image node_id 2 for calling the _PyTorchSpawnRunExecutor obj's underlying member method code with example usage: obj.dispatch_run(local_rank, cls, work, delta_queue) without return types