启科量子 QuBranch 正式开源
近日,随着启科量子研发团队在 QuBranch 研发方面工作的持续推进,已在量子编程集成环境软件开发方面取得重大进展。启科量子于今日正式宣布,将自研量子编程 IDE 软件 QuBranch 进行开源。
QuBranch 是基于 VS Code 庞大的生态群,专为开发者们开发的一种量子编程工具,包括编辑、调试、量子模拟执行等功能,可为量子计算编程提供一站式集成开发环境,支持 Windows、Mac、Linux 等操作系统。量子编程开发工具 QuBranch 目前已完成三期功能研发,可以进行量子程序编辑、调试、模拟执行等(包括模拟运行 Grover 等多种量子算法)。后续,启科量子研发团队还将开发和完善代码编辑、调试、量子模拟执行、经典宿主语言支持等相关功能,为量子开发者们提供更高效智能的 QuBranch。随着软件的开源,相信未来也会有越来越多的功能加入其中。
QuBranch 介绍
IDE(Integrated Development Environment)也称集成开发环境,是为开发者提供程序开发环境的应用程序,一般包括三个主要组件:源代码编辑器(Editor)、编译器(Compiler)、调试器(Debugger)。开发人员可以通过图形用户界面(GUI)访问这些组件,并进行代码编辑、调试和执行。开发者常用的 IDE 主要有微软的 Visual Studio 系列、NetBeans、PyCharm 等。
与传统编程类似,在量子编程方面为了满足量子程序开发者的编程需求,量子软件研发团队需要开发普遍适用的集成开发环境软件和量子编程语言。量子线路图就是一种简洁的量子编程语言,此外还有“量子计算汇编语言”和“量子计算高级编程语言”等量子编程语言。
而量子软件必须满足量子计算的底层物理原理和算法逻辑,对量子程序开发者的专业性要求较高。如何降低量子程序开发准入门槛,赋予量子程序开发者更智能高效的开发方式,量子界的瑞士军刀——启科 QuBranch 应运而生。启科量子 QuBranch 的诞生旨在降低量子程序开发准入门槛,为量子程序开发者提供更智能便捷的开发方式。
功能及特色
QuBranch 主要包括了量子计算程序的编辑、编译、运行、调试及量子线路可视化编辑、执行等功能,是启科自主研发的量子软件体系架构中的重要一环,属于启科量子软件体系中面向用户的量子编程框类软件。QuBranch 目前已完成 Windows 和 Mac 两种系统的测评,远程单机版本(Arm-Box)、Slurm 版开发工作也已完成。QuBranch 提供桌面版本供用户下载,可使用本机进行量子计算模拟或配置使用远程计算资源。启科自研的量子编程类软件除 QuBranch 外,还包括了启科自主研发的 Python 量子编程语言框架 QuTrunk、量子算法库 QuFlower 等。各编程类软件搭配使用,可使 QuBranch 主要可以实现以下几项主要功能:
- 丰富的可视化效果与有效的管理功能
在环境准备阶段,QuBranch 可预选量子框架、基础环境和包。QuBranch 中可高效管理 Python 和 C++ 环境、使用 Python 和 C++ 等经典宿主语言编辑代码、轻松切换编程语言。其中,QuComposer 功能模块可实现以图形拖拽和代码编辑两种方式绘制量子线路,量子线路与代码区域还具有双侧联动效果。用户在使用 QuBranch 时可一键导入工具库,编码过程中还支持代码提示、代码联想、代码高亮等多种功能有效辅助开发工作。
- 量子程序调试与运行
QuBranch 支持错误代码位置跳转,用户可通过观察程序运行步骤,发现程序中出现的逻辑错误,并及时对语法和逻辑错误做出修正。量子模拟执行方面,启科量子研发团队自主研发的 QuTrunk 目前以量子计算模拟器 QuSimulator 作为后端,还可扩展支持更多后端支持量子程序的运行与调试。
- 一站式量子编程开发环境
QuBranch 可通过结合量子编程框架 QuTrunk、调用 QuFlower 的量子算法资源,最终实现多种量子算法的运行。现阶段启科已经可以通过 QuTrunk 的 backend 接口,采用 RPC 与 QuSimulator 在 QuBranch 上模拟运行多种量子算法。
- 以图表形式直观显示程序输出信息和设备信息
QuBranch 可以自动统计量子态信息、量子设备信息和运行数据信息,并以柱状图、折线图、雷达图等多图表形式显示数据输出结果,输出 json 数据格式化。程序运行结束后还支持生成量子线路图,并一键导出生成的图形。
- 一键拖拽实现可视化量子编程
QuBranch 中通过查看-命令面板调用 QuComposer 实现可视化编程。只需通过简单拖拽量子逻辑门即可生成量子线路和相应代码,测量结果将由 QuComposer 自带的柱状图显示。
以下内容为 QuBranch 部分功能展示:
代码编辑与调式
- 已完成基础软件功能和开发功能的开发工作,如可在 Windows 和 Mac 系统上完成 QuBranch 安装并正常运行;编辑器可输入 Python/C++/C 代码,并对代码关键字进行高亮显示,还可提示出错代码并标明相应错误原因;已完成 C/C++ 编译器的配置,并能设置 Linking libraries 和 Include 目录。
- 运行与调试功能方面,可显示变量、监视、调用堆栈及断点信息。当运行代码时出现中断,软件会在状态栏显示出错信息,并输出中断运行时的堆栈信息;编辑器可在特定的行设置断点,代码运行时到达断点会中止,并提供调试信息。
- 支持 Python 和 C++ 等经典宿主语言。可结合量子编程框架 QuTrunk,并调用 QuFlower 的量子算法资源运行多种量子算法。
- 在【查看】-【命令面板】中输入>evaluating:测评
即可调出测评界面,以图表与可视化相结合的方式展示测评信息。
信息监控与可视化
- 量子程序运行可控、可查、可改。QuBranch 可展现出类似于 TensorBoard 视觉呈现的代码执行流程,控制量子软件运行、软件运行信息并修改量子软件执行流程。
- 量子编程模型的可视化 tensorboard、latex、pdf、3D 显示。
- 实时监控硬件设备信息如 CPU、GPU 等,既可进行本机测试,还可远程调用启科 QuBox 等后端设备资源。
自动配置与高效管理
- 有效管理种类繁杂、数目繁多的文件。QuBranch 以插件提供 C++ 项目目录属性(包含目录、库目录)配置功能。
- 自动配置必要工具,尽量减少用户手动安装操作,QuBranch 内置必要的 Python 包、C++ 库,一并安装 Python、ProjectQ。
- 按需选择项目执行环境和筛选包列表。QuBranch 以插件提供 Python 环境及包管理功能,用户可在环境列表中选择需求环境,并在该环境显示的所有包列表中按 Installed、Not Installed、 Updatable、Selected、All 等类别筛选出需要的包列表。
- 通过 Job 管理操作可查看历史任务运行结果,并以可视化方式显示参数信息。本地单机版、远程单机版、Slurm 版完成算法运行后详细报告会显示算法名称、量子比特数、测试轮次、运行用时、线程数、CPU 使用率、内存使用率等参数信息,报告图表会以折线图形式显示比特数和运行时间的关系、以雷达图形式显示量子计算模拟信息、以柱状图显示量子计算模拟能力的好坏等等。
量子线路与图形化展示
- 图形化展示方面,QuComposer 支持量子线路绘制功能,如可以以量子线路图形拖拽与代码编辑两种方式生成量子线路,使经典-量子混合编程更加简单和直观。QuBranch 可以与启科量子编程框架 QuTrunk(启科量子编程开源软件框架,支持用户在 Python 中执行量子程序)结合使用,也可兼容开源量子编程框架 ProjectQ 生成量子线路图。量子线路是量子程序基本的表示方式,主要由量子比特和量子操作两部分构成。如同量子计算机上运行的软件程序最终要通过电子门实现,量子线路由多个量子门构成。由于组成量子线路的每一个量子逻辑门都是一个酉矩阵,所以整个量子线路也是一个大的酉矩阵。QuBranch 结合 QuTrunk 使用可以生成量子线路图如下:
开源意义及展望
QuBranch 作为可进行量子编程的编程软件,使用人群将覆盖学生、量子开发人员、科研人员等多个群体。使用量子语言进行量子编程是开发工作中较基础环节,如何最大效率的构建量子程序是研究团队一直追求的目标。此次启科量子开源 QuBranch 旨在让没有物理专业背景的技术人员跨越量子知识障碍,轻松使用 QuBranch 开发量子程序,发挥量子计算的优异特性。相信在不久的未来,依托开源这一行为,也能为 QuBranch 带来更多研发方向上的设计灵感。
另附:
QuBranch 开源地址:http://github.com/qudoor/qubranch
QuSaaS 平台地址:http://developer.queco.cn
欢迎大家下载使用,具体使用教程参看学习文档 (queco.cn) QuBranch 介绍部分。
版权声明: 本文为 InfoQ 作者【启科量子开发者官方号】的原创文章。
原文链接:【http://xie.infoq.cn/article/d6e6d9d87d8face2edc200cbb】。文章转载请联系作者。
评论