随着多核时代的来临, 传统意义上仅适应单核内存模型的底层指令集的乱序优化是否应该得到调整
跪求Boost::Atomic里面Memory Order的解释。里面的例子我硬生生没看懂……
■网友
引用一段话来回答这个问题吧,也许不对题,但是确实是有思考价值的:……而多线程编程不可避免的要遇到数据共享,编程时要注意如下原则:1,尽量少共享数据2,尽量少修改数据3,尽量少频繁的修改数据—— 《大话处理器》如果对程序的数据共享优化的得当的话,哐当一把大锁也不会对效率产生什么实质性的损害。纸上谈兵,求轻拍。
■网友
Memory barrier或者说memory order有两个层面,编译器和cpu。对x86应该只有编译器的乱序问题。理论和实际都已经证明了硬件只需要正确实现CAS指令(有人希望最好是更强一些的ST/LD)就可以支持无错/无锁并行。所以只需要在此原子操作上克服/限制编译器的行为就够了。尽管gcc己经尝试内置STM支持,intel走得更远,在haswell里支持了硬件transaction memory barrier。但个人以为应该还是CAS的性能更好,也更加灵活一些。限于手头资源未作过实际测试比较。
■网友
这个确实是历史遗留问题,很多单核时代没毛病的优化做法,到并行的环境下就出问题了。
“这个问题属于硬件也能解决,软件也能解决,然后搞硬件的表示:既然软件能解决,那就交给程序员去解决吧。”
我是看公开课 才知道有这么一回事,具体怎么解决就不知道了。
【随着多核时代的来临, 传统意义上仅适应单核内存模型的底层指令集的乱序优化是否应该得到调整】 Lecture 16: Synchronizing without Locks
推荐阅读
- 张伯礼:后疫情时代要保障民众生活尽快恢复
- 钟南山:随着冬天的到来,内地疫情防控不能松懈
- 内蒙古生鲜配送进入无人机时代:1.5吨阿尔巴斯羊肉“飞来了
- 电动车时代网|时代头条丨变革焕能·数智重生,2021年全新爱玛扬帆起航!
- |2020年三季度“新时代盐城好少年”事迹展示
- 汽车|性能媲美SUV 柴油皮卡首推长城皮卡风骏7
- 不是刺儿头,是普通人守护普通权利
- 汽车|长安汽车:公司与华为、宁德时代三方正在联合开发智能网联电动汽车平台和产品
- 马云说的大数据时代到底是,用到啥技术,如果想要学习大数据技术,要学习哪些基础的东西要先会编程么
- 总书记|找准自身方位 扛起时代使命
