找回密码
 注册
查看: 9500|回复: 11

并行计算时,DPM模型为什么总有颗粒incomplete

[复制链接]
发表于 2011-3-3 08:45:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Max Number of Steps已经取到最大了,还是有未完成的颗粒,不知道为什么。
6楼有真相

[ 本帖最后由 2005011lcj 于 2011-3-4 09:01 编辑 ]
捕获.PNG
捕获2.PNG
 楼主| 发表于 2011-3-3 10:40:59 | 显示全部楼层
知道了原因了,是因为我使用的核太多,24个,将模型分为了24个区域,使得有部分区域的壁面完全是反弹的壁面,就这样颗粒一直没有完成。
但是当我使用8核心计算的时候,颗粒均能完成,(12核心计算还是不能完成)。
问了一个老师,他说50万的网格不要用那么多核心去算,因为没必要,用的核心越多并不是算得越快,大部分时间都是在交换数据,并且容易产生误差(这个我深有体会,我有一次用48核心算,发现还没有24核心算得快)。50万网格用8核心,顶多12核心就可以了。

[ 本帖最后由 2005011lcj 于 2011-3-4 09:00 编辑 ]
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2011-3-3 08:53:58 | 显示全部楼层
但是,当时用单核计算的时候,却可以完成。
3.PNG
 楼主| 发表于 2011-3-3 09:29:39 | 显示全部楼层
改成共享内存模式,发现颗粒可以完成,但是算了一步就出错了。

[ 本帖最后由 2005011lcj 于 2011-3-3 09:31 编辑 ]
4.PNG
发表于 2011-3-3 09:31:13 | 显示全部楼层

回复 2# 2005011lcj 的帖子

同样期待高手作答啊,不过楼主已经做到并行计算,蛮强的了...先顶一下!
发表于 2011-3-3 10:23:05 | 显示全部楼层
估计是主相还需要继续迭代计算,你可以看一下pathline的流线是否有未完成的,估计会有,试试继续接着计算,估计有可能好了。
另外请问,dpm的模型可以提取什么样的数据,看某一区域的浓度可以么,我的模型越算越离散,愁啊
发表于 2011-3-3 10:54:04 | 显示全部楼层

回复 6# 2005011lcj 的帖子

牛人啊
发表于 2011-3-3 12:56:06 | 显示全部楼层

回复 1# 2005011lcj 的帖子

还有一种可能:有些颗粒在内部循环(比如回流区),这样,这个颗粒是出不去了,你可以监测未完成的颗粒转化率是否已经达到100%,如果达到100%没出去也无所谓的
发表于 2011-11-15 15:19:06 | 显示全部楼层

回复 1# 2005011lcj 的帖子

请问您的dpm并行计算是怎么实现的呢?有没有用到UDF?我现在做dpm模型的并行计算,需要使用DEFINE_DPM_EROSION和DEFINE_ON_DEMAND,在编译的时候没有提示问题,但是没有颗粒被捕捉到。串行计算的时候是可以的呢。。。恳请您帮忙!不胜感激。。。
发表于 2011-11-15 15:37:36 | 显示全部楼层
我并行计算的结果老是说:
number tracked = 12, escaped = 12, aborted = 0, trapped = 0, evaporated = 0, incomplete = 0
Parallel particle tracking concurrency: 0%
这是为什么啊?求楼主解救。。。
发表于 2011-11-15 17:17:16 | 显示全部楼层

回复 10# uubtc 的帖子

挺好的啊,有啥问题呀?
发表于 2011-11-15 22:20:35 | 显示全部楼层

回复 11# xrs333 的帖子

这个结果是不对的啊~应该是有trapped的,可是这里却没有,而且parallel particle tracking concurrency 为0呢~
另外还有个特别棘手的难题就是,udf的加载提示出错。因为udf中采用了DEFINE_ON_DEMAND这个宏,在计算结尾时无法execute,不能产生和单机单核运行时一样的dat文件。。。
这可怎么办呢?恳请您赐教~不胜感激~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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