所有
工作环境:
整个项目非常简单:
1)test.pro
TEMPLATE = app
CONFIG += console
CONFIG -= qt
SOURCES += main.cpp
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS += -fopenmp
LIBS += -lgomp -lpthread
2)main.cpp
#include <time.h>
#include <stdio.h>
#include "omp.h"
void test()
{
int a = 0;
clock_t t1 = clock();
for (int i = 0; i < 100000000; i++)
{
a = i + 1;
}
clock_t t2 = clock();
printf("Time = %d\n", t2 - t1);
}
int main(int argc, char* argv[])
{
clock_t t1 = clock();
#pragma omp parallel for
for (int j = 0; j < 2; j++)
{
test();
}
clock_t t2 = clock();
printf("Total time = %d\n", t2 - t1);
test();
return 0;
}
测试结果: 1)#pragma omp parallel for
Time = 443989
Time = 448263
Total time = 463749
Time = 226997
2)没有#pragma omp parallel for
Time = 216945
Time = 208459
Total time = 425435
Time = 208400
在这种情况下,使用OpenMP似乎会减慢整个程序的速度。
但是,在Windows 8.1 Visual Studio中给出了不同的结果。
干杯 培