code: def osu_allgather(
      BENCHMARH="MPI Allgather Latency Test",
      skip=1000,
      loop=10000,
      skip_large=10,
      loop_large=100,
      large_message_size=8192,
      MAX_MSG_SIZE=1 << 20,
  ):
      comm = MPI.COMM_WORLD
      myid = comm.Get_rank()
      numprocs = comm.Get_size()
  
      if numprocs < 2:
          if myid == 0:
              errmsg = "This test requires at least two processes"
          else:
              errmsg = None
          raise SystemExit(errmsg)
  
      r_buf = allocate(MAX_MSG_SIZE * numprocs)
  
      if myid == 0:
          print(f"# {BENCHMARH}")
      if myid == 0:
          print("# %-8s%20s" % ("Size [B]", "Latency [us]"))
  
      for size in message_sizes(MAX_MSG_SIZE):
          if size > large_message_size:
              skip = skip_large
              loop = loop_large
          iterations = list(range(loop + skip))
          s_msg = MPI.IN_PLACE
          r_msg = [r_buf, size, MPI.BYTE]
          #
          comm.Barrier()
          for i in iterations:
              if i == skip:
                  t_start = MPI.Wtime()
              comm.Allgather(s_msg, r_msg)
          t_end = MPI.Wtime()
          comm.Barrier()
          #
          if myid == 0:
              latency = (t_end - t_start) * 1e6 / loop
              print("%-10d%20.2f" % (size, latency))
  
imports: from mpi4py import MPI
label_desc: Use image node_id 1 for calling a global function with example usage: osu_allgather(BENCHMARH, skip, loop, skip_large, loop_large, large_message_size, MAX_MSG_SIZE) without return types