首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >omp_set_num_threads( )没有特定子例程

omp_set_num_threads( )没有特定子例程
EN

Stack Overflow用户
提问于 2019-03-14 08:18:54
回答 1查看 175关注 0票数 0

我想通过执行以下操作将我的线程数设置为10:

代码语言:javascript
代码运行次数:0
运行
复制
CALL OMP_SET_NUM_THREADS(10)
!$OMP PARALLEL 
T=OMP_GET_NUM_THREADS()
!$OMP END PARALLEL
PRINT*, T

它打印出10,这是正确的。但是,如果我定义了一个变量NUM_THREADS,并将其传递给GetThreadsNumer子例程,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
INTEGER(KIND=16), PARAMETER :: NUM_THREADS=10
CALL OMP_SET_NUM_THREADS(NUM_THREADS)

然后运行它,它给了我一个bug:

代码语言:javascript
代码运行次数:0
运行
复制
Error: There is no specific subroutine for the generic ‘omp_set_num_threads’ at (1).

为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2019-03-14 08:23:31

我不知道您的编译器将哪种类型的整数作为KIND=16,但它似乎是一种非标准类型,OpenMP没有相应的子例程。

对于一个可以很容易地用标准的16或32位整数表示的数字,确实没有理由使用非标准的互联网类型。

INTEGER声明中去掉种类描述符,它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55153067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档