code: def report_results(args, read_op, pool_results):
      # print(f'pool_results = {pool_results}')
      io_string = "Read" if read_op else "Write"
      if None in pool_results:
          print(
              f"Failure in one of {args.threads} {io_string} processes"
          )
          return
  
      total_bytes = sum([num_bytes for _, _, num_bytes in pool_results])
  
      task_latency_sec = max([sec for _, sec, _ in pool_results])
      task_speed_GB = total_bytes / task_latency_sec / BYTES_PER_GB
      print(f"Task {io_string} Latency = {task_latency_sec} sec")
      print(f"Task {io_string} Speed = {task_speed_GB} GB/sec")
  
      e2e_latency_sec = max([sec for sec, _, _ in pool_results])
      e2e_speed_GB = total_bytes / e2e_latency_sec / BYTES_PER_GB
      print(f"E2E {io_string} Latency = {e2e_latency_sec} sec")
      print(f"E2E {io_string} Speed = {e2e_speed_GB} GB/sec")
  
label_desc: Use image node_id 3 for calling a global function with example usage: report_results(args, read_op, pool_results) without return types