code: def graph_objs(request):
      """
      Fixture that returns a Graph object and algo callable (SG or MG) based on
      the parameters. This handles instantiating the correct type (SG or MG) and
      populating it with graph data.
      """
      (gpu_config, graph_data) = request.param
      dask_client = None
      dask_cluster = None
  
      if gpu_config not in ["SG", "SNMG", "MNMG"]:
          raise RuntimeError(
              f"got unexpected gpu_config value: {gpu_config}"
          )
  
      print("creating graph...")
      st = time.perf_counter_ns()
      if gpu_config == "SG":
          G = create_graph(graph_data)
      else:
          (G, dask_client, dask_cluster) = create_mg_graph(graph_data)
      print(
          f"done creating graph, took {((time.perf_counter_ns() - st) / 1e9)}s"
      )
  
      yield G
  
      if dask_client is not None:
          dask_client.shutdown()
          dask_cluster.close()
  
imports: from dask_cuda import LocalCUDACluster
  from dask.distributed import Client
  import dask_cudf
  import time
  import os
  import pytest
  import numpy
  import cupy
  import pytest_benchmark
  from cugraph.generators import rmat
  from cugraph.experimental import datasets
  from cugraph_benchmarking import params
  from cugraph_dgl import CuGraphStorage
  from cugraph.dask.comms import comms
  import dgl
  import torch
  import rmm
label_desc: Use image node_id 4 for calling a global function with example usage: graph_objs(request) without return types