刚开始玩openMP,总结一下遇到的一点小问题。


        首先,VS中设置步骤:

        工程属性 —> C/C++ —> language 中的Open MP Suport中选择Yes 就OK了。


        之后在for循环前加 #pragma omp parallel for num_thread(n) ,其中这里的n是你要开的线程数。

需要注意的问题:

(1)这里的for训练中不要有太多无关变量:

例如:

 #pragma omp parallel for num_thread(2)

for(int i, size_x = @; i

需要分开写:intsize_x = @;

#pragma omp parallel for num_thread(n)

for(int i; i

(2)size_x不能为float,double等类型,需要为int,可以前面加(int)size_x。


最后给一段小程序,感受一下:

#include    
#include   
#include      
  
void test()//纯粹浪费时间  
{  
    int add = 0;  
    for (int runtime = 0; runtime < 100000000; runtime++)  
        add++;  
    printf("%d\n", add);  
}  
  
void main()  
{  
    int beginClock = clock();//记录开始时间  
#pragma omp parallel for  
    for (int testtime = 0; testtime<8; testtime++)  
    {  
        test();//运行计算  
    }  
    printf("运行时间为:%dms\n", clock() - beginClock);//输出图像处理花费时间信息    
    system("pause");  
}  
如果帮到你了,请赞赏支持:

刚开始玩openMP,总结一下遇到的一点小问题。_第1张图片

你可能感兴趣的:(c++学习)