slaon的个人博客分享 http://blog.sciencenet.cn/u/slaon

博文

fluent UDF parallel CPU占用率50%

已有 7401 次阅读 2017-6-15 22:03 |个人分类:灵光乍现|系统分类:科研笔记| fluent

这两天发现,fluent UDF 并行计算的时候,

2个CPU的workstation只用了1个

(i.e. CPU占用率50%)。

UDF是在出口加随时间变化的压力,i.e.

DEFINE_PROFILE(Pres_Exit, thread, position)


更奇怪的是:

如果我手动打开fluent(并行,核数全上)

   不管出口压力constant,还是UDF,

   CPU 都是100%

但是,如果我用command line启动fluent的话

(i.e. fluent 2d -t48

   当出口压力constant时,CPU 100%

   当出口压力采用UDF时,CPU 50%



我一度怀疑是command line启动时,

没有开启 shared memory machine 选项!

因为,当我手动启动fluent时,

如果选择distributed memory(i.e.不开启shared memory 选项),

但是没给具体distribution设置时,

CPU也会50%。


我也怀疑,是不是UDF编译的时候,

需要特殊处理c文件?

fluent帮助确实是这么讲的。

不过,太难了,没搞懂。


后来,我把compiled的方式改成interpreted时,

任然有这样的问题。


我又把udf源文件中的命令给成固定值,

等效于出口constant。

结果,OK 了!CPU 100%


我猜到是udf源文件写错了


原因是:

我在里面加入了一个读取外部文本的命令。

本来是想把出口压力扰动频率和扰动幅值保存在外部文件中,

随时可以更改,在udf中读取。

但由于udf在每个step都执行,

这个读取外部程序的命令也在每一步都运行。

造成了资源浪费。




https://blog.sciencenet.cn/blog-531760-1060997.html

上一篇:fluent adaption
下一篇:fluent 后台运行,隐藏GUI窗口
收藏 IP: 114.213.245.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-7-28 11:23

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部