说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

粉碎硬件复杂论:开发者不懂硬件运行的方式怎么可以?!

HTML文档下载 WORD文档下载 PDF文档下载
对比理解像Hibernate这样复杂的框架,弄清程序赖以运行的硬件工作模式实在是太简单了。单一的去追求编程的技巧而不去弄清硬件的工作方式,无异于舍本逐末!

精彩的算法,优秀的编程技巧一直广受开发者的喜爱。然而开发者不懂系统赖以运行的硬件工作方式怎么可以?基于业内一直充斥着新型硬件已经复杂到难以理解的流言,高性能计算专家Martin Thompson发表了主题为《Mythbusting Modern Hardware to Gain "Mechanical Sympathy"》的演讲。他认为如果你可以理解像Hibernate这样复杂的框架,去弄清程序赖以运行的硬件工作模式实在是太简单了。

以下为译文:

Martin Thompson是位高性能计算专家,一直从事帮助开发者弄清新型计算系统的内部构造。他在Cache、Buffer、Memory Controller、Processor Architectures、Cache line等领域发表过多次讲话和教程。

Thompson认为当下开发者在系统运行的理解上并没有投入应有的精力,大家往往被有趣的和时尚的技术所吸引。他还认为与其传授开发者编程策略,何不让其具备自己发掘的能力。他认为当下的形势非常诡异:程序员花很多的时间去理解像Hibernate这样复杂的框架,而不是花很少一点努力去弄清程序赖以运行的硬件是如何工作的。

点击查看视频(YouTube)

“通过实践观察,而不是盲目发言”一直是Martin倡导的思想之一,所以给自己的演讲《Mythbusting Modern Hardware to Gain "Mechanical Sympathy"》选择一个MythBuster(流言终结者)的角色并不奇怪。在演讲中Martin抨击了“新型硬件复杂度已经让普通开发者无法理解”这个论调,并从CPU、内存、网络、存储I/O等多个方面剖析了新型硬件架构。期间他阐述了赛车手Jackie Stewart提出的"Mechanical Sympathy"这个术语:赛车手想获得更好的成绩,那么必须对汽车的运作有一个很好的了解,驾驶员必须与赛车配合的足够默契才能获得赛车的最佳性能。Martin将这个观点延伸到了开发领域,认为开发者需要清楚硬件的工作模式,才能更好的奴驾基础设施性能。如果你可以搞清楚Hibernate,就可以搞清楚任何事情。

讲话中最精彩的部分就是有些我们一直认为做随机访问的设备,比如内存、硬盘、SSD在特定的情况下会转换成串行设备。比如说磁盘,其实就是一个又大又快的磁带,其实它并不是真正意义上的随机访问。

流言1:CPU并没有变的更快

  • 根本原因在于CPU不能更加赖热,而不是不能变快。我们让CPU计算的更快,他们就会变的更热,并且这种局部散热是非常困难的。
  • 时钟速度不代表一切。举个例子,给Alice和Wonderland两个文档做word split,Intel Core 2 Duo,2008,2.40GHz处理器可以达到每秒1434次操作。Intel Core,2011,2.20GHz处理器可以达到每秒2674次操作;我们看到虽然时钟速度变慢了,但是速度几乎是提升了两倍,并且这个趋势在继续发展。
  • 取代继续变快,Sandy/Ivy Bridge平台的CPU内部使用了并行处理。比如使用3 ALU及6 Port的CPU用来加载和存储数据,我们就需要更多的Port来供给ALU,这样就可以达到每个周期并行处理6条指令的效果。

  • 当然这里还存在多分支和多步解决的问题。多分枝或者拥有除法的代码肯定没有使用简单连接词“+、-、*”来的快。

  • CPU拥有计数器,这样一来,我们就可以更直观的观察其性能。在Linux上使用pref stat访问计数器。

  1. 在Alice和Wonderland测试中使用Nehalem 2.8GHz运行pref stat,我们发现CPU空闲时间将达到1/3,这样的话更快的CPU其实并没有什么帮助。
  2. 而当使用Sandy Bridge 2.4GHz时,CPU的空闲时间也达到了1/4。实验证明快不在时钟速度上,而在指令被传送到CPU的速度。

流言2:内存提供的是随机读取

1. 这个问题我们考虑的根本其实是成本问题。因为主储存器非常昂贵,我们又想尽可能快的给CPU传送指令。那么我们该如何做?我们需要让数据尽可能的靠近CPU,然而新时代的寄存器到寄存器复制模式将没有任何开销,因为这里做的是重映射,甚至没有任何移动。

2. 缓存层。缓存是越大越缓慢,所以这是速度与成本的对抗,但是功率同样很重要。访问磁盘的功率永远要比访问L1缓存大得多。新型处理器已经着手将数据从网卡直接传输到缓存,这样跳过了内存,通过不涉及CPU来降低温度。

3. 在内存访问排序、缓存结构以及连贯性上有很多细节可谈。重点是内存的不同层以及CPU之间有非常复杂的环路。如果你不可以让内存的子系统、缓存、存储器总线足够的快,就无法足够快的给CPU传输数据,这也是CPU无法变快的原因。

4. 这就意味着软件必须以一个非常友好的方式访问内存,否则将会出现CPU饥饿的状况。在Sandy Bridge平台下了连续遍历内存需要在L1上花费3 clocks,L2上花费11 clocks,L3上花费14 clocks以及内存上的6ns。页内随机则分别是3 clocks,11 clocks,18 clocks以及22ns。全随机存储访问则是3 clocks,11 clocks,38 clocks以及65.8 ns。

5. 这是高效的内存连续遍历时间,所以我们如何访问内存将是非常、非常的重要。

6. 编写多分支代码将造成更多的指令丢失,因为这里有太多的数据需要跟踪。

7. 鉴于你不可能连续的遍历内存,你需要降低耦合以及增加连贯性好的耦合,良好的连贯性可以让这些变得非常高效。如果你的代码存在太多分支,并且都是运行在堆上,那么运行的速度将会相当的缓慢。

流言3:HDD提供的随机访问

  • 在磁盘内圈和外圈写入时性能有着很大的区别,更多的扇区被分布在磁盘的外圈,这样可以得到非常高的密度。将更多的扇区放到外圈,从而获得更高的密度。对于旋转的磁盘来说,这样可以获得更高的吞吐量。
  • 在1万转的磁盘上,外圈的连续读取速度可以达到220MB/S,而内圈的只可以达到140MB/S。
  • 最快的磁盘转速只有1.5万,并且已在这个数字上停滞好多年了。
  • 当光头移动到某个扇区时,磁盘会对这个扇区上数据进行预读取及重排序。为了能获取更多的数据,当下磁盘一个扇区的大小为4K,也就是说你在磁盘上写入或者读取1字节的数据,整个工作量会达到4K。
  • 操作由什么组成:

  1. 指令处理——亚秒
  2. 寻道时间——服务器0-6毫秒,笔记本0-15毫秒
  3. 旋转延迟——对于一个1万转的硬盘,旋转一圈需要6ms的时间,那么平均的旋转时间大约为3ms。
  4. 数据传输——100-200MB/S

  • 随机访问一个4K的块,延时时间是10ms或者是100IOPS。随机吞吐量每秒不会超过1MB,非常智能的硬件也不会超过2MB。这样再说磁盘是随机访问显然不切实际,如果你看到一些异常的数据,那只能说这些数据并没有真正的使用磁盘。
  • 磁盘就是个非常大的磁带,显然不是真正意义上的随机访问。

流言4:SSD提供了随机访问

1. SSD里一个块通常的大小为2MB,由大量的单元组成。SLC(Single Level Cell)——单层单元,每个单元可以存储1个字节(1、0)。MLC(Multiple Level Cell)——每个单元可以存储2或3个字节。

2. 单个单元的操作开销是巨大的,所以你可以针对行进行操作。这里被称为页,一页的大小通常为4K或者8K。以页的大小进行读或者写是相当快的,因为这里通常没有移动的过程。

3. 删除最小单位是块。SSD工作的方式是针对每个单元进行写入,当你向某个单元中写入数据并删除旧字节时,会发生这样的情况:删除一个字节是容易的,因为只需要关闭这个单元,然而当你打开一个单元时,你必须要同时打开这个单元附近的单元,这样你就不可以准确的去操作某个单元,所以你必须同时删除整个块。介于SSD中每个块的写入和读取次数是有限的,并且你的要求并不是删除整个块,所以这里只是将这个字节标注为删除。总而言之,数据被标记为删除,然后向新的块写入数据。这是有开销的,同时介于每个块读写次数都有着上限,所以直到这块SSD彻底报废,需要不停的做垃圾回收及块压缩。

4. 举个例子,SSD的读写和可以达到200M/S。当你做删除时,其读性能依然能得到保证,但是写入的速度明显下降,这就是因为SSD的垃圾回收机制。如果某块SSD的写入性能下降太多,你就必须为其重新格式化,同样还存在小的写入引起一连串的复制事件。

5. SSD在连续和随机读取上有着相当不俗的表现,如果你只做append-only write的话,性能也会一直不错。

6. 4K随机读写,40KIOPS的情况下,平均操作次数将达到100-300ms,将花去长达半秒的垃圾回收时间。

7. 局部的异变可能会导致极低的性能。

原文链接: Busting 4 Modern Hardware Myths - Are Memory, HDDs, And SSDs Really Random Access?(编译/仲浩 审校/王旭东)

欢迎关注 @CSDN云计算微博,了解更多云信息。

出尔反尔,Amazon咬文嚼字玩转私有云 创业公司SOASTA:曾帮助伦敦奥运会官网进行云负载测试 金山云进一步聚焦云存储 Facebook公布用户数据:美国移动用户占比78% Zynga开源服务器监控工具zPerfmon 上海海事大学王洁:打造物流教学科研应用云平台生态系统 15个步骤创立技术公司,并收获千万用户(二) HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 谷歌开源Gumbo:纯C语言实现的HTML5解析库 AMD发布APPML源码,构建clMath库 【观察】3个月,每天增加52台,又一家云企业跻身十万台服务器俱乐部 感受华为IT业务的实力 小米雷军:我为什么做红米? GitHub上线Trending功能,帮你轻松找到有潜力的开源项目 如私人秘书:谷歌搜索将变得更加个性化 微软将于10月17日正式发布Windows 8.1 Google推出在线教育C2C平台Helpouts 技术人员组团参加SDCC 2013的十个理由 继BAT之后 第四大巨头是谁 如果传统IT部门真的消亡,你该何去何从? 闪存突袭,混合储存是否已步入黄昏 Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 我从其他Shell脚本中学到了什么? 10个调试和排错的小建议 机器学习的时代来临,人类应该做点什么? 云端测试破1500万 Testin已为开发者省2亿 智能腕表inWatch:已发售近3600台 Bingo!微软证实Windows 8.1将捆绑安装Skype 高手请指教 请教:如何由ip获得访问者所在地区 哪位兄弟教教我,如果实现自适应静音检测? 一个B-S结构的售楼软件的报价大致应该是多少? 我的确是做了错事,我决心去努力,但似乎力不从心? 100分 求《UML与Rational Rose从入门到精通》 急!各位高手关于要把多个DC放到一个pDC上显示的问题。 急。关于ppc和sybase的问题 请问编一个WINDOWS画笔 谁有c434009A主板的驱动程序。 请问在windows下如何实现像数据库一样的读、写锁? 为啥我在InstallShield中调用DLL中的函数总是出错呢? 如何能在HTML控件显示区域显示“....(指定的文件名)不存在”? 请问如何把TIF格式转换成JPG或GIF的格式?? 代理不能定时执行,请指教,谢谢。 怎样与外部数据库建立联合查询? 如何接受来自vbscript的字符数据列表 怎么在Gtk+的gnomemessagebox显示中文? (在线等待,急!)在vc中怎么使用datagrid控件 我使用的是odbc访问数据库 好急的问题,有关于SMS的接收字符处理问题,想了好几天没有结果 那位兄弟手头上有ASP.NET高级编程的电子书? DataGrid 控件问题,帮帮我把,朋友! automount? 一个比较难的问题! 关于datagrid的问题 在线等待 在cmd编辑器中用java运行已编译的文件运行不成功怎样解决 各位帮我解决一下这个问题!!!谢谢 关于ResourceManager的疑惑? 两台机器无法访问? 大家有没有听说过zebudom.js这个javascript的API?请问哪里可以下载它? 模块的连接 如何用php开发一个在线语音聊天室? 请问:有谁能提供Microsoft Project 2002简体中文专业版下载地址????急用!!!!!! 《The C++ Programming Language》有没有中译版? 请高手帮我看看: session的范围 硬件加、解密卡合作 请问那里能下到C或者C++的编译环境? 我的网页做好了,在我自己的机子上显示的很好看,在别的机子上有的显示的和在我的机子上显示的一样,很不错,但在有些机子上显示就变形了 怎样在文件中查找指定的字串? 为什么这两个查询都不能运行呢? 请教有关比对数据库的思路 运行结果出错!!!!!!!!!! google主页的问题(在线) (在线等待,急!)对话框中画图,超过了对话框大小,但是滚动条不能用 jbuilder7+jboss的配置问题? 求教:用UML做分析设计工具、用JAVA开发的一个办公管理系统的详细时间节点计划书。 數據庫數據顯示問題///急,在線等!!!!!個位幫幫忙? 讨论一下,eregi和strpos 为什么这两个查询都不能运行呢? 形容失望的神态. 物理的实验报告 解一元一次方程时,一般要怎样把方程化成一般形式? 日语 不一定把;未必吧.怎么说,要口语和书面语. 小孔成像是孔越大越好吗?拜托各位大神 问一下仿一本男孩子必读的书写钢铁是怎样炼成的读后感有熟悉这个的吗?不好意思,麻烦各位{随机数K 急需于丹庄子心得完整视频, 河南博物院的简介以一个导游身份讲解. 麻烦看下仿一本男孩子必读的书写钢铁是怎样炼成的读后感有人了解的说下吧, 急求于丹庄子心得读后感两篇800字就可以了 外电极是什么意思呢? 一些唯美的句子 你们觉得于丹庄子心得怎么样啊于丹庄子心得在黄岩新华书店能否买到啊?我很喜欢于丹在百家讲坛里讲的那些道理哎.我真想每天看到听到于丹的《庄子》心得.如果有人知道那我非常感谢的. 国内和国外的臭氧发生器电极片(管式和板式)哪家最好?各家的优势是什么?国内用哪家的电极片比较多?我++++++++++分!) 根据句意,在括号里填上与“站立”意思相近的词.(不可重复)1 如今,一座座海洋石油平台已( )在海涛之中.2 月球上只能看到广袤的荒原上高山( ),巨石嶙峋.3 社会主义的中国像巨人一 关于于丹庄子心得的一道问题.第一篇是“庄子何其人”,有人批评说,何其是多么的意思,成了“庄子多么人”,而不是“庄子是怎样的人”.这有道理吗? 青苹果表皮的锈斑是什么?现在买的青苹果,表皮有很多褐色的锈斑,是什么东西?跟虫粉什么的有关系吗? 台风暴跳如雷,像头疯狂的巨兽,呼呼地向着城市扑去,用了什么修辞手法?急 帮我写一下《于丹庄子心得》有感,字数在1000--1500 英语“赶上时代的步伐”最地道怎么说,书面语 他暴跳如雷,像___________.(比喻句) 班级辩论赛:中学生应该带手机的理由(我是正方)急 翻译:我们今天刚上班(书面语) 台风为什么暴跳如雷?急, 班级要开关于“高中生是不是应该张扬个性”主题辩论赛~我都愁死了,我是正方,就是我方观点是应我要❤名言❤和❤事例❤速度啊 本周五最后期限.不要复制粘贴的.要亲们自 英语翻译(他)能在短时间内掌握了工作要点和技巧,能够熟练使用TRS.有道翻译结果为In a short time grasp the working points and skills,Can skilled use TRS 《故乡的桂花雨》的主题是什么? Carl is stbdying ___food science at college and hopes to open 有什么果实上有翅膀啊?什么果实上会长有翅膀? 我能行 主题班会的回答内容,尽量多.(中学生) 1、《秋水》的主旨是什么?在客观上有何思想意义?2、本篇中的景... 移动标点符号,改变句意:哥哥说:我是好青年. 什么样的女人最讨人喜欢拜托各位了 3Q 于丹 庄子心得 读后感 河南博物院怎么样 鸽子蛋书面语叫什么? 于丹《论语心得》读后感1000字太急了! 他( )节省下自己的零花钱,( )靠帮邻居干活来凑足这笔钱》填什么关联词 "蛰"这个字用拼音怎么打? 拼搏辩论关于人生要拼搏的论据,辩论赛用,最好是反面的,(即人生不一定要每时每刻都拼搏,要适时行乐,或根本不要拼搏)~多多益善! 关于可以体现自己科学精神的作文,不少于500字 1.快车和慢车同时从A\B两地相向而行,3小时向隅后两车按原速继续前进,快车形式2小时到达B地,这时慢车距离A地还有110千米.求A\B两地相距多少千米?2.有一块铜与锌的合金,其中铜与锌的比是2:3, 钢铁是怎样炼成的读后感第二段怎么写 现在问道怎么升级快?现在问道怎么升级快? .....(要用比例等式来计算...):只选最好的答案..1.师徒两人合做了84个零件,师傅5分钟做一个,徒弟9分钟做一个,要求在相同的时间完成,每人应该分配到多少个零件?2.走同一段路,小玲要12分,小丽 于丹《论语》心得和《庄子》心得哪本经典? 夏衍为什么要赞颂小草的力量?这是课文上的一道题,马上要讲了,希望学过的,在下感激不尽! 上上月书面语怎么说 表姐和我是什么关系?用书面语? 用刀在苹果上划一刀是大破坏了苹果的什么组织 什么字站着和躺着变成不同的两个字?比如:“田、口、回”这些字站着和躺着念都是一样的,但哪两个字站着和躺着念是不同的呢? 求兽医什么的爱好动物的人士帮帮我!今天早上,小猫是爬着回来的,本身是只流浪猫,我家是它我i恶意能找到吃的地方,它的下半身像没有知觉一样,偶尔会动那么一下,嘴巴禁闭,有呼吸困难的症 苹果烂掉了,只要把烂掉的部分削掉再吃就可以了吗?讲出道理 这可是当时什么(填关于轰的词语)的新闻 关于论语:“三人行,必有我师焉.择其善者而从之,其不善者而改之”的故事 苹果表面是好好的,但里面已经发黑烂掉了,为什么?是不是因为防腐剂的添加,还是病虫害的原因?外表没什么异常,还是硬的. 这可是当时很什么(填关于轰的词语)的新闻 形容十分失望、沮丧的神情的词语 苹果会从里面烂掉吗?什么原因导致的什么人为原因导致的? 请问含义是“少”的汉字有哪些,包括古代 “舞动浙江”华丽登场 我省万人排舞大杭州今晨创“入秋”后最低气温 下周全中共代表团访问澳大利亚解放军少将:中国军事力量发展绝不针对海军“机动-5号”演习遭外国军舰飞机德媒:美国监听德国总理手机 奥巴马知踏访桂河大桥:历史记住了这座桥伊拉克首都发生多起汽车炸弹爆炸 至少伊拉克首都发生多起汽车炸弹爆炸 至少第3届“中俄舞台艺术对话”在京举办日本首相安倍晋三检阅自卫队【高清】印度17岁少女因家人禁止其上社交网站第九届北京—东京论坛闭幕并发表《北京快讯:第九届两岸经贸文化论坛闭幕式在随笔:摩洛哥的看车人通讯:第29届“天翼掠过休斯敦”新华国际时评:以自主创新维护“数据主伊拉克首都发生多起汽车炸弹爆炸 至少国际财经一周大事回顾:第四次中欧经贸国务院常务会议部署推进公司注册资本登格鲁吉亚总统选举开始投票西藏出版协会向300多寺庙赠送藏文古超员客车疯狂冲卡 衡水交警机智拦截消湖南土茶油打破传统 率先采用新媒体营邵阳路桥东互通世纪大道一标段全线顺利广铁预计18日客流破90万 春运高峰海关总署助力香港发展成为亚洲葡萄酒贸湖南小伙深陷传销 保定铁警耐心劝导助马达加斯加总统选举结果出炉 正等待法荆门掇刀公安“1+N”警社合作写进政消防部队烈士张尘宇妈妈有了“兵儿子”黑龙江省体育局派专人赴上海 探望王濛重庆写字楼2013年新增供应量46万侨商在长春筹建“华商中心” 重点引进如何引来钱留住人 港澳委员为北京支招【新风过年】年夜饭火速瘦身 餐饮走起河北“利剑斩污” 去年侦办污染环境类叫响国际品牌的草原冰雪节重庆两江新区试水“民考官”、“下考上全国粮食流通工作会议:抓收购 保供给通讯:巨擘陨落 光辉留世 追思香港影湖北3306名省部级困难劳模喜领帮扶
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘