首页 > 代码库 > 并行计算__简单并行计算实例

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

本文出自:点击打开链接


计算从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;
}


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