svitter的专栏

当你想要放弃的时候,想想你当初为什么开始。

并行计算__简单并行计算实例

本文出自:点击打开链接


计算从1~1E10的和

// paralle.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>

#define NUM_THREADS 4

int _tmain(int argc, _TCHAR* argv[])
{
	omp_set_num_threads(NUM_THREADS);

	long long sum = 0;
	long long sumtmp[NUM_THREADS];
	clock_t t1 = clock();

#pragma omp parallel 
	{
		long i;
		long id = omp_get_thread_num();
		long long temp = 0L;
#pragma omp for
		for(i = 1; i <= 1000000000; i++)
		{
			temp+=i;
		}
		sumtmp[id] = temp;
	}

	for(long i = 0; i < NUM_THREADS; i++)
	{
		sum += sumtmp[i];
	}

	clock_t t2 = clock();
	printf("sum=%lld\n", sum);
	printf("parallel time = %d\n", (t2-t1));

	sum = 0;
	t1 = clock();
	for(long i = 1; i <= 1000000000; i++)
		sum += i;

	t2 = clock();
	printf("sum=%lld\n", sum);
	printf("serial time = %d\n", (t2-t1));

	system("pause");
	return 0;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/svitter/article/details/39376099
个人分类: 并行计算
上一篇wget下载整个网站或目录
下一篇关于整数的质因子分解和筛素数的分析
想对作者说点什么? 我来说一句

OpenMP并行计算程序例子

2011年11月25日 14.19MB 下载

没有更多推荐了,返回首页

关闭
关闭