繁体   English   中英

/ MP在VS2012中未启用OpenMP支持

[英]/MP doesn't enable OpenMP support in VS2012

我在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)中选择了多处理器选项。 我还有其他选择吗?

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

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

只需转到“项目属性”->“ C / C ++”->“语言”->“打开MP支持”,然后将其切换为“是”即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM