code: def benchmark_multiple_problems_methods(
      problems: Iterable[BenchmarkProblemBase],
      methods: Iterable[BenchmarkMethod],
      seeds: Iterable[int],
  ) -> List[AggregatedBenchmarkResult]:
      """
      For each `problem` and `method` in the Cartesian product of `problems` and
      `methods`, run the replication on each seed in `seeds` and get the results
      as an `AggregatedBenchmarkResult`, then return a list of each
      `AggregatedBenchmarkResult`.
      """
      return [
          benchmark_one_method_problem(problem=p, method=m, seeds=seeds)
          for p, m in product(problems, methods)
      ]
  
file_path: Ax/ax/benchmark/benchmark.py
imports: from itertools import product
  from logging import Logger
  from time import time
  from typing import Iterable, List
  import numpy
  from ax.benchmark.benchmark_method import BenchmarkMethod
  from ax.benchmark.benchmark_problem import BenchmarkProblemBase, BenchmarkProblemWithKnownOptimum
  from ax.benchmark.benchmark_result import AggregatedBenchmarkResult, BenchmarkResult
  from ax.core.experiment import Experiment
  from ax.core.utils import get_model_times
  from ax.service.scheduler import Scheduler
  from ax.utils.common.logger import get_logger
  from botorch.utils.sampling import manual_seed
label_desc: Use image node_id 5 for calling a global function with example usage: benchmark_multiple_problems_methods(problems, methods, seeds) and returns: unknown