code: def benchmark(track_type, timeout=60):
      """Decorator for indicating the benchmark type.
  
      Parameters
      ----------
      track_type : str
          Type. Must be either:
  
              - 'time' : For timing. Unit: second.
              - 'acc' : For accuracy. Unit: percentage, value between 0 and 100.
              - 'flops' : Unit: GFlops, number of floating point operations per second.
      timeout : int
          Timeout threshold in second.
  
      Examples
      --------
  
      .. code::
          @benchmark('time')
          def foo():
              pass
      """
      assert track_type in ["time", "acc", "flops"]
  
      def _wrapper(func):
          func.unit = TRACK_UNITS[track_type]
          func.setup = TRACK_SETUP[track_type]
          func.timeout = timeout
          if not filter.check(func):
              # skip if not enabled
              func.benchmark_name = "skip_" + func.__name__
          return func
  
      return _wrapper
  
imports: import inspect
  import json
  import os
  import pickle
  import shutil
  import time
  import zipfile
  from functools import partial, reduce, wraps
  from timeit import default_timer
  import dgl
  import numpy
  import pandas
  import requests
  import torch
  from ogb.nodeproppred import DglNodePropPredDataset
  import traceback
  from _thread import start_new_thread
  import torch.multiprocessing
label_desc: Use image node_id 21 for calling a global function with example usage: benchmark(track_type, timeout) and returns: _wrapper, func