我尝试使用 Microsoft Visual Studio 2012 Express 在 Win 32 位和 x64 位设置中自动并行化“for”循环。命令行选项设置为 /O2 /Qpar /Qpar-report:2 以启用优化、自动并行化以及成功和失败的“for”循环自动并行化报告。32 到 64 位设置通过此处使用的方法进行了更改:( http://msdn.microsoft.com/en-us/library/vstudio/9yb4317s.aspx )。我的计算机上正在运行 64 位版本的 Windows。我使用的示例代码来自这里:(http://msdn.microsoft.com/en-us/library/hh872235.aspx)。我运行的代码如下:
int A[1000];
void test()
{
___#pragma loop(hint_parallel(0))
___for (int i=0; i<1000; ++i)
___{
______A[i] = A[i] + 1;
___}
___for (int i=1000; i<2000; ++i)
___{
______A[i] = A[i] + 1;
___}
}
int main()
{
___test();
___return 0;
}
使用 Win32 构建,我产生了以下报告输出:
--- Analyzing function: void __cdecl test(void)
d:\myproject\mytest.cpp(4) : loop parallelized
d:\myproject\mytest.cpp(4) : loop not parallelized due to reason '1008'
使用 x64 构建时,我没有产生任何“循环并行化”或“循环未并行化”的报告。
为什么没有报告?是不是因为我只有visual studio 2012 express,但我需要VS 2012专业版?这是否发生在所有计算机或所有版本的 VS 2012 上?如何解决此问题,以便在 64 位 Microsoft Visual Studios 项目中启用自动并行化报告 ( /Qpar-report:2 )?