code: def dataset(request, rmm_config):
      """
      Fixture which provides a Dataset instance, setting up a Dask cluster and
      client if necessary for MG, to tests and other fixtures. When all
      tests/fixtures are done with the Dataset, it has the Dask cluster and
      client torn down (if MG) and all data loaded is freed.
      """
      setFixtureParamNames(request, ["dataset"])
      dataset = request.param[0]
      client = cluster = None
      # For now, only RmatDataset instanaces support MG and have a "mg" attr.
      if hasattr(dataset, "mg") and dataset.mg:
          (client, cluster) = mg_utils.start_dask_client()
  
      yield dataset
  
      dataset.unload()
      if client is not None:
          mg_utils.stop_dask_client(client, cluster)
  
imports: import pytest
  import numpy
  import pytest_benchmark
  import rmm
  import dask_cudf
  from pylibcugraph.testing import gen_fixture_params_product
  import cugraph
  import cugraph.dask
  from cugraph.structure.number_map import NumberMap
  from cugraph.generators import rmat
  from cugraph.testing import utils, mg_utils
  from cugraph.utilities.utils import is_device_version_less_than
  from cugraph_benchmarking.params import directed_datasets, undirected_datasets, managed_memory, pool_allocator
label_desc: Use image node_id 3 for calling a global function with example usage: dataset(request, rmm_config) without return types