code: def bigann(bio):
      for scale in [1, 2, 5, 10, 20, 50]:
          benchmark = Benchmark(
              num_threads=32,
              training_vectors=DatasetDescriptor(
                  namespace="std_t", tablename="bigann1M"
              ),
              database_vectors=DatasetDescriptor(
                  namespace="std_d", tablename=f"bigann{scale}M"
              ),
              query_vectors=DatasetDescriptor(
                  namespace="std_q", tablename="bigann1M"
              ),
              index_descs=[
                  IndexDescriptor(
                      factory=f"IVF{2 ** nlist},Flat",
                  )
                  for nlist in range(11, 19)
              ]
              + [
                  IndexDescriptor(
                      factory=f"IVF{2 ** nlist}_HNSW32,Flat",
                      construction_params=[
                          None,
                          {"efConstruction": 200, "efSearch": 40},
                      ],
                  )
                  for nlist in range(11, 19)
              ],
              k=1,
              distance_metric="L2",
          )
          benchmark.set_io(bio)
          benchmark.benchmark(
              f"result{scale}.json",
              local=False,
              train=True,
              reconstruct=False,
              knn=True,
              range=False,
          )
  
file_path: faiss/benchs/bench_fw_ivf.py
imports: import logging
  import argparse
  import os
  from bench_fw.benchmark import Benchmark
  from bench_fw.benchmark_io import BenchmarkIO
  from bench_fw.descriptors import DatasetDescriptor, IndexDescriptor
label_desc: Use image node_id 2 for calling a global function with example usage: bigann(bio) without return types