pro文件
msvc {
QMAKE_LFLAGS += /openmp
QMAKE_CFLAGS += /openmp
QMAKE_CXXFLAGS += /openmp
} else {
QMAKE_LFLAGS += -fopenmp
QMAKE_CFLAGS += -fopenmp
QMAKE_CXXFLAGS += -fopenmp
}
2.cpp文件
#include <iostream>
#include <omp.h>
void test()
{
#if _OPENMP
std::cout << " support openmp " << std::endl;
#else
std::cout << " not support openmp" << std::endl;
#endif
int sum = 0;
#pragma omp parallel for num_threads(32) reduction(+:sum) // NEW ADD
for(int i=0; i<100; i++)
{
sum += i;
}
std::cout << " sum = " << sum << std::endl;
sum = 0;
#pragma omp parallel num_threads(32)
{
#pragma omp atomic
sum += 10;
}
#pragma omp barrier
std::cout << " sum2 = " << sum << std::endl;
}