在多核计算机上使用OpenMP给程序加速

来源:互联网 发布:库卡krc 5.6编程软件 编辑:程序博客网 时间:2024/05/22 06:59

昨天粗略地学习了OpenMP,并在VS2008环境下做了简单的试验,现将过程及细节记录如下。

1、在[项目]——[属性]——[C/C++]——[语言]设置:[OpenMP支持]——是。

2、试验代码如下:

#include "stdafx.h"#include <time.h>#include <Windows.h>#include <math.h>#include <iostream>using namespace std;double test(int k){double a = 0;for(int i = 0; i < 30000000; i++){a += sqrt(double(i+k*k*k));}return a;}int _tmain(int argc, _TCHAR* argv[]){LARGE_INTEGER start;QueryPerformanceCounter(&start);pragma omp parallel for//OpenMP优化for(int i = 0; i < 8; i++){double r = test(i+1);cout << "r = " << r << endl;}LARGE_INTEGER end, freq;QueryPerformanceCounter(&end);QueryPerformanceFrequency(&freq);double time = 1000.0 * (end.QuadPart - start.QuadPart) / freq.QuadPart;cout << "run time:" << time << "ms."<< endl;return 0;}


3、我的机器是双核E7500,经过OpenMP优化的运行时间几乎是不优化的二分之一。


0 0
原创粉丝点击