中国首款量子计算机开发环境开放下载:Windows可安装

七级用户 miku233 2023-7-21 3150

近日,中国首款量子计算机操作系统本源司南PilotOS客户端正式上线。

PilotOS客户端是本源量子完全自主研发的一款一站式学习与开发平台,该客户端集成了量子编程开发环境所需的量子编程框架。

屏幕截图 2023-07-21 185209.png

PilotOS客户端集成量子编程开发环境所需的Python、QPanda等服务,用户无需安装配置,也无需联网,可以直接进行本地量子计算编程。

屏幕截图 2023-07-21 185205.png

它还支持对接不同平台,借助司南QCompiler服务,可把QPanda编写的量子程序编译到不同量子计算平台的对应的量子语言,目前已支持QASM、OriginIR、Quil等多种量子语言。

其安装包大小423MB,支持Windows 10/11 64位系统,要求内存8GB及以上,硬盘100GB及以上。

ps.PilotOS客户端目前为Beta版本,可提供Windows环境版本。后期逐步开放macOS及Linux版本。

屏幕截图 2023-07-21 185214.png

下载地址:

https://qcloud.originqc.com.cn/zh/pilotos

用例说明

在量子计算机中构建量子纠缠态数学公式: Ψ=21(00+11) ,并对量子态进行测量,测量次数设定为1000次,统计测量结果的次数。 预期结果为”00”和”11”各占50%。

步骤一:导入pyqpanda模块

from pyqpanda import *

步骤二:初始化量子虚拟机

在真正的量子计算机没有成型之前,我们通过在经典计算机中的软件模拟构造了量子计算系统——量子虚拟机,用来验证量子算法和量子应用。为了让量子程序能够执行,首先要创建一个量子虚拟机,Jupyter支持向本地虚拟机和本源悟源超导量子计算机、集群虚拟机提交任务。示例以调用本地全振幅量子虚拟机为例:

#使用CPUQVM构造函数创建连接到虚拟机的qvm对象
#使用全振幅量子虚拟机
qvm = CPUQVM()
#初始化量子虚拟机
qvm.init_qvm()

步骤三:申请量子比特和经典寄存器

构建一个量子程序,我们需要先在虚拟机中申请量子比特。qAllocqAlloc_many函数分别可以从量子比特池中申请一个和多个量子比特。

#申请多个量子比特,示例为申请2个量子比特
qubits = qvm.qAlloc_many(2) 
#申请多个经典寄存器,示例为申请2个经典寄存器 
cbits = qvm.cAlloc_many(2)

步骤四:构建量子程序

  • 构建量子线路
    量子线路QCircuit是由量子比特演化线路和作用在量子比特上的量子逻辑门构成的,量子线路产生的效果,等同于量子逻辑门依次作用在量子比特上。
    向量子线路中插入H门CNOT门。添加以下代码并打印线路:
    #初始化QCircuit实例
    circuit = QCircuit()
    #向量子线路中插入H门、CNOT门,H门作用在q_0比特上,CNOT门作用在控制比特q_0、目标比特q_1上
    circuit << H(qubits[0]) \
          << CNOT(qubits[0], qubits[1])
  • 打印量子线路

    print(circuit)
    打印的量子线路:
            ┌─┐        
     q_0:  |0>─┤H├ ───■── 
            └─┘ ┌──┴─┐
     q_1:  |0>──── ┤CNOT├  
             └────┘
  • 构建量子程序
    在量子虚拟机中构建好的量子线路不能直接计算,需要进一步构建QProg实例。QProg是量子编程的一个容器类,是一个量子程序的最大单位。

    #创建空的量子程序
    prog = QProg()
    #将量子线路插入量子程序
    prog << circuit

步骤五:测量并运行量子程序

  • 概率测量操作
    概率测量,获得目标量子比特的振幅。prob_run_list函数能够运行程序并获得目标量子比特的振幅,目标量子比特可以是一个量子比特也可以是多个量子比特的集合。
    使用方法如下:

    # 运行量子程序,输出量子态的概率测量结果
    pmeasure_result = qvm.prob_run_list(prog, qubits)
    print(pmeasure_result)

    输出结果如下:
    [0.5000000000000001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5000000000000001]

  • 量子测量-蒙特卡罗测量操作
    量子测量是指通过外界对量子系统进行干扰来获取需要的信息,是利用蒙特卡罗方法的投影测量方式,对量子比特进行测量,测量后量子态会坍缩到一个确定的态上。当构建好量子程序之后,需要对量子比特进行量子测量,将结果读取出来,并存储到经典寄存器上。在量子程序中,可以使用Measure对某一个量子比特做测量操作。
    如果要测量所有的量子比特并将其存储到对应的经典寄存器上,可以进行如下操作:

    # 量子程序插入量子测量
    prog << measure_all(qubits, cbits)

通过调用run_with_configuration函数来得到量子程序的测量结果。使用方法如下:

# 在虚拟机上执行量子程序,统计量子程序1000次运行的测量结果
measure_result = qvm.run_with_configuration(prog, cbits, 1000) 
print(measure_result)

输出结果:
{'00': 488, '11': 512}

完整示例代码

from pyqpanda import *
# 创建一个CPU计算的量子虚拟机,然后初始化
qvm = CPUQVM()qvm.init_qvm()
# 申请量子比特和经典寄存器
qubits = qvm.qAlloc_many(2)cbits = qvm.cAlloc_many(2)
# 构建量子线路
circuit = QCircuit()
circuit << H(qubits[0]) \
        << CNOT(qubits[0], qubits[1])
print(circuit)
# 构建量子程序
prog = QProg()
prog << circuit
# 获得目标量子比特的概率测量结果
pmeasure_result = qvm.prob_run_dict(prog, qubits)
print(pmeasure_result)
# 量子程序插入量子测量
prog << measure_all(qubits, cbits)
# 打印量子程序
print(prog)
# 量子程序运行1000次,返回每次测量结果,并进行统计
measure_result = qvm.run_with_configuration(prog, cbits, 1000)
print(measure_result)
# 释放系统资源qvm.finalize()



上一篇:2TB 550元!达墨公布新款 2230 SSD
下一篇:周末陪娃一起马车直播了。[直播结束了]
热门回复
  • 六级用户 阿列克小谢 2023-7-21
    9
    遇事不决,量子力学
    • 老男人游戏网配套论坛
      28
        立即登录 立即注册
最新回复 (26)
  • 六级用户 阿列克小谢 2023-7-21
    9 2
    遇事不决,量子力学
  • 三级用户 th123 2023-7-21
    0 3
    还是感觉是个噱头
  • 四级用户 c750327411 2023-7-21
    0 4
    大部分估计都用不到...
  • 四级用户 509 2023-7-21
    0 5
    看了,但不知道自己安装后用来干嘛
  • 受限用户 廖大侠 2023-7-21
    0 6
  • 四级用户 苏姿丰 2023-7-21
    0 7
    我的中国芯
  • 五级用户 掌机游戏爱好者 2023-7-21
    1 8
    廖大侠 你说的我都懂,但是连在一起我就有点理解不能。吃西瓜吧,大夏天的,看个剧

    一起吃瓜

    4EDACD5D-D05B-49A9-B5B7-5DA288DB78B4.jpeg

  • 五级用户 gymzatan 2023-7-21
    2 9
    不懂就问,除了生成随机数以外还有什么算法是这个系统跑得特别快的?
  • 四级用户 browse 2023-7-21
    0 10
    什么操作系统需要装在另一个操作系统上
  • 五级用户 RtcBoy 2023-7-21
    0 11
    browse 什么操作系统需要装在另一个操作系统上
    虚拟机
  • 六级用户 一条大辉狼 2023-7-21
    0 12
    掌机游戏爱好者 廖大侠 你说的我都懂,但是连在一起我就有点理解不能。吃西瓜吧,大夏天的,看个剧 一起吃瓜
    学习了! 这个比较有用!
  • 四级用户 红白机智力卡带 2023-7-21
    0 13
    意义重大
    可以模拟对撞实验了 
    裂变聚变
    二手数学家、物理学家、化学家可以拯救世界了
  • 四级用户 vDtv3vNZoE5d 2023-7-21
    0 14
    忽悠,继续忽悠
  • 六级用户 进站劣人 2023-7-21
    0 15
    量子力学,以后会发展成什么样。
  • 五级用户 x81120885 2023-7-21
    0 16
    第一眼看成司马南OS了?
  • 五级用户 panndora 2023-7-22
    0 17
    呵呵呵,中国科技领先世界量子技术民用化,点赞。
    不用学走就可以先跑起来,弯道超车指日可待。借鸡生蛋思路明确。绝不浪费人力物力搞没有用的基础研究。领先世界100年。
  • 五级用户 panndora 2023-7-22
    0 18
    呵呵呵,中国科技领先世界量子技术民用化,点赞。
    不用学走就可以先跑起来,弯道超车指日可待。借鸡生蛋思路明确。绝不浪费人力物力搞没有用的基础研究。领先世界100年。
  • 五级用户 panndora 2023-7-22
    0 19
    呵呵呵,中国科技领先世界量子技术民用化,点赞。
    不用学走就可以先跑起来,弯道超车指日可待。借鸡生蛋思路明确。绝不浪费人力物力搞没有用的基础研究。领先世界100年。
  • 四级用户 supervisor 2023-7-22
    0 20
    标题党?
    人家也只是说编程环境吧。
    • 老男人游戏网配套论坛
      28
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。