关闭思想和步骤¶
作为软件工程师,你可能会认为我们可用在量子计算景观相当稀疏的工作。毕竟,量子硬件平台仍严重今天在研究和开发,当然不能比经典计算机执行。除了协助硬件开发,为我们做些什么,直到这些平台都准备好了吗?
答案是是的-有很多的软件工程师的工作机会并行量子计算与硬件发展!你已经玩资源评估和可行性评估;下面是几个有前途的活动参与。每一个可以自己的类的主题,但这里我们总结他们。
软件框架开发¶
在这个类中,我们简要介绍了两个著名的软件框架来处理量子算法——微软QDK和IBM的Qiskit。事实证明,有更多的可用!
谷歌保持一个叫Cirq提供类似的功能,构建电路,模拟,研究结果。然而,Cirq提供非常细粒度的、低层次的控制使得它非常有用的机器指令为研究量子电路硬件平台的实际执行。这主要是专为兼容Google自己的量子计算机体系结构。
一家名为Rigetti维护大型量子生态系统森林量子电路的开发系统PyQuil。它有很多相同的功能,包括一个基于云的编译器服务的情况下运行在本地大型电路并不可行。它的设计运行在各种后端系统包括Rigetti自己的机器。
ProjectQ是一个有趣的研究项目的苏黎世联邦理工学院在瑞士,一个大学。它实际上是Q # ' s execute-at-each-statement的风格,而不是建立一个电路对象和航运端像其他人一样。也就是说,它做有一个非常健壮的和模块化的编译器和后台管理系统,让它为各种量子硬件生成电路。
有一个类似的研究项目XACC橡树岭国家实验室。它提供了一个更中间件为中心的组织演变的观点,因为它可以吸收电路由许多上述框架,将它们转换为一个共同的中间表示,编译它们特定机器的指令,并运行在各种后端系统(量子计算机)。
有许多其他项目和工具,我们还没有列在这里但是量子软件工程师提供有用的功能。例如,你使用怪癖工具类技术不是一个软件框架,但它是一个非常有用的工具。的量子开源基础保持一个详尽的这样的工具列表和项目如果你好奇。
如果你的激情是工具开发,那么你可能要考虑导致一个或多个项目!在Github上几乎都是开源的,所以没有什么阻止你潜水。
编译器的研究¶
编译器(和他们的亲属transpilers和优化器)是经典量子程序变换代码从一种形式到另一个。
问#的编译器,如您所见,问#代码转化为一系列的指令,问# ' s模拟器可以解释和处理。微软已经整个开源的在Github上如果你想探索它;今天的项目有30多个贡献者。
Qiskit实际上有一个编译器和transpiler,你可以看到在项目的源代码。在一起,这些工具提供了大量的功能:
- 他们将“高层”量子电路(使用任意门和允许任何量子位与任何其他量子位)为“低级”电路,与给定的特定的量子设备兼容。
- 他们处理调度决定当运行特定的盖茨,效率最大化和最小化重叠/干扰。
- 他们重新排序量子位的数量最小化交换盖茨需要模拟任意对任意的量子位交互。
- 他们可以优化一个电路通过扫描和删除无用的盖茨和简化序列。
Cirq主机优化器的集合Qiskit的transpiler执行类似的功能。
PyQuil有一个编译器转录下来的奎尔量子汇编语言。
如果你的激情是构建工具来帮助运行算法更快或桥circuit-building应用程序与硬件系统、编译器开发可能是你!
误差校正和噪声降低¶
你可以想象,一个巨大的的工作量目前致力于量子错误最小化的影响。Qiskit实际上提供了一个完整的图书馆致力于这种追求发热。如果你有兴趣分析量子机器的噪声和测试一个错误过滤或修正代码,这当然是你想看的东西。
有其他几个项目致力于此,所以如果你想致力于打击量子错误然后这个领域绝对是一个你可以做出贡献。
语言标准¶
除了工具和技术,量子软件依赖于标准统一的软件和硬件的风景。特别是,软件需要能够编译一个著名的语言硬件可以摄取和执行,就像经典的程序编译到今天的机器代码。
有几层的这些语言- Q # Qiskit,哪些你在课上玩,的例子高级语言不能是由量子计算机。
在“中间”级别中介表示。这些标准可以用来描述量子电路在一个通用的、平台无关的方式。
微软保持这样一个标准,叫做量子中间表示(QIR)。QIR被设计成兼容任何软件框架;Qiskit Q #、Cirq或PyQuil都可以编译QIR,可以编译到实际的机器代码为一个特定的量子计算机。
IBM维护另一个调用OpenQASM。Qiskit实际上编译电路OpenQASM和船只代码IBM的后端系统,当你在他们的电脑上运行。这是一个非常成熟的标准。
Rigetti维护一个第三,奎尔不出所料,PyQuil编译到为了Rigetti的机器上运行。这是一个混合设计,包括支持经典计算,可以帮助在某些情况下(如measure-in-the-middle电路)。和其他人一样,它有一个非常assembly-like的感觉。
如果工作在通用标准为整个量子计算域作为一个整体吸引你,那么你可能会下跌对国内向下拉这些存储库和工作规则,描述,或提供的示例。
封闭的思想¶
此时你已经接触到一个相当广泛的概念,算法、量子计算景观周围的技术和技巧。
你了解了基本面,量子位的工作原理,量子门是如何工作的,如何叠加,纠缠,和干扰共同构成强大的量子算法,以及如何在右代表量子项目符号和电路图。
你学过量子编程——QDK和Qiskit使用两个不同的软件框架。
你已经实现了两个我们所知道的最令人兴奋的通用量子算法:Grover和肖的算法。
你真正的量子计算机上运行代码,了解量子错误和纠错。
您已经学会了如何提取有用的信息关于量子程序及其实用性,在量子计算机上运行。
最后,我们都要感谢你的勇气和好奇这个类,并决心完成它。此时,您已经建立了一个坚实的基础软件工程从事量子。你可以学习思想,构建工具,桥差距,并最终解决问题,今天不能与现代计算机解决。我们等不及要看你去哪里!