读书频道 > 网站 > 网页设计 > Visual C++并行编程实战:多核架构下分工与协作的设计模式
推荐序二
12-08-13    叶孤城
收藏    我要投稿   
这本书所介绍的并行模式库(Parallel Patterns Library,PPL)实际上是一个模式化的C++模版库,而且作为Visual Studio 2010开发系统的一部分,它已经完全被内置到了这一版本的C++语言中。这意味着你可以像使...立即去当当网订购
正当我们站在IT产业的重要转折点—并行硬件+移动设备=未来20年主流平台的便携式超级计算机,本书应势而生。
为了将各个硬件平台的性能发挥到极致,我们对并行应用程序的需求也越来越多。这里所谓的发掘大部分设备上的最大计算性能(包括几乎所有的台式电脑和笔记本电脑、大多数的游戏控制台以及最新的智能手机),主要是指充分利用以多核处理器为主的本地并行硬件资源,这也是超级计算机的商业化进程。另外在今后,我们将会越来越多地发现,性能的最大化往往还意味着需要逐步引入多样化的计算处理方式,从通用图形处理单元(GPGPU)等本地资源到开拓以弹性计算云形式出现的远程并行计算资源。后者是一种以非均匀性存储结构(NUMA)为主导技术对异机种集群的泛化过程,计算实体从集成到芯片集中,转而扩展到整台计算机上,进而再集中到云端,而上述的每一种计算实体在之前都有实际应用的例子。
从现在开始到可预见的将来,在计算机应用程序范畴内的“快速”不仅仅是“并行”的同义词,而应该更多地等同于“可扩展的并行”。只有可扩展的并行应用程序才具有超越现有主流设备的潜在并行性,故而当今天的程序安装在未来拥有更多并行支持的硬件上时,才能自然而然地在性能上得到飞跃。
本书介绍的Visual C++ 2010并行模式库(PPL)有助于将应用程序领进并行化的大门。在PPL的设计过程中,许多人付出了巨大的心血。就我自己而言,我很荣幸能够贡献自己的绵薄之力,将lambda函数设计成该语言的核心扩展,这使得创建PPL中的其他部分如同标准模板库(Standard Template Library,STL)一样,就像使用一个普通库实现算法。当然我们可以向编程语言中加入一堆特定的并行循环(我们几乎就这么做了),但是这样做很粗鲁,而且也失去了一般性。而lambda函数可以用在PPL中,也可以用在别处。加入一个这样普遍适用的语言特性比填塞许多特定情况的用例要好上千倍。
到目前为止,令我们感到欣慰的是,世界大部分地区的计算机行业已经达到了普适计算的目标—可以想象,我们已经把一台计算机放到了每一张写字桌上、每一间起居室里,甚至每一个人的口袋中。但是我们现在还处在推进普适甚而灵活弹性的超级计算进程中,这就相当于我们将一台囊括本地和远程资源的超级计算机放到每一张写字桌上、每一间起居室和每一个人的口袋里。在1984年我高中毕业那会儿,世界上最快的电脑是有4个处理器、128M内存、性能峰值为924 MFLOPS的Cray X-MP。换种通俗的方式来讲,在并行性、内存大小和处理能力方面,它只是2005年古董Xbox的零头,更无法与当今的“手机”和XBOX体感相提并论。时代在进步,而进步的步伐不仅愈迈愈大,而且愈迈愈快。
业界转而走入并行化是以多核CPU的诞生开始的(其原因请参见我几年前的评论文章《免费午餐不再》(The Free Lunch Is Over)),以通用图形处理单元、弹性云计算以及其他新型且根本性的并行革命为继来发扬光大。这股并行风潮将带来大量的新式计算资源,并将通过主流的编程语言来为我们所掌握。在Microsoft,我们每个人都为能够给这代人和子子孙孙带来业界主流并行计算平台的开发工具而感到十分高兴。尤其对于PPL,我很乐于看到用户的最终产品会有多棒。另外我很期待看到最终的产品随着时代的推进性能也随着节节攀升,因为我们让应用程序能够再次享用免费的午餐—未来二十年中的可扩展并行。
Herb Sutter
微软首席架构师
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站