前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >刚开始玩openMP,总结一下遇到的一点小问题。

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

作者头像
MachineLP
发布2018-01-09 15:19:40
7960
发布2018-01-09 15:19:40
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

        首先,VS中设置步骤:

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

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

需要注意的问题:

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

例如:

代码语言:js
复制
 #pragma  omp parallel for num_thread(2)
for(int i, size_x = @; i<size_x; i+=strip_size),这样就会报错。

需要分开写:intsize_x = @;

代码语言:js
复制
#pragma  omp parallel for num_thread(n)
for(int i; i<size_x; i+=strip_size)

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

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

代码语言:javascript
复制
#include <stdio.h>   
#include <time.h>  
#include <stdlib.h>     
  
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");  
}  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月05日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档