本文出自:点击打开链接
计算从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; }
时间: 2024-11-05 20:26:12