code: def devices(pipe_class):
      a = nn.Linear(1, 1)
      b = nn.Linear(1, 1)
      c = nn.Linear(1, 1)
  
      # There are extra two ranks.
      model = nn.Sequential(a, b, c)
      model = pipe_class(model, [1, 1, 1], worker_map=get_worker_map())
  
      # Extra devices must be discarded.
      if model.group.rank() == 3:
          assert model.pipeline is None
  
imports: from collections import OrderedDict
  from copy import deepcopy
  import os
  import time
  import pytest
  import torch
  from torch import nn
  from fairscale.fair_dev.testing.testing import get_worker_map, torch_spawn
  from fairscale.internal import torch_version
  from fairscale.nn.model_parallel.initialize import get_pipeline_parallel_group
  from fairscale.nn.pipe import AsyncPipe
  from fairscale.nn.pipe.types import LazyModule
label_desc: Use image node_id 29 for calling a global function with example usage: devices(pipe_class) without return types