text: from dataclasses import dataclass
  
  
  @dataclass
  class BenchmarkDefinition:
      max_wallclock_time: float
      n_workers: int
      elapsed_time_attr: str
      metric: str
      mode: str
      blackbox_name: str
      dataset_name: str
      time_this_resource_attr: str = None
  
  
  def fcnet_benchmark(dataset_name):
      return BenchmarkDefinition(
          max_wallclock_time=1200,
          n_workers=4,
          elapsed_time_attr="metric_elapsed_time",
          metric="metric_valid_loss",
          mode="min",
          blackbox_name="fcnet",
          dataset_name=dataset_name,
      )
  
  
  def nas201_benchmark(dataset_name):
      return BenchmarkDefinition(
          max_wallclock_time=3600 * 4,
          n_workers=4,
          elapsed_time_attr="metric_elapsed_time",
          time_this_resource_attr="metric_runtime",
          metric="metric_valid_error",
          mode="min",
          blackbox_name="nasbench201",
          dataset_name=dataset_name,
      )
  
  
  benchmark_definitions = {
      "fcnet-protein": fcnet_benchmark("protein_structure"),
      "fcnet-naval": fcnet_benchmark("naval_propulsion"),
      "fcnet-parkinsons": fcnet_benchmark("parkinsons_telemonitoring"),
      "fcnet-slice": fcnet_benchmark("slice_localization"),
      "nas201-cifar10": nas201_benchmark("cifar10"),
      "nas201-cifar100": nas201_benchmark("cifar100"),
      "nas201-ImageNet16-120": nas201_benchmark("ImageNet16-120"),
  }
  