code: def _collect_metrics_process(
      task: BenchmarkTask,
      data_cache_dir: Path,
      random_seed: int,
      metrics_queue: "mp.Queue[Optional[Mapping[Metric, float]]]",
  ) -> None:
      metrics: Optional[Mapping[Metric, float]] = None
      try:
          metrics = _collect_metrics(task, data_cache_dir, random_seed)
      except Exception:  # pylint: disable=broad-except
          traceback.print_exc()
      metrics_queue.put(metrics)
  
imports: import argparse
  import json
  import multiprocessing
  import traceback
  from datetime import timedelta
  from pathlib import Path
  from time import perf_counter
  from typing import Mapping, Optional
  import numpy
  import pandas
  from tabulate import tabulate
  import benchmark.benchmarks
  import benchmark.metrics
  import gpflow
  from benchmark.benchmark_api import BENCHMARK_SUITES, BenchmarkSuite, BenchmarkTask
  from benchmark.dataset_api import DATASET_FACTORIES
  from benchmark.metadata import BenchmarkMetadata
  from benchmark.metric_api import Metric
  from benchmark.model_api import MODEL_FACTORIES
  from benchmark.paths import setup_dest
  from benchmark.plot import plot
  from benchmark.sharding import ShardingStrategy
label_desc: Use image node_id 2 for calling a global function with example usage: _collect_metrics_process(task, data_cache_dir, random_seed, metrics_queue) without return types