我有一个程序可以对一堆图像进行独立计算。这似乎是一个使用OpenMP的好主意:
//file: WoodhamData.cpp
#include <omp.h>
...
void WoodhamData::GenerateLightingDirection() {
int imageWidth = (this->normalMap)->width();
int imageHeight = (this->normalMap)->height();
#pragma omp paralell for num_threads(2)
for (int r = 0; r < RadianceMaps.size(); r++) {
if (omp_get_thread_num() == 0){
std::cout<<"threads="<<omp_get_num_threads()<<std::endl;
}
...
}
}
为了使用OpenMP,我将-fopenmp
添加到我的makefile中,因此输出:
g++ -g -o test.exe src/test.cpp src/WoodhamData.cpp -pthread -L/usr/X11R6/lib -fopenmp --std=c++0x -lm -lX11 -Ilib/eigen/ -Ilib/CImg
然而,我伤心地说,我的程序报告threads=1
(从终端运行./test.exe ...
)
有谁知道可能出错了什么?这是我程序中最慢的部分,加速它会很棒。
答案 0 :(得分:2)
您的OpenMP指令错误 - 它是&#34; parallel&#34;不是&#34; paralell&#34;。