首页/文章/ 详情

小笔记-如何提升openradioss计算效率

10天前浏览1098
         

openradioss求解并不是调用越多核心数计算越快,应当根据具体模型进行合适的设置。

     

|高上地 林 丽

编辑|林 丽

来源|原 创

封面来源|Midjourney

Openradioss作为一款开源软件,可以让用户无限制的使用多核并行求解,仅仅只受到硬件的限制,感觉是真香。但近来,我们在实际应用中,却发现openradioss的计算效率不如Abaqus,并且有时候出现多核计算效果甚至不如核数少的情况,这是为什么呢?

01

调用核数越多,计算越快?

Calculation method

调用的CPU核数越多,计算速度就一定越快吗?

当我们在OpenRadioss中提交作业时,第二行空白处会让填写-nt和-np的数量,这会直接决定计算效率。

那nt和np是什么意思?应当如何选择呢?

首先我们需要了解Openradioss对于多核并行计算,提供了以下三种方法:

    1. Shared-Memory Parallelism (SMP):SMP方法用指定的核数(线程)直接求解整个模型;

    2. Single program multiple data (SPMD) :SPMD方法把模型切分成多个区域,分别计算,再通过域之间的接口进行信息传递;

    3. SMP和SPMD相结合的混合方:即先把模型切分成多个区域,每个计算采用多个核计算,再通过域之间的接口进行信息传递。

    这里nt= Number of Threads for SMP,是每个区域采用的线程数(核心数); np=Number of domains for SPMD, 是切分的区域数量。

    做一个形象的比喻,一个仿真模型就是一个工作包,被分配给了np个小组,每个小组有nt个人手。虽然人多力量大,但不同小组,不同组员之间的沟通成本也不容忽视,对于较小的工作包,如果分配给太多的小组,反而内耗过大影响工作效率了(打工人应该都有体会吧.....)。

    示意图by Midjourney

    因此,并不是调用核心数越高,计算效率越快,要根据具体问题而定。根据Radioss的帮助文档(见参考文献),推荐每个核使用10k个单元。例如对于一个30000单元的模型,推荐调用30核以获得最佳计算效率(实际使用当中,不局限在10K,可以放宽至5K-10K的范围)。

    对于单个工作站,推荐使用SPMD方法获得最佳计算效率,即只需要按照以上规则根据模型大小设置np即可,nt=1或者2(如果CPU本身可以超线程,则可以将nt设置为2)但超线程所获得的性能加速最多约5%,调用的license却加倍,因此需要考虑对license占用的情况下,nt=1会更合理,但openradioss无需考虑license占用,因此nt=2会获得最佳性能。对于计算机集群,或者同时调用2到3台工作站的情况会相对复杂,这里懒得写了。因为这种情况一般会有专门的调度软件例如Altair的PBS帮忙解决资源调度的问题。

    (*值得注意的是,这里仅仅是针对最佳计算效率的推荐配置,并不是必须。对于某些问题,在求解时,会出现用np提交无法计算,需要用nt提交才可以计算的现象,原因不明....

    **再再PS,商用版radioss可以直接用np计算,对于openradioss需要配置intel mpi.)

    02

    实例验证

    Example

    这里用一个实际的例子来验证。比如,我们的工作站一共有12个CPU,每个CPU都可以开超线程。我们要求解的模型如下图所示,是一个零件弯折问题,共有47375个单元:

    模型受力及边界条件示意图

    47375/10000=4.7 cores, 47375/5000=9.5 cores, 通常不会采用单数核,因此np=4或者8应该都是不错的,考虑到CPU可以超线程,可以将nt设置为1或者2。从下面记录的计算时间来看,红色的组合效果都不错,符合我们推测,其中最佳组合为nt=1, np=8.
    nt=1,改变np。如下图,np从1改为4,效率提升3倍;np进一步改为8,效率进一步提升。之后继续提高np计算效率反而下降。

    np=1,改变nt。如下图,nt从1改为4,效率提升2.6倍,低于np的改变;np进一步改为8,效率提升3.4倍,也低于np的改变;nt进一步提升至16,效率几乎没有继续提升。继续提高nt,计算效率反而下降。

    通过这个例子可以看到,改变np比改变nt能更显著地改变计算效率。同时nt不能太高,太高反而会降低计算效率。此外,总体占用的计算机资源为nt*np,因此针对这个模型,计算资源8是更佳选择(即nt=1, np=8; nt=2, np=4;)。

    03

    小结

    Summary

    关于OpenRadioss该用多少计算资源达到最佳效率,推荐如下:

    ·优先使用np,推荐每个核使用5k~10k个单元;

    ·计算效率接近的前提下,推荐用少的CPU个数(nt*np),以减少资源占用。

    来源:水木人CAE

    附件

    免费链接.txt
    LS-DYNARADIOSSAbaqus拓扑优化二次开发光学电子ADSUM爆炸
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2024-05-10
    最近编辑:10天前
    水木人CAE
    硕士 | R&D仿真部门经... 做一个有趣的工程师
    获赞 48粉丝 35文章 35课程 4
    点赞
    收藏

    作者推荐

    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈