Fortran Coder

查看: 8950|回复: 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 点
5#
发表于 2021-9-25 20:49:13 | 只看该作者
你可能是8核16线程。

33

帖子

12

主题

0

精华

熟手

F 币
138 元
贡献
93 点
6#
 楼主| 发表于 2021-9-29 15:36:33 | 只看该作者
li913 发表于 2021-9-25 20:49
你可能是8核16线程。

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

本版积分规则

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

GMT+8, 2024-12-23 01:20

Powered by Tencent X3.4

© 2013-2024 Tencent

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