以Intel Parallel Studio 2011为例

自本月第二版Parallel Studio发布以来,我已经花了很多时间来尝试新功能。

首先,什么是Parallel Studio?它是Microsoft Visual Studio的外接程序,为您提供了大量用于编写针对多个处理器核心的并行代码的功能。它包括一个可以运行的新C ++编译器,而不是内置的Visual C ++编译器,使您可以利用几个新功能。 Parallel Studio集成了所有最新版本的Visual Studio:2005、2008和2010。

第二版Parallel Studio 2011是对第一版的重大改进。新功能包括:Cilk Plus:新的C ++关键字(称为Cilk Plus),可简化并行线程代码的编写。

BPP:Parallel Studio包含一个完整的模板库,称为Parallel Building Blocks(PBB)。 PBB基于Threading Building Blocks 3.0构建,Threading Building Blocks 3.0是由英特尔与数组Building Blocks一起创建的开源线程库。该线程库包括几个与标准C ++库中的类相似的类,不同之处在于它们是完全线程安全的,并且在可能的情况下将在多个内核上同时运行。这消除了多线程编程的繁重工作,这是Intel Parallel Studio 2011的主要目标之一。

英特尔Parallel Advisor:这是2011年的所有新增功能。(早期版本包括“精简版”。)此处的想法是,您将获得开发并行代码的准则。我发现Parallel Advisor令人印象深刻的是它实际上有多聪明。这个想法是,它监视正在运行的程序,并找到可以从并行化中受益的地方。它包括一个工作流程窗口,可指导您完成这些步骤。

通过Parallel Advisor进行测试

2011版最大的改进是使用了Parallel Advisor。这个工具很不错。我通过测试运行来告诉它在哪里添加并行性。这里是分析程序: 结果如下,表明setQueen函数是瓶颈: 这就是建议增加并行性的地方: 许多人(包括我)有一个问题是:为什么它分析您正在运行的代码而不是源代码本身?原因是这样做可以提供更准确的结果。分析源代码只能走这么远,并且需要一些认真的人工智能才能找到理想的并行化点。但是通过分析运行情况,该产品可以分析正在发生的所有情况,并实时地实时确定您的程序可以从并行化中受益的地方。 人们通常会对性能的提高感到惊讶,但是有些感觉是积极的,有些则是消极的。例如,在IDF的一次会议中,英特尔经理通过将工作分配在四核处理器上,成功地将示例应用程序加速了三倍。听众中的一个人说他期望会有更大的不同,我也有同样的感觉。我想我希望看到两位数甚至100倍的改进。但是,现实情况是,我们只处理四个核心,而并非所有事情都可以现实地划分到各个核心中。

可能的潜在缺点是在C ++中添加了三个新关键字。一方面,这些关键字极大地简化了并行代码的编写。但是问题是您完全失去了对其他编译器的可移植性。这可能是问题的原因是,如果您想将软件移植到其他平台(例如手持设备),则可能会遇到问题。但是,实际上,如果要移植到手持设备,则无论如何都可能会对代码进行许多其他更改,因此,解决这三个关键字可能是最少的问题。那么,我认为附加关键字确实不是一个大问题。

结论 这是一个了不起的产品,新版本添加了一些出色的工具,有望使每个人都考虑使用其软件来针对多个内核。但是,该产品涉及学习曲线,有时您可能对性能提高感到失望。价格对于个人开发者来说可能还有些高,但是更大的软件公司应该可以负担得起。包含Advisor,Amplifier,Composer和Inspector的完整产品,799美元。或单个组件每个399美元。 30天免费试用。