code: def test_overcrowded(num_peers=16):
      dht_instances = launch_dht_instances(num_peers)
      averagers = [
          DecentralizedAverager(
              averaged_tensors=[torch.randn(3)],
              dht=dht,
              target_group_size=2,
              min_matchmaking_time=1,
              request_timeout=0.5,
              prefix="mygroup",
              initial_group_bits="",
              start=True,
          )
          for dht in dht_instances
      ]
      for _ in range(5):
          step_futures = [
              averager.step(wait=False, timeout=5)
              for averager in averagers
          ]
          assert (
              sum(
                  len(future.result() or []) == 2
                  for future in step_futures
              )
              >= len(averagers) - 1
          )
  
      for process in averagers + dht_instances:
          process.shutdown()
  
imports: import random
  import time
  import numpy
  import pytest
  import torch
  import hivemind
  from hivemind.averaging import DecentralizedAverager
  from hivemind.averaging.allreduce import AveragingMode
  from hivemind.averaging.control import AveragingStage
  from hivemind.averaging.key_manager import GroupKeyManager
  from hivemind.averaging.load_balancing import load_balance_peers
  from hivemind.averaging.partition import AllreduceException
  from hivemind.p2p import PeerID
  from test_utils.dht_swarms import launch_dht_instances
label_desc: Use image node_id 12 for calling a global function with example usage: test_overcrowded(num_peers) without return types