code: def test_multiprocessing():
      total_num_nodes = 5
      total_num_edges = 10
      num_ntypes = 2
      num_etypes = 3
      (
          csc_indptr,
          indices,
          node_type_offset,
          type_per_edge,
          node_type_to_id,
          edge_type_to_id,
      ) = gbt.random_hetero_graph(
          total_num_nodes, total_num_edges, num_ntypes, num_etypes
      )
      edge_attributes = {
          "a": torch.randn((total_num_edges,)),
      }
      graph = gb.fused_csc_sampling_graph(
          csc_indptr,
          indices,
          node_type_offset=node_type_offset,
          type_per_edge=type_per_edge,
          node_type_to_id=node_type_to_id,
          edge_type_to_id=edge_type_to_id,
          edge_attributes=edge_attributes,
      )
  
      p = mp.Process(
          target=process_csc_sampling_graph_multiprocessing,
          args=(graph,),
      )
      p.start()
      p.join()
  
imports: import os
  import pickle
  import re
  import tempfile
  import unittest
  import backend
  import dgl
  import dgl.graphbolt
  import pytest
  import torch
  import torch.multiprocessing
  from dgl.graphbolt.base import etype_str_to_tuple
  from scipy import sparse
  from ..None import gb_test_utils
label_desc: Use image node_id 15 for calling a global function with example usage: test_multiprocessing() without return types