Fortran Coder

查看: 216|回复: 5

[求助] 请问ifort编译时如何规定并行作用的cpu数量?

[复制链接]

31

帖子

11

主题

0

精华

熟手

F 币
130 元
贡献
87 点
发表于 2021-9-20 22:55:17 | 显示全部楼层 |阅读模式
台式机有16核,可是在用mkl并行计算时每次只用到了8个,50%的使用率。
回复

使用道具 举报

19

帖子

0

主题

0

精华

专家

F 币
514 元
贡献
146 点

元老勋章新人勋章

QQ
发表于 2021-9-21 08:19:33 | 显示全部楼层
j = OMP_GET_NUM_PROCS()
call OMP_SET_NUM_THREADS(j)

31

帖子

11

主题

0

精华

熟手

F 币
130 元
贡献
87 点
 楼主| 发表于 2021-9-21 10:08:26 | 显示全部楼层
布衣龙共 发表于 2021-9-21 08:19
j = OMP_GET_NUM_PROCS()
call OMP_SET_NUM_THREADS(j)

请问是在程序中直接添加吗?j指的是CPU 核数?

31

帖子

11

主题

0

精华

熟手

F 币
130 元
贡献
87 点
 楼主| 发表于 2021-9-21 10:43:10 | 显示全部楼层
布衣龙共 发表于 2021-9-21 08:19
j = OMP_GET_NUM_PROCS()
call OMP_SET_NUM_THREADS(j)

我试了call OMP_SET_NUM_THREADS(16),但是每次计算的时候并行还是只能占用50%的cpu感觉好奇怪。之前我在服务器上跑的,没有关心核数的问题,每次都是满核计算的

636

帖子

1

主题

0

精华

大宗师

F 币
3154 元
贡献
1973 点
发表于 2021-9-25 20:49:13 | 显示全部楼层
你可能是8核16线程。

31

帖子

11

主题

0

精华

熟手

F 币
130 元
贡献
87 点
 楼主| 发表于 2021-9-29 15:36:33 | 显示全部楼层
li913 发表于 2021-9-25 20:49
你可能是8核16线程。

是的,我就是用的台式机,请问这种情况怎么处理呢。我现在想了一个折中的办法就是每次并行两个程序,正好就把cpu占满了。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2021-10-24 08:35

Powered by Tencent X3.4

© 2014-2021 Tencent

快速回复 返回顶部 返回列表