量子加速超级计算简介
本文转载自:量子加速超级计算简介(2024年 3月 13日) By Mark Wolf
https://developer.nvidia.cn/zh-cn/blog/an-introduction-to-quantum-accelerated-supercomputing/
文章目录
- 一、概述
- 二、量子计算机的构建块:QPU 和量子位
- 三、量子计算硬件和算法
- 四、QPU 可以加速哪些工作流程?
- 五、超级计算机如何助力量子计算?
- 六、启用量子加速工作流程
- 七、探索量子加速超级计算

一、概述
开发有用的 量子计算 是一项涉及政府、企业和学术界的全球性工作。
量子计算的优势可以帮助解决一些与应用程序(如材料模拟、气候建模、风险管理、供应链优化和生物信息学)有关的全球性挑战。
实现量子计算的优势需要将量子计算机集成到现有的超级计算基础架构和科学计算工作流程中,并允许领域科学家使用熟悉的语言和熟悉的工具对其进行编程。
这种工作流程的普及和开发强大可靠的软件堆栈正是使 GPU 能够革新超级计算的关键所在。
从使加速计算成功的框架开始构建是量子计算从研究项目到助力科学发展的关键。
这种理念称为量子加速超级计算。
本文提供了关于量子计算机的基础知识,以及量子加速超级计算如何利用其优势并解决其弱点的见解。
文末还提供了开发者构建可扩展且高性能的量子加速工作流程的一些实际注意事项,这些工作流程将随着量子计算机的发展而扩展。
视频1. 探索量子加速超级计算的前沿世界
二、量子计算机的构建块:QPU 和量子位
量子加速超级计算利用 [量子处理器 (QPU)](https://blogs.nvidia.com/blog/what-is-a-qpu/#:~:text=A QPU%2C aka a quantum,than processors in today’s computers.) 来执行量子计算任务。
QPU 的核心是一组名为量子位的二级量子物理系统。
量子位可以通过各种方式创建,例如利用捕获离子、光振动和通过超导环传输等现有方法。
相较于只能处于 0 或 1 状态的经典比特,量子比特可以同时存在于这两种状态的组合中,因此可以更灵活地编码信息。
这种现象称为超级叠加,也是为什么拥有
量子位可以存储呈指数级增长的数量 (
) 的经典信息。
多个量子位点通过名为干涉和相互作用的现象进行交互,从而能够以独特的方式处理量子信息。
不可以直接访问完整的量子状态。
量子计算机输出信息的唯一途径是通过测量每个量子位,返回 0 或 1 的随机概率,并将它们的超级状态聚合到相应的经典状态。
许多重复测量 (样本) 的分布提供了对量子状态不可直接观察的额外见解。
量子位的状态通常表示为图 1 中的 Bloch 球体上的向量。
图 1.量子位是一种小型物理对象,例如原子或超导体,可以表现出量子效应
三、量子计算硬件和算法
量子计算可以简化为两个主要组件:硬件 (QPU) 和量子算法。
硬件是一种非常复杂且精密设计的设备,用于保护、操纵和测量量子位。
许多类型的量子位被用于构建 QPU,每种类型都需要完全不同的硬件设计。
例如,捕捉离子 QPU 通过激光运行量子位,而超导 QPU 则使用微波脉冲运行量子位。
每种架构都具有与量子位质量、速度、可扩展性等有关的优缺点。
量子位 (qubit) 非常敏感于环境,即使是微小的干扰也会导致量子信息混乱 (decoherence),从而导致计算错误。
避免混乱非常困难,是实现有用的 QPU 的主要障碍。
量子计算的第二个方面是量子算法。
量子算法是一组数学运算,用于在测量系统中的两个量子位的情况下操控存储在一组量子位中的量子信息,以产生有意义的结果。
量子算法通常以量子电路的形式表示,如图 2 所示。
两条水平线表示系统中的两个量子位,从 |0>状态。
以下框和线表示单位或双位量子门操作。
图 2.简单的量子电路,描述两个量子位的相互关联
量子算法的设计非常复杂,因为它必须解决一个由经典信息组成的真实问题,并以一种可映射到量子系统、操作为量子信息的方式将其转换为量子解决方案,然后再将其转换回经典解决方案。
通常,一个成功的量子算法会有效准备一个量子状态,当多次采样时,它会以高概率产生“正确答案”。
量子电路中的每个操作都与目标量子比特进行了极其精确的物理交互,并引入了系统中的噪声,噪声可以快速累积并产生不一致的结果。
为了运行实用的量子算法,量子误差校正 (QEC) 代码必须使用多个噪声量子比特来编码逻辑量子比特,以保护量子信息。
量子误差校正 (QEC) 代码的开发仍然是解决 QPU 上实际问题的重大障碍之一。
四、QPU 可以加速哪些工作流程?
有一种常见的误解是,QPU 将加速任何类型的计算。
这可能不是真的,因为 QPU 非常适合执行非常特定的任务。
一个量子计算机的主要弱点是,只能通过非确定性测量
生成长度为 256 位的比特字符串
因此,了解在 QPU 上有理论证明或有效实现的问题类型至关重要,如下所列。
- **模拟量子系统:**QPU(量子系统本身)天然擅长模拟其他量子系统。
这可以实现从探索新的化学反应和材料到揭示高能物理学之谜的各种基础科学。 - **优化:**QPU 中存储的信息量呈指数级增长,这有助于找到更好的解决方案来应对大规模组合优化问题,从而为各种用例(包括路线规划、网格优化、遗传和组合产品选择)带来益处。
- **AI 和机器学习:**QPU 的特性使其非常适合构建和采样复杂分布,以及在高维数据集中找到模式。
这些技术非常可移植,可以为几乎任何科学和工业领域带来益处。 - **蒙特卡洛估计:**QPU 可以为蒙特卡洛估算提供理论上的二次加速,从而提高获取风险指标和金融预测的准确性和速度,从而在市场中获得竞争优势。
- **流体动力学:**空气动力学、天气模拟和水箱模拟是多尺度问题的示例,这些问题需要使用大型网格来解决差分方程系统。
QPU 正在探索用于解决差分方程系统的工具,以实现更精确的流体动力学模拟。
这些只是潜在的 QPU 应用程序之一。
随着硬件和算法研究的继续,这一列表可能会扩大,并且可能会发现新的应用程序和用例,这些应用程序和用例超出了我们当前的理解范围。
五、超级计算机如何助力量子计算?
第二个关于 QPU 的误解是,它们将削弱当今的计算机的重要性,因为它们高效地执行通常用于大部分超级计算资源的子程序。
QPU 的本质约束很快证明了这一点。
部署任何量子加速工作流程都需要来自高性能 CPU 和 GPU 以及尖端 AI 技术的大量支持。
实际上,量子加速超级计算能够提供更高的灵活性,因此每个处理器都能完成最适合的任务。
量子误差校正 (QEC) 曾被讨论为实际量子计算的前提条件。
QEC 是一个很好的示例,说明了 QPU 与 HPC 设备的紧密耦合是绝对必要的 .QEC 代码需要重复编码逻辑量子位,执行逻辑运算,并解码错误。
在量子算法运行期间,大部分工作都需要在辅助 CPU 和 GPU 上进行实时处理。
经典处理器必须与 QPU 紧密耦合;否则,延迟可能会使 QEC 程序变得非常缓慢。
很可能,许多 QEC 代码都需要快速执行计算密集型机器学习程序,这些程序需要可扩展的加速计算。
除 QEC 之外,在执行量子算法之前、之后或在执行量子算法期间,还需要执行其他重要的计算任务,例如:
- 优化硬件执行的量子电路编译
- 密集型预处理和后处理例程
- 高效管理硬件控制系统
- 管理多 QPU 交互
值得注意的是,传统超级计算机在量子计算研究的硬件和软件领域中发挥着重要作用。
通过量子模拟(即在经典计算机上模拟量子算法),可以获得比许多物理量子处理单元(QPU)更准确的结果,因为量子比特仍然存在噪声且数量有限。
这些模拟可以通过各种方式进行量子研究,例如通过生成无噪声基准数据来评估 QPU 噪声分布,或者根据其扩展行为确定新算法的可行性。
对于需要先进加速计算来推动模拟极限的经典处理器,量子模拟的成本会呈指数级增长。
六、启用量子加速工作流程
成熟的量子加速超级计算不会在某一时刻达到。
随着 QPU 和量子算法的改进,它们可以解决的重要问题的规模和性质将不断扩大。
今天开发和测试量子工作流程是为了做好准备,以便在开发者关心的问题出现时使用量子加速超级计算来解决这些问题。
以下是有关开发者制作稳健且适用于实际应用的量子加速工作流程的一些注意事项。
- 无 QPU 偏见:应用程序需要能够针对不同的 QPU 进行适当的定位,并且尽可能减少代码修改。
硬件中立开发可以节省开发者时间并提供更大的算法执行自由度。 - **与经典架构集成:**由于 QPU 需要来自超级计算机的庞大运营支持,因此必须开发工作流程,以便它们可以轻松集成到可扩展的 CPU 和 GPU 架构中。
低延迟连接非常重要,因此需要专门的架构来处理时间敏感型任务,例如 QEC。 - 高性能库:为了确保 QPU 的可扩展性,必须开发和使用高度优化的软件库,以便在必要的时间限制内高效执行所有经典任务。
- 可访问性:量子计算是一种高度跨学科的技术,需要与领域科学家进行直接互动。
开发必须在易于访问的环境中进行,用户来自各种计算背景。 - 用户灵活性:使用最终工作流程的人需要能够以他们的首选级别与代码进行交互。
同一应用程序的用户的首选级别可以从黑盒到高度可定制的研究实施各不相同。 - 稳定性:关键在于,任何量子开发都应在稳定的平台上进行,并与量子生态系统同步发展。
七、探索量子加速超级计算
NVIDIA 正在与整个量子生态系统的合作伙伴合作,开发功能强大、可扩展且易于使用的工具,使政府、大学和工业公司能够构建有用的量子加速超级计算应用程序。
如需了解更多信息,请访问 NVIDIA 量子计算 。
我们期待您亲自或虚拟地参加 NVIDIA GTC 2024 会议,共同定义量子加速超级计算机。
2024-05-28(二)
相关文章:
量子加速超级计算简介
本文转载自:量子加速超级计算简介(2024年 3月 13日) By Mark Wolf https://developer.nvidia.cn/zh-cn/blog/an-introduction-to-quantum-accelerated-supercomputing/ 文章目录 一、概述二、量子计算机的构建块:QPU 和量子位三、量子计算硬件和算法四、…...
Unity3D 基于YooAssets的资源管理详解
前言 Unity3D 是一款非常流行的游戏开发引擎,它提供了丰富的功能和工具来帮助开发者快速创建高质量的游戏和应用程序。其中,资源管理是游戏开发中非常重要的一部分,它涉及到如何有效地加载、管理和释放游戏中的各种资源,如模型、…...
Linux 自动化升级Jar程序,指定Jar程序版本进行部署脚本
文章目录 一、环境准备二、脚本1. 自动化升级Jar程序2. 指定Jar程序版本进行部署总结一、环境准备 本文在 CentOS 7.9 环境演示,以springboot为例,打包后生成文件名加上版本号,如下打包之后为strategy-api-0.3.2.jar: pom.xml<?xml version="1.0" encoding=&…...
python练习五
Title1:请实现一个装饰器,每次调用函数时,将函数名字以及调用此函数的时间点写入文件中 代码: import time time time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 获取当前的时间戳 # 定义一个有参装饰器来实…...
YOLOv1深入解析与实战:目标检测算法原理
参考: https://zhuanlan.zhihu.com/p/667046384 https://blog.csdn.net/weixin_41424926/article/details/105383064 https://arxiv.org/pdf/1506.02640 1. 算法介绍 学习目标检测算法,yolov1是必看内容,不同于生成模型,没有特别…...
Apache Calcite - 自定义标量函数
前言 上一篇文章中我们介绍了calcite中内置函数的使用。实际需求中会遇到一些场景标准内置函数无法满足需求,这时候就需要用到自定义函数。在 Apache Calcite 中添加自定义函数,以便在 SQL 查询中使用自定义的逻辑。这对于执行特定的数据处理或分析任务…...
STM32作业实现(四)光敏传感器
目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...
HTML+CSS 文本动画卡片
效果演示 实现了一个图片叠加文本动画效果的卡片(Card)布局。当鼠标悬停在卡片上时,卡片上的图片会变为半透明,同时显示隐藏在图片上的文本内容,并且文本内容有一个从左到右的渐显动画效果,伴随着一个白色渐…...
MongoDB CRUD操作: 在本地实例进行文本搜索查询
MongoDB CRUD操作: 在本地实例进行文本搜索查询 文章目录 MongoDB CRUD操作: 在本地实例进行文本搜索查询举例创建集合创建文本索引精准搜索排除短语结果排序 在本地实例运行文本搜索查询前,必须先在集合上建立文本索引。MongoDB提供文本索引…...
文档智能开源软件
文档智能介绍: 文档智能通常指的是利用人工智能技术来处理和分析文档内容,以实现自动化、智能化的文档管理。文档智能的应用领域非常广泛,包括但不限于: 1. **文档识别**:使用OCR(光学字符识别࿰…...
[C][可变参数列表]详细讲解
目录 1.宏含义及使用2.宏原理分析1.原理2.宏理解 1.宏含义及使用 依赖库stdarg.hva_list 其实就是char*类型,方便后续按照字节进行指针移动 va_start(arg, num) 使arg指向可变参数部分(num后面) va_arg(arg, int) 先让arg指向下个元素,然后使用相对位置…...
54. 螺旋矩阵【rust题解】
题目 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 示例 1 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2 输入:matrix [[1,2,3,4],[5,6,…...
学习笔记——网络参考模型——TCP/IP模型(传输层)
四、TCP/IP模型-传输层 一、TCP 1、TCP定义 TCP(Transmission Control Protocol,传输控制协议)∶为应用程序提供可靠的面向连接的通信服务。目前,许多流行的应用程序都使用TCP。 连接:正式发送数据之前,提前建立好一种虚拟的&…...
Java中的Instant
在Java中,Instant 是 java.time 包中的一个类,用于表示时间轴上的一个瞬时点,通常以纳秒精度表示。它通常用于表示机器可读的时间戳,而不是人类可读的时间表示(如日期和时间)。 Instant 主要用于时间计算和…...
PostgreSQL的锁介绍
PostgreSQL的锁介绍 PostgreSQL 中的锁机制是一种用于控制数据并发访问的手段,确保数据库的完整性和一致性。在实际应用中,合理使用锁可以避免数据不一致和减少死锁的发生。 锁类型 PostgreSQL 提供了多种锁类型,以下是一些常见的锁&#…...
4分之1外螺纹怎么编程:挑战与策略解析
4分之1外螺纹怎么编程:挑战与策略解析 在机械制造领域,螺纹编程是一项至关重要的技术任务。当面对如4分之1外螺纹这样的具体需求时,编程人员需要综合运用专业知识与编程技巧,以确保螺纹的精确度和生产效率。本文将围绕四个方面、…...
运用selenium爬取京东商品数据储存到MySQL数据库中
使用Selenium爬取京东商品数据并存储到MySQL数据库中的过程可以分为几个步骤: 1. 准备工作 安装所需库 确保你已经安装了Python环境以及以下库: selenium:用于自动化浏览器操作。pymysql 或 mysql-connector-python:用于连接M…...
K8S SWCK SkyWalking全链路跟踪工具安装
官方参考:如何使用java探针注入器? 配置两个demo,建立调用关系, 首先创建一个基础镜像dockerfile from centos 先安装java 参考: linux rpm方式安装java JAVA_HOME/usr/java/jdk1.8.0-x64 CLASSPATH.:$JAVA_HOME/lib/tools.jar PATH…...
Apache Omid Idea Debug 环境搭建
IDEA 搭建 Apache Omid 源码 DEBUG 环境 Apache Omid 在 Apache HBase 之上提供了多行分布式事务的能力,支持全局 MVCC 功能。简单介绍编译过程。 1.下载 HBase2 并启动 https://dlcdn.apache.org/hbase/ 配置环境变量 export HBASE_HOME/xxx/hbase-2.4.18 exp…...
【面试宝藏】Go并发编程面试题
深入Go语言并发编程 Go语言以其简洁、高效的并发处理能力而闻名。在Go中,通过各种同步机制和原子操作,可以轻松地实现高性能并发编程。本文将深入探讨Go语言中的并发编程,包括Mutex、RWMutex、Cond、WaitGroup、原子操作等内容。 1. Mutex几…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...
