gpt4 book ai didi

openMP 不在 Visual Studio 中创建线程

转载 作者:行者123 更新时间:2023-12-04 11:15:36 27 4
gpt4 key购买 nike

我的 openMP 版本没有提供任何速度提升。我有一台双核机器,CPU 使用率始终为 50%。所以我尝试了 Wiki 中给出的示例程序。看起来 openMP 编译器 (Visual Studio 2008) 不会创建多个线程。

这是程序:

 #include <omp.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[]) {
int th_id, nthreads;
#pragma omp parallel private(th_id)
{
th_id = omp_get_thread_num();
printf("Hello World from thread %d\n", th_id);
#pragma omp barrier
if ( th_id == 0 ) {
nthreads = omp_get_num_threads();
printf("There are %d threads\n",nthreads);
}
}
return EXIT_SUCCESS;
}

这是我得到的输出:
Hello World from thread 0
There are 1 threads
Press any key to continue . . .

最佳答案

该程序没有任何问题 - 因此它的编译或运行方式可能存在一些问题。这是VS2008 Pro吗?一个快速的谷歌搜索表明 OpenMP 在标准中没有启用。是否在属性 -> C/C++ -> 语言 -> OpenMP 中启用了 OpenMP? (例如,您是否使用/openmp 进行编译)?运行此命令时,环境变量 OMP_NUM_THREADS 是否在某处设置为 1?

关于openMP 不在 Visual Studio 中创建线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515276/

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