setFields是否可以并行计算提高效率
-
各位前辈,我在setFields中需要设置几千个球状的体积分数,直接setFields执行发现很慢,在网上没能找到相关并行计算的讨论,想问一下是否可以先decomposePar再setFields,如果可以,有哪些设置需要注意吗?
-
@学流体的小明 在 setFields是否可以并行计算提高效率 中说:
确实很慢。我想手动划分计算域,使用setFields也很慢。看别人的思路,先topoSet标记区域,然后再对区域进行setFields,也感觉挺慢的,时间上差不多吧?但是topoSet之后可以重复使用这个被标记的区域。
另一个思路是自己写程序进行赋值。我推测setFields和topoSet很慢,是因为每个赋值块它都要遍历一次网格,设置几千个球状的体积分数,就要遍历几千次网格?自己写程序的话,遍历一次就够了。感谢您提到的思路,我还没有尝试过。之所以提到这个问题,一方面是因为计算速度,另一方面是因为一次性setFields几千个球体经常会在中间报错(各种错误),导致我一直失败。昨天晚上,我尝试了将几千个球体分成四份setFieldDict文件,大概每次set 1k多球体,这样可以保证不报错。实际体验来看,1s可以设置1个球体,4k个球体的体量大概1h左右就可以setFields完成,不报错的话就可以接受这样的速度。