class_docstr: Polls smi in a forked child process, saves measurements to instance vars
code: def run(self):
      (parentReadPipeFileNo, childWritePipeFileNo) = os.pipe2(
          os.O_NONBLOCK
      )
      (childReadPipeFileNo, parentWritePipeFileNo) = os.pipe2(
          os.O_NONBLOCK
      )
      pid = os.fork()
      # parent
      if pid:
          os.close(childReadPipeFileNo)
          os.close(childWritePipeFileNo)
          self.__runParentLoop(
              parentReadPipeFileNo, parentWritePipeFileNo
          )
  
      # child
      else:
          os.close(parentReadPipeFileNo)
          os.close(parentWritePipeFileNo)
          self.__runChildLoop(childReadPipeFileNo, childWritePipeFileNo)
          sys.exit(0)
  
file_path: cugraph/python/utils/gpu_metric_poller.py
imports: import os
  import sys
  import threading
  from pynvml import smi
label_desc: Use image node_id 6 for calling the GPUMetricPoller obj's underlying member method code with example usage: obj.run() without return types