并行for #pragma omp parallel for

#pragma omp parallel for 并行for

添加

#pragma omp parallel for 

可以让for并行计算,提高效率。
首先要项目开启对openmp的支持
属性-》》c/c+±》》语言-》》OpenMP支持 打开就可以了,用法如下:

#include <omp.h>
#include <cstdio>
#include <cstdlib>//用到rand()函数
#include <ctime>   //用到clock()函数

const int maxn = 1e8;

int main()
{
	int begintime, endtime;
	printf("It is use parallel compute:\n");

	begintime = clock();	//计时开始
#pragma omp parallel for
	for (int i = 0; i < maxn; ++i);
	endtime = clock();	//计时结束
	printf("\n\nRunning Time:%dms\n", endtime - begintime);


	printf("\n\n\nIt is not use parallel compute:\n");
	begintime = clock();	//计时开始
	for (int i = 0; i < maxn; ++i);
	endtime = clock();	//计时结束
	printf("\n\nRunning Time:%dms\n", endtime - begintime);
	return 0;
}

可以指定并行的线程数。

#include <omp.h>
#include <cstdio>
#include <cstdlib>//用到rand()函数
#include <ctime>   //用到clock()函数

const int maxn = 1e8;

int main()
{
	int begintime, endtime;
	int nthreads;
	printf("It is use parallel compute:\n\n\n");
#pragma omp parallel
	nthreads = omp_get_num_threads();
	printf("Now, it is %d threads\n", nthreads);
	begintime = clock();	//计时开始
#pragma omp parallel for
	for (int i = 0; i < maxn; ++i);
	endtime = clock();	//计时结束
	printf("\nRunning Time:%dms\n", endtime - begintime);

#pragma omp parallel
	nthreads = 12;
	omp_set_num_threads(nthreads);
	printf("\nNow, it is %d threads\n", nthreads);
	begintime = clock();	//计时开始
#pragma omp parallel for
	for (int i = 0; i < maxn; ++i);
	endtime = clock();	//计时结束
	printf("\nRunning Time:%dms\n", endtime - begintime);

	printf("\nIt is not use parallel compute:\n");
	begintime = clock();	//计时开始
	for (int i = 0; i < maxn; ++i);
	endtime = clock();	//计时结束
	printf("\nRunning Time:%dms\n", endtime - begintime);
	return 0;
}

但并行计算要确保处理的数据没有先后顺序性
参考:https://www.freesion.com/article/64571448599/

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值