读书频道 > 网站 > 网页设计 > Visual C++并行编程实战:多核架构下分工与协作的设计模式
译者序
12-08-13    叶孤城
收藏    我要投稿   
这本书所介绍的并行模式库(Parallel Patterns Library,PPL)实际上是一个模式化的C++模版库,而且作为Visual Studio 2010开发系统的一部分,它已经完全被内置到了这一版本的C++语言中。这意味着你可以像使...立即去当当网订购
说来凑巧,当开始着手翻译这本书的时候,我刚刚入手了自己的第一台四核计算机,而翻译工作临近完成之时,我又为自己添置了一台iPad 2(这是一台双核计算机)。由此可见,多核计算机已经完全进入了我的日常生活。鉴于自己是一个远远落后于时尚的家伙(例如我对双核手机就不太“感冒”),我毫不怀疑多核计算机已经走入了千家万户。这似乎也意味着多核应用的时代真正到来了…… 
先别高兴得太早。如果你仔细观察,就会发现自己并没有真正进入多核世界。因为当前使用的计算机上的大部分应用依然都是单核的。也就是说,很多时候我们只是在一台多核计算机上运行着一堆单核程序罢了。或许,你的操作系统会为这些程序进程分配单独的执行内核,但是这种粒度上的多核优势是相当有限的,我们必须为自己开发出真正意义上的多核应用程序。是的,这意味着要让程序自己具备多核处理的能力。也就是说,我们现在要并行化的不是进程,而是线程。相信很多有经验的程序员看到这里都会像我一样皱起眉头,这毫无疑问是一件非常麻烦的事,操作繁多,极易出错。最要命的是,这里的绝大部分bug都是难以重现的,更别提运用什么异常处理机制了。除非能大大地简化这一过程,否则并行编程永远都是高手们手里的玩具而已。 
有趣的是,如果你问一个C++程序员,什么库用起来是最简单的?他十有八九会说是STL。若你再问他,STL有什么缺点?他十有八九又会说,它太基础了,缺少模式化应用。而这就是这本书的优势所在。 
这本书所介绍的并行模式库(Parallel Patterns Library,PPL)实际上是一个模式化的C++模版库,而且作为Visual Studio 2010开发系统的一部分,它已经完全被“内置”到了这一版本的C++语言中。这意味着你可以像使用std::for_each那样使用它的并行算法,像使用std::vector<T>那样使用它的并行容器。除此之外,它还很好地兼容了最新的C++ 0x标准(现在称为C++11了)的部分特性,例如lambda表达式。这将帮助我们写出更接近C++的代码。然而,这本书令人兴奋的地方远远不止如此,更重要的是它模式化了并行编程。在PPL的帮助下,我们可以更多地从“设计”的角度来进行并行编程,这样一来,你只需要考虑如何并行化你的数据流或控制流,而不用太担心数据共享的安全或者操作同步的细节问题。当然,前提是你选对了设计模式。毕竟,设计模式不是设计模板,不能生搬硬套。你不能“手里有把锤子,就看什么都像钉子”,设计模式只是一组设计方案的高度抽象,有着很多种变化(称它为模式变体),我们必须学会灵活运用。这需要建立正确的模式化编程思维,而这就是这本书的终极目标。 
作为译者,我从这本书中学到了不少东西,我的朋友高博(《设计原本》和《研究之美》的译者)曾这样总结他的翻译心得:“译者应该从他的翻译中首先获益!”我非常认可,因而我对自己的这些工作深感荣幸。当然,毕竟这是第一次独立完成一本书的翻译工作,经验不足使我对这项工作战战兢兢,有收获也有遗憾,希望它至少已经做到了“正确性”。在翻译过程中我得到了很多朋友的帮助,在此对他们致以最诚挚的谢意。 
首先要感谢的是机械工业出版社的各位编辑和盛大创新院的项目经理高博先生,没有他们的帮助和鼓励,我恐怕永远都不会有机会翻译这样一本好书。接下来,必须要感谢凯捷咨询的姚皓工程师、微软亚洲研究院的徐宁工程师、EMC的朱磊工程师以及思科的金瓯工程师,他们都仔细地阅读了全书的初稿,并给出了大量的修改意见,使我避免了很多灾难性的错误。朱磊工程师和金瓯工程师甚至还帮助我翻译了前言和序言部分,对他们的帮助我铭记在心,希望这本书也能给他们带去快乐
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

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