真的没有免费的午餐了吗?多核系统的可扩展性:系列白皮书之第一篇

majiajun_no_5 2008-09-23 01:44:12
过去,大多数软件开发人员提升应用性能的传统捷径就是静静等待下一代处理器的推出,这样他们无需进行性能优化,就能享用硬件改进带来的“免费午餐”。 然而,随着业界转而采用多核系统,这一局面也随之改变:由于现在应用性能需要实现同步优化,因此开发人员在设计应用程序时,必须使其性能可以随着内核数量的增加而扩展。作为本系列白皮书的开篇之首,本文将重点预测可扩展性并提出问题:并行可扩展性或否成为新的免费午餐?



1. 简介
在“串行编码时代”(计算机演进的历史性阶段),硬件平台围绕着单核处理器而构建。经验丰富的开发人员注意到,每次新一代处理器的发布,都会或多或少地带动硬件程序性能的提升。博主 Joel Spolsky 在他的博客中坦言:

感谢不断下调的内存价格和每年翻番的CPU 速度,让我们这些程序员有了偷懒的机会。不论您是花上半年的时间辛辛苦苦去改写汇编程序的内部循环,还是在摇滚乐队潇潇洒洒地做半年的鼓手。只要有下一代处理器的存在,您程序的运行速度都能有所提升。只不过,汇编程序员不能像帅气的鼓手那样,赢得众多少女粉丝的疯狂追捧。

因此,我们不再担心程序的性能或优化。

尽管这一讯息的发布时机错误(2007 年秋季,串行编码时代真正结束),但它准确阐述了当前的实情——只需静待一些时日后新一代处理器的出现,开发人员就能免费提升程序性能。

作为 Dr Dobbs 的 C++ 大师 和当前的并发大师,Herb Sutter在其2005 (!) 论文《免费午餐已经结束》中,已经提醒了我们免费午餐即将结束。出于包括半导体物理在内的诸多合理原因,芯片设计已经向多核方向转变,单核性能提升幅度将大不如从前。在此情况下,程序的性能仍然可以实现提升,但前提是:软件必须针对并发设计和执行。

正如 Sutter 以及其他人指出的那样,在软件开发过程中,并发是相当棘手的问题。很少有开发人员能够做得顺手,因为传统的编程模式并不注重并发,而且并发适用的执行机制线程也充满了危险(争用条件)。其中的一大挑战便是可扩展性:添加内核后,应用应该如何执行?我们将在本系列白皮书中,全方面探讨可扩展性问题。

...全文
142 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
majiajun_no_5 2008-09-30
  • 打赏
  • 举报
回复
获益匪浅
milex 2008-09-30
  • 打赏
  • 举报
回复
牛人没我帅 帅的没我牛 呵呵
tomato_potato 2008-09-28
  • 打赏
  • 举报
回复
顶下
majiajun_no_6 2008-09-27
  • 打赏
  • 举报
回复
ding
converf 2008-09-25
  • 打赏
  • 举报
回复
很有道理值得学习
lehedele 2008-09-24
  • 打赏
  • 举报
回复
N多高人牛人....此帖让我受益匪浅,值得收藏! 继续关注....
zhsj64 2008-09-23
  • 打赏
  • 举报
回复
谢谢版主

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧