class_docstr: This worker will send requests to a backend process, and measure the
  throughput and latency of those requests as well as GPU utilization.
code: def __init__(
      self,
      metrics_dict,
      request_queue,
      response_queue,
      read_requests_event,
      batch_size,
      num_iters=10,
  ):
      super().__init__()
      self.metrics_dict = metrics_dict
      self.request_queue = request_queue
      self.response_queue = response_queue
      self.read_requests_event = read_requests_event
      self.warmup_event = mp.Event()
      self.batch_size = batch_size
      self.num_iters = num_iters
      self.poll_gpu = True
      self.start_send_time = None
      self.end_recv_time = None
  
imports: import argparse
  import asyncio
  import os.path
  import subprocess
  import threading
  import time
  from concurrent.futures import ThreadPoolExecutor
  from queue import Empty
  import numpy
  import pandas
  import torch
  import torch.multiprocessing
label_desc: Use image node_id 1 to create a new FrontendWorker object from inherited base classes: mp with example: obj = FrontendWorker(metrics_dict, request_queue, response_queue, read_requests_event, batch_size, num_iters)