量子编译器的自动基准测试平台
arline-benchmarks的Python项目详细描述
Arline基准
Arline Benchmarks平台允许对量子电路映射/压缩的各种算法进行基准测试 在预定义的硬件类型和目标电路类的列表中彼此显示。在
演示(报表生成预览)
基准运行
乳胶报告
支持的编译框架列表
安装
$ pip3 install arline-benchmarks
或者,可以在可编辑模式下本地安装Arline基准测试。
将Arline基准测试库cd
克隆到源目录:
将存储库cd
克隆到源目录:
我们建议在virtual environment中安装Arline基准测试。在
$ virtualenv venv $source venv/bin/activate
如果您的计算机上没有安装virtualenv
,请运行
$ pip3 install virtualenv
接下来,要安装Arline基准测试平台,请执行以下操作:
$ pip3 install .
或者,可以在编辑模式下安装Arline基准测试:
$ pip3 install -e .
TeXLive安装
自动生成LaTeX报告是Arline基准测试的重要部分。 为了启用Arline基准测试的全部功能,您需要安装TeXLive发行版。在
Ubuntu或Debian Linux:
要安装TeXLive,只需在终端中运行:
$ sudo apt install texlive-latex-extra
窗口:
在Windows上,可以通过从official website下载源代码来安装TeXLive 并遵循安装说明。在
苹果MacOS:在MacOS上,只需从official website安装MacTex发行版。在
Linux/Windows/MacOS的替代解决方案:
TeXLive也可以作为MikTex包的一部分安装,方法是从 https://miktex.org。TeXworks前端不是必需的,可以忽略。在
入门
基准示例运行
为了运行第一个基准测试实验,执行以下命令
$cd arline_benchmarks/configs/compression/ $ bash run_and_plot.sh
执行Bash脚本run_and_plot.sh
scripts/arline-benchmarks-runner
-运行基准测试并将结果保存到results/output /gate_chain_report.csv
arline_benhmarks/reports/plot_benchmarks.py
-根据results/output /gate_chain_report.csv
到{}生成带有度量的绘图 scripts/arline-latex-report-generator
-生成{}和 results/latex/benchmark_report.pdf
报告具有基准测试结果的文件。在
配置文件configs/compression/config.jsonnet
包含基准测试的完整描述。在
使用基准指标生成绘图
重新绘制绘图执行(从arline_benchmarks/configs/compression/
)
$ bash plot.sh
生成乳胶报告
根据上次基准测试运行重新生成LaTeX报告(从arline_benchmarks/configs/compression/
)
$ arline-latex-report-generator -i results -o results
如何创建自定义编译管道?
Arline基准测试的关键元素是编译管道的概念。
管道是一个编译序列stages: [stage1, stage2, stage3, ..]
。在
典型的管道包括以下几个阶段:
- 目标电路的生成
- 逻辑量子位到物理量子位的映射
- 特定硬件耦合拓扑的量子比特路由
- 应用电路恒等式进行电路压缩
- 恢复到最终硬件门集
通过堆叠各个阶段(可能对应于不同的阶段),可以轻松地创建自定义编译管道
编译器提供程序)。管道可以由任意顺序组合的无限数量的编译阶段组成。
唯一的例外是第一阶段target_analysis
和最后一阶段gateset rebase stage
(可选)。在
配置文件.jsonnet
管道应该在主配置文件.jsonnet中指定。
配置文件的示例位于configs/compression/config.jsonnet
。在
- 函数
local pipelines_set(target, hardware, plot_group)
定义要进行基准测试的编译管道列表[pipeline1, pipeline2, ...]
。在
每个pipeline_i = {...}
都表示为一个字典,其中包含管道的描述和
编译阶段。在
- 在
目标电路生成在.jsonnet函数中定义
在local random_chain_cliford_t_target(...)
和{}。在 - 在
基准测试实验规范在字典中的配置文件末尾用键
在{pipelines: ..., plotter: ...}
定义
API文档
API文档在这里documentation。 要生成HTML API文档,请运行以下命令:
$cd docs/ $ make html
运行测试
要运行单元测试并检查已安装的依赖项,请执行以下操作:
$ tox
文件夹结构
arline_benchmarks
│
├── arline_benchmarks # platform classes
│ ├── config_parser # parser of pipeline configuration
│ ├── engine # pipeline engine
│ ├── metrics # metrics for pipeline comparison
| ├── pipeline # pipeline
│ ├── reports # LaTeX report generator
│ ├── strategies # list of strategies for mapping/compression/rebase
│ └── targets # target generator
│
├── circuits # qasm circuits dataset
│
├── configs # configuration files
│ └── compression # config .jsonnet file and .sh scripts
│
├── docs # documentation
│
├── scripts # run files
│
└── test # tests
├── qasm_files # .qasm files for test
└── targets # test for targets module
- 项目
标签: