Files
2026-05-19 17:19:36 +08:00

79 lines
2.3 KiB
Python

"""Launches the circuit benchmark script for user given arguments."""
import argparse
from benchmarks.scripts import library_benchmark, qibotn_benchmark
parser = argparse.ArgumentParser()
parser.add_argument(
"--nqubits",
nargs=2,
type=int,
metavar=("MIN", "MAX"),
default=[10, 10],
help="Inclusive qubit-count range MIN MAX. Each size is run; per-size "
"expectations are printed, and their arithmetic mean is logged as expectation_result.",
)
parser.add_argument(
"--library",
default="qibo",
type=str,
help="Quantum simulation library to use in benchmark. "
"See README for the list of available libraries.",
)
parser.add_argument(
"--library-options",
default=None,
type=str,
help="String with options for the library. "
"It should have the form 'arg1=value1,arg2=value2,...'. "
"Each library supports different options.",
)
parser.add_argument(
"--circuit",
default="qft",
type=str,
help="Type of circuit to use. See README for the list of " "available circuits.",
)
parser.add_argument(
"--circuit-options",
default=None,
type=str,
help="String with options for circuit creation. "
"It should have the form 'arg1=value1,arg2=value2,...'. "
"See README for the list of arguments that are "
"available for each circuit.",
)
parser.add_argument(
"--precision",
default=None,
type=str,
help="Numerical precision of the simulation. "
"Choose between 'double' and 'single'.",
)
parser.add_argument(
"--nreps",
default=1,
type=int,
help="Number of repetitions of the circuit execution. " "Dry run is not included.",
)
# parser.add_argument("--transfer", action="store_true",
# help="If used the final state array is converted to numpy. "
# "If the simulation device is GPU this requires a "
# "transfer from GPU memory to CPU.")
parser.add_argument(
"--filename",
default=None,
type=str,
help="Directory of file to save the logs in json format. "
"If not given the logs will only be printed and not saved.",
)
if __name__ == "__main__":
args = vars(parser.parse_args())
args["circuit_name"] = args.pop("circuit")
qibotn_benchmark(**args)