gpt4 book ai didi

c++ - 如何测试 C++ 是否正在使用 openmp?

转载 作者:搜寻专家 更新时间:2023-10-31 02:16:40 27 4
gpt4 key购买 nike

我有一个程序可以对一堆图像进行独立计算。这似乎是使用 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 ... 运行)

有谁知道哪里出了问题?这是我的程序中最慢的部分,如果能加快一点就好了。

最佳答案

您的 OpenMP 指令是错误的 - 它是“并行”而不是“并行”。

关于c++ - 如何测试 C++ 是否正在使用 openmp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36671609/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com