技术开发 频道

Visual C++ 2010 新特性:并行计算

    【IT168 专稿】性能,永远是程序员要考虑的问题。在单核时代,甚至在双核(多核)时代,一般是通过改善客户使用的计算机性能来提升程序的性能,如增加服务器、内存,配置负载均衡等手段来实现,我们称这个过程为享受性能免费大餐。天下没有免费的午餐,性能免费大餐也不能毫无止境,实际上,已经有了新的解决方案--并行计算。并行计算就像是一道饕餮大餐而被人津津乐道,在本文中我们以烹饪为类比,通过对性能免费大餐的分析,使用Visual Studio C++ 2010这把利器,应用并行编程模型大块朵颐的进行并行开发。

  性能免费大餐已经结束

  通过提升CPU的计算能力,确实能够改善应用程序性能。但在实际情况中,无论处理器性能提升多少,软件都有办法迅速吞噬。况且,计算机硬件毕竟受物理极限的约束,处理器主频的提升已经遇到了瓶颈。所以,享受性能免费大餐的日子已经结束,业界已经不能提供指数级增长的更快的处理器,而只能选择提供指数级增长的更多的处理器。多核将引领软件研发发生基础性的变化。

  目前的电脑市场上,多核计算机的销量远远大于单核计算机,多核已经成为了一种主流。在这样的发展趋势下,如果把在单核下实现的应用程序拿到一台64核的机器上运行,你会看到任务管理器显示如下的画面——只有1/64的计算能力得到了利用:

1

  图 1 任务管理器显示64核机器上运行单线程应用程序,只有一个核在计算

  通过上面的示例可以看出,传统的应用程序再也无法顺其自然地在更高端的硬件设备上获得更高的性能回报,能够充分发挥硬件设备性能的应用程序是未来软件开发的主流,作为开发人员,我们面临的抉择是什么呢?Herb Sutter在他的原文中明确地给出了答案:并行计算。如果在四年前说“并发将是软件开发史上的又一个重大变革”是一个预测,那么今天,并行计算已经成为软件开发的核心趋势之一。对于程序员来说,享受免费大餐的日子结束后,只能亲自下厨烹饪。

  亲自下厨遇到了难题

  我们都知道,应用程序的开发,有着完整的生命周期管理,从编写需求说明书、程序设计说明书,到编码、调试和性能优化,再到测试、发布,以及后期维护等一系列的行为都有其复杂性。而并行计算是在程序开发原有的复杂性上,更添加了一个维度。在这个过程中,程序员会遇到各种各样的问题,如下图所示:

性能免费大餐已经结束

  图 2 开发并发应用程序面临的需要考虑的问题

  开发并行应用程序,一直是令广大程序员头痛的事情,现如今我们又有哪些准备了呢。俗话说的好,巧媳妇难为无米之炊,一些准备好的食材、一本可供参考的菜谱、一套方便使用的厨具是必不可少的,希望这些必备品能为我们的烹饪带来便利。 

0
相关文章