10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

微软发布量子开发套件预览版

  • 2017-12-14
  • 本文字数:859 字

    阅读完需:约 3 分钟

据 InfoQ 之前报道,微软曾在Ignite 大会上宣布开发量子计算机的计划,并提供一个开发套件。现在,微软发布了 Quantum Development Kit (QDK)预览版。

QDK 集成在 Visual Studio 中,使用 Q#编程语言,并提供了一个量子模拟器,可以在笔记本上模拟最多 30 个逻辑量子位,这需要 16GB 的内存。如果要增加到 40 个逻辑量子位,内存需要呈指数级增长,比如增加 10 个逻辑量子位,就需要增加 2 的 10 次方那么多内存。微软为此提供了一个基于 Azure 的模拟器。开发者可以使用 QDK 来学习如何在量子计算机上编程,同时等待微软推出拓扑量子计算机。微软声称,在模拟器开发的程序最终可以不做任何修改就可以在真实的量子计算机上运行。

微软量子处理器使用了拓扑量子位,相关信息并不是保存在某个特定位置,而是进行全局保存,从拓扑结构的全局视图可以直接看出一个串是不是打结了。这种方式的好处在于量子信息的表示只需要少量的误差校正,而误差校正是限制量子处理器伸缩的主要因素。

在编程语言方面,微软将Q#定位成一门特定领域的编程语言,拥有原生的量子位类型系统、算子和其他抽象。它同时支持传统的语言控制流程和量子逻辑演算。

下面是Q#代码示例,目的是将一个量子位设置成给定的状态,如果它不在指定的状态,那么就翻转它:

复制代码
<pre data-linenums="1
2
3
4
5
6
7
8
9
10
11
12" line="7oqd" spellcheck="false">
namespace Quantum.Bell {
  open Microsoft.Quantum.Primitive;
  operation Set (desired: Result, q1: Qubit) : () {
    body {
      let current = M(q1);
      if (desired != current) {
        X(q1);
      }
    }
  }
}

Visual Studio 的调试器可以用来调试 Q#程序,可以设置断点并逐步跟踪执行流程,还可以通过跟踪模拟器来评估运行一个量子程序需要的资源。

除了 QDK,微软还发布了相关文档,涵盖了量子计算基础和高级概念,比如如何管理量子机器和驱动器,以及特定的开发技术。

现在就可以下载QDK ,并在Visual Studio 2017 里使用,VS 2017 的社区版是免费的。

查看英文原文: Microsoft Quantum Development Kit Available to Developers

2017-12-14 18:002262
用户头像

发布了 322 篇内容, 共 154.9 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

Nginx服务器配置

Java 程序员 后端

NoSQL到底怎么用?

Java 程序员 后端

OpenKruise v0

Java 程序员 后端

Redis 的持久化机制和AOF文件重写原理

Java 程序员 后端

Mysql的“三高”集群架构

Java 程序员 后端

netty的线程模型, 调优 及 献上写过注释的源码工程

Java 程序员 后端

nodeJS——网络编程

Java 程序员 后端

pageHelper----Mybaits分页插件

Java 程序员 后端

Netty学习之旅------图说Netty线程模型

Java 程序员 后端

Netty常量池

Java 程序员 后端

Protobuf 属性解释

Java 程序员 后端

Netty编解码方案之Protobuf介绍

Java 程序员 后端

Oracle数据库访问性能优化

Java 程序员 后端

OpenFaaS实战之六:of-watchdog(为性能而生)(1)

Java 程序员 后端

OpenFaaS实战之六:of-watchdog(为性能而生)

Java 程序员 后端

OpenSSL 生成CA证书及终端用户证书

Java 程序员 后端

OpenTelemetry 简析

Java 程序员 后端

pro、pre、test、dev环境

Java 程序员 后端

Netty 核心源码解读 —— 开篇

Java 程序员 后端

Netty学习之旅------Netty Channel 概述

Java 程序员 后端

OpenFaaS实战之四:模板操作(template)

Java 程序员 后端

Qt知识点梳理 —— 获取设备CPU、内存、磁盘等硬件信息

Java 程序员 后端

MySQL没有RowNum,那我该怎么按“行”查询或删除数据?(1)

Java 程序员 后端

mysql用户&权限总结

Java 程序员 后端

Nginx详解Location匹配规则

Java 程序员 后端

NodeJS快速入门必备技能

Java 程序员 后端

ReactJS实战之生命周期

Java 程序员 后端

MySQL没有RowNum,那我该怎么按“行”查询或删除数据?

Java 程序员 后端

MySQL索引篇之索引存储模型

Java 程序员 后端

mysql系列:innodb日志管理,带你高效快速理解

Java 程序员 后端

Nginx超详细的常用两种安装方式

Java 程序员 后端

微软发布量子开发套件预览版_微软_Sergio De Simone_InfoQ精选文章