gpt4 book ai didi

c++ - 如何判断 OpenMP 是否适用于我的 C++ 程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:21 28 4
gpt4 key购买 nike

我正在使用 OpenMP 对我的嵌套循环进行多线程处理。由于是新手,我不确定我是否以正确的方式使用 OpenMP,以便它实际上可以进行并行编程。所以我想知道我是否可以测量使用 OpenMP 的 C++ 程序的性能,以便我可以判断它是否确实有效并且我走在正确的轨道上?比如有多少线程并行运行,每个线程完成需要多长时间。谢谢和问候!

最佳答案

#include <omp.h>

...
int target_thread_num = 4;
omp_set_num_threads(target_thread_num);
unsigned long times[target_thread_num];

// Initialize all the times
#pragma omp parallel
{
int thread_id = omp_get_thread_num();
times[thread_id] = start_time();

std::cout << "Thread number: " << omp_get_thread_num() << endl;

times[thread_id] = end_time();
}
...

显然您需要提供两个计时器函数,但这就是要点。 OMP 函数是不言自明的。还要确保您的环境设置正确,并且您正在使用正确的机制进行编译。 g++ 选项是 -fopenmp。在 Visual Studio 上转到项目设置、C++、语言,并启用“OpenMP 支持”。

关于c++ - 如何判断 OpenMP 是否适用于我的 C++ 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1302368/

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