技术开发 频道

多核并行软件开发 工具成关键?

  【IT168 评论】为何要关注多核编程技术

  没有一家厂商能够像Intel那样,如此关心你程序的运行效率,是的,答案很简单,因为他们卖的是芯片。

  软件是打开硅芯片创新性能之门的钥匙,是能够将英特尔硬件潜力发挥到极致的关键。没有了软件,硬件不过是一堆废铜烂铁。从最高精尖的超级计算机到小巧玲珑的手持设备,再到五花八门的嵌入式设备,许多开发人员通过软件为IA架构带来了种种新的应用模式,然而调查显示,因为软件的原因,大部分应用中,硬件计算资源都得不到充分的发挥和使用。

  在即将在美国旧金山的马士孔尼会展中心(Moscone Center West)举行的2009年秋季英特尔信息技术峰会(IDF)上,你也许能够找到通过软件的方式,提高IA架构下应用程序性能的钥匙。

  尽管多核技术带来了应用程序划时代的变革,然而传统企业开发者对多核条件下的并行程序设计与开发存在诸多障碍。英特尔副总裁兼亚太研发中心总经理理王文汉博士就曾经提出过:多核时代下,并行编程是开发人员需要解决的最重要的问题之一。

  如何划分并行任务?如何最大限度地发挥底层硬件的计算能力,这些都是横亘在开发者特别是系统程序开发者面前的难题。

  如果你想在在这发面有所了解,那么今年秋季的IDF大会上,英特尔公司副总裁兼软件和服务部门总经理雷内•詹姆斯(Renee James)女士带来的,题为《Developing Across the Spectrum of Computing - Software Makes it a Reality》的主题演讲你不应该错过。她将探讨英特尔众多的软件产品、工具和支持服务,从在各行各业减少并行编程的复杂性,到嵌入式应用的构建工具,再到超级计算机性能优化,从各个层面来帮助开发人员充分利用IA架构的潜力。

  多核编程,工具将成为焦点

  公欲善其事,必先利其器。工具从来都是时代进步的最大依靠。并行编程的理论其实我们学习了很多年,但大型应用中,还是鲜有并行计算的成功案例,最大的原因除了业务和交易量并不需要以外,还有一个就是工具。一直没有称心如意的并行或者多核程序的开发工具来帮助我们形成并行的思维,来消化我们并行程序的理论。

  在基于Java的开发工具Eclipse和.NET阵营的Visual studio中,尽管从语言层面上我们已经能都够支持多线程的开发,但多核开发和多线程开发存在很大的区别。在本质上,多核开发也就是利用多线程进行程序开发,让不同功能的进程在不同的核上运行,或者让同一进程中不同功能的线程在不同的核上运行。以往我们学习的算法都是面向单线程的,而多核开发时要将这些算法改造成支持多线程的算法,然后系统运行时会将多线程分配到多核处理器上,以实现运行的加速。

  不过和传统的多线程编程方式有所不同, 多核开发对于同步锁定等问题较简单,但是需要仔细分析出可并行计算的代码块来,让多线程能够在一个任务中并行。多线程开发的时候,你并不知道有几个物理CPU,而进行多核开发时,你肯定知道有多少个物理CPU。

  今年5月,英特尔公司推出的新款并行化编程工具英特尔 Parallel Studio,对开发人员来讲,可谓雪中送炭。Parallel Studio旨在为使用Visual Studio的C/C++程序员提供Intel一套并行开发工具,目的是显著提高应用程序在Intel多核心处理器上的性能。

            Parallel Studio产品构成

  作为一个产品套装,Parallel Studio主要包括以下三大部分:

  Parallel Composer:整合了编译器、库和并行调试功能,更轻松、迅速地支持串行和并行应用程序的多线程编程工作,简化和加速Microsoft Visual Studio C/C++的开发工作。

  Parallel Inspector:可以算是迄今为止最简单易用的VS C/C++多线程程序错误检查工具。与其他同类工具相比,运行速度最快,提供的选择最多,可以精确查找潜在的多线程编程问题和内存错误。

  Parallel Amplifier:可以让开发人员快速找到多核心性能瓶颈,无须了解处理器的架构和内置编码即可实现程序性能优化,充分利用处理器每一个核心的性能。

  另外还包含有一个新的插件“Parallel Advisor Lite”,可以帮助开发人员确定在现有源代码中何处能从并行机制中获益最大。

0
相关文章