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

本文介绍如何在Visual Studio中启用OpenMP支持,并通过实例展示如何利用OpenMP进行并行for循环,提高程序运行效率。文章还特别强调了在编写并行代码时应注意的事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


        首先,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<size_x; i+=strip_size),这样就会报错。

需要分开写:intsize_x = @;

#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。


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

#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");  
}  
如果帮到你了,请赞赏支持:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MachineLP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值