簡體   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