code: def test_default_skip_tracker_by_data_parallel():
      @skippable(stash=["foo"])
      class Stash(nn.Module):
          def forward(self, input):
              yield stash("foo", input)
              return input * 2  # noqa: B901
  
      @skippable(pop=["foo"])
      class Pop(nn.Module):
          def forward(self, input):
              foo = yield pop("foo")
              return foo
  
      model = nn.Sequential(Stash(), Pop())
      model = nn.DataParallel(model, device_ids=[0, 0], output_device=0)
  
      input = torch.rand(10, device=0)
      output = model(input)
  
      assert torch.allclose(output, input)
  
file_path: pytorch/test/distributed/pipeline/sync/skip/test_tracker.py
imports: from queue import Queue
  import threading
  import pytest
  import torch
  from torch import nn
  from torch.distributed.pipeline.sync.checkpoint import enable_checkpointing, enable_recomputing
  from torch.distributed.pipeline.sync.microbatch import Batch
  from torch.distributed.pipeline.sync.skip import pop, skippable, stash
  from torch.distributed.pipeline.sync.skip.layout import SkipLayout
  from torch.distributed.pipeline.sync.skip.tracker import SkipTracker, SkipTrackerThroughPotals, current_skip_tracker
  from torch.testing._internal.common_utils import run_tests
label_desc: Use image node_id 2 for calling a global function with example usage: test_default_skip_tracker_by_data_parallel() and returns: unknown, foo