/ MP未在VS2012中启用OpenMP支持

时间:2013-08-28 11:37:27

标签: c++ visual-studio visual-c++ openmp

我在visual c ++ 2012中有这段代码:

void Run()
{
    #pragma omp parallel for
    for(int imageNo=0;imageNo<4;imageNo++)
    {
        RunForOneImage(imageNo, Data[imageNo],
                       width, height,
                       OutputWidth, OutputHeight);  
    }
}

RunForOneImage中的所有变量都是局部变量,它不使用任何全局或类成员变量。

运行时,我可以看到只有一个核心变得忙碌而其他核心闲置。

为什么这不是并行运行?

我在visual studio(/ MP)中选择了多处理器选项。我还应该选择其他选项吗?

2 个答案:

答案 0 :(得分:3)

/MP选项意味着 编译 将在多个处理器上运行,其目的是“减少编译源的总时间文件“

它与 OpenMP API 无关。要启用OpenMP支持,可以使用/openmp选项(在文档中,您还可以找到示例以及如何启用OpenMP支持的说明)。

答案 1 :(得分:2)

只需转到项目属性 - &gt; C / C ++ - &gt;语言 - &gt;打开MP支持并将其切换为是。