Fortran Coder

查看: 9015|回复: 5

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

[复制链接]

33

帖子

12

主题

0

精华

熟手

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

54

帖子

0

主题

0

精华

实习版主

F 币
653 元
贡献
214 点

元老勋章新人勋章

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

33

帖子

12

主题

0

精华

熟手

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

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

33

帖子

12

主题

0

精华

熟手

F 币
138 元
贡献
93 点
 楼主| 发表于 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感觉好奇怪。之前我在服务器上跑的,没有关心核数的问题,每次都是满核计算的

835

帖子

2

主题

0

精华

大宗师

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

33

帖子

12

主题

0

精华

熟手

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

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

本版积分规则

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

GMT+8, 2025-1-22 19:55

Powered by Tencent X3.4

© 2013-2025 Tencent

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