OpenMP 正确观察计算时间
在使用 openmp的过程中, 使用了简单的 #pragma omp parallel 但是观察计算时间并未得到优化
// 使用 openmp 优化的代码
#include <stdio.h>
#include <omp.h>
#include <time.h>
#include <iostream>
int main(int argc, char **argv)
{
int m = 1100;
int a[m][m],i, j;
int sum = 0;
const clock_t begin_time = clock();
omp_set_num_threads(4);
double start = omp_get_wtime( );
std::cout <<" NumThreads : "<< omp_get_max_threads()<<std::endl;
#pragma omp parallel for private(j) reduction( +:sum) // 将其注释即可观察不使用openmp的情况
for(int k=0; k<100; k++)
{
for(int i=0; i<m; i++){
for (int j = 0; j < m; j++)
{
sum = sum + 1;
}
}
//std::cout << "Thread ID : " << omp_get_thread_num()<<" sum : " << sum << std::endl;
}
double end = omp_get_wtime( );
std::cout << " sum Total : " << sum << std::endl;
std