最近看代码总是看到barrier这个函数,起初并不清楚这个函数的作用,因为自己平时写代码没有这个函数,电路照常可以运行,好奇心驱使我百度了一下,得到如下答案:

在编译的时候,barrier的存在使得电路是分部分进行编译的,如果没有barrier(),那么整个电路是整体进行编译的。

barrier()的存在使得量子门不能合并编译,会增加电路深度。--from boluoxia的评论

参考资料:

What is a "barrier" in Qiskit circuits? - Quantum Computing Stack Exchangehttps://quantumcomputing.stackexchange.com/questions/8369/what-is-a-barrier-in-qiskit-circuits

借助代码理解:

# 创建电路
circuit = QuantumCircuit(4)# 添加量子门
circuit.cx(0,2)
circuit.cx(1,3)
circuit.h(2)
circuit.h(3)
#编译
transpile(circuit)print('The depth of the circuit:')
print(circuit.depth())
circuit.draw(output='mpl')

无barrier,电路是整体进行编译的,门电路深度为2:

如果在如下两个位置添加barrier()函数,电路深度就会发生变化:

# 创建电路
circuit = QuantumCircuit(4)
# 添加量子门circuit.cx(0,2)
#或者在此添加circuit.barrier(),也会使得电路深度发生改变
circuit.cx(1,3)
circuit.h(2)
circuit.barrier()
circuit.h(3)
transpile(circuit)
print(circuit.depth())

有barrier,左侧电路为一个小整体进行编译,门电路深度为2,右侧的H门为一个整体,电路深度为1,两部分门不可整体编译,电路总深度为3:

Qiskit中的barrier()是干啥的相关推荐

  1. python 对象_Python中的Barrier对象

    python中的Barrier对象用于等待固定数量的线程完成执行,然后任何特定线程才能继续执行程序.每个线程在到达Barrier时都调用wait()函数.Barrier负责跟踪wait()调用的数量. ...

  2. python barrier_Python中的Barrier对象

    python中的Barrier对象用于等待固定数量的线程完成执行,然后任何特定线程才能继续执行程序.每个线程在到达Barrier时都调用wait()函数.Barrier负责跟踪wait()调用的数量. ...

  3. python中的正则表达式是干嘛的_python中正则表达式总结

    re.match():从字符串的开始进行匹配 re.search():扫描整个字符串返回第一个匹配 re.findAll():返回所有匹配的字符串 Pattern 对象不能实例化,只能通过compil ...

  4. python中的正则表达式是干嘛的_操作python中的正则表达式(上)

    上次的爬虫最终获取了马蜂窝旅行评论页面的全部内容,其实很多都是无用信息,我们要进行筛选清洗,这就用到了正则表达式,在写爬虫后续之前先大概搞一下正则-- 先上代码吧,今天先搞一小部分: import r ...

  5. Python多线程编程中使用Barrier对象进行同步

    Barrier常用来实现这样的线程同步,多个线程运行到某个时间点以后每个线程都需要等着其他线程都准备好以后再同时进行下一步工作.类似于赛马时需要先用栅栏拦住,每个试图穿过栅栏的选手都需要明确说明自己准 ...

  6. java中action类是干嘛的_java中action的作用

    正如早先指出的那样,action()并不是我们对所有事进行分类后自动为handleEvent()调用的唯一方法.有三个其它的被调用的方法集,如果我们想捕捉某些类型的事件(键盘.鼠标和焦点事件),因此我 ...

  7. 如何优雅的创建一个Java不可变对象类,JDK源码中也是这么干的!

    前面有篇文章当介绍了Java的不可变对象的一些特性,以及它的一些好处,但是并没有介绍如何实现一个不可变对象类.今天就来看看如何实现一个不可变对象类. Java中常用的不可变对象类 String类应该是 ...

  8. java lpad oracle_oracle中lpad函数是干嘛用的?

    展开全部 lpad函数:在字符串的左侧添加指定字符串,用法62616964757a686964616fe59b9ee7ad9431333431363634: lpad(String ,截取长度,添加的 ...

  9. html中em标签是干嘛用的,html里em的标签有什么用

    在html中,em标签的作用是告诉浏览器把其中的文本表示为强调的内容.语法格式为"需要强调的内容",对于所有浏览器来说,这意味着要把这段文字用斜体来显示. 本教程操作环境:wind ...

最新文章

  1. redis和memcache的区别
  2. linux 文件系统覆盖目录,Linux内核裁减及根文件系统定制
  3. SemEval-2010任务8:成对名词之间的语义关系的多分类
  4. 统计用产品分类目录8位代码类别_沪市主板605代码“1号选手”来了
  5. php mysql网页象棋源码_C# 中国象棋 游戏源码
  6. 80386 CPU资源
  7. 95后CEO讲述创业“邮件经”
  8. 更新RDL文件中的数据集(DataSets)
  9. 基于pygame的小游戏开发
  10. [WSL]Ubuntu指定的网络名不可再用
  11. Elasticsearch实战(十四)---聚合搜索Aggs多层嵌套聚合处理
  12. 华为p4支持鸿蒙功能吗_华为P40或用鸿蒙 鸿蒙系统支持哪些手机 鸿蒙系统什么时候能用...
  13. 企业与个人是如何跨越战略转折点 - 读《只有偏执狂才能生存》
  14. AI人工智能外呼机器人
  15. 解决 openstack-nova-scheduler/conductor 开启失败
  16. 安装XAMPP端口冲突问题
  17. 物联计算机大赛,【实践科】关于举办2020“天翼物联杯”中国高校计算机大赛-网络技术挑战赛校内选拔赛的通知...
  18. 读《测试构架师修炼之道》-Chapter4 测试构架师的知识能力模型
  19. 虚拟办公室,节省运营成本
  20. 你需要了解的ICT测试三极管的误区

热门文章

  1. 酒水行业数字化转型解决方案
  2. 下载并安装windows版本的Redis
  3. Liang Zhen
  4. 保姆的式教程手把手教你,菜鸟玩转博客搭建!
  5. Physical CPU、Logical CPU、Core、Thread、Socket
  6. Origin绘图的步骤?
  7. 互联网时代的春秋战国
  8. 对参考文献格式的一些举例
  9. c#中用声音提示报警 .
  10. 咸鱼硬件—Micropython快速指南