首页/文章/ 详情

双CPU运行FLAC3D的相关事项

11月前浏览2280

1. 引言

Itasca软件没有使用GPU运算,只是引入了多线程,当前版本的FLAC2D、FLAC3D、UDEC、3DEC 和 PFC 都是多线程的。理论上,通过使用list, splitting和operators,任何list(zones, gridpoints等)的循环被split成不同的块,然后把它分配到计算机上所有可得到的处理器来并行运算,从而增加整体的运行速度。


不过,实际的情况并非如此。Itasca承认在多 CPU 计算机上运行时,无论每个 CPU 的核心数量如何,多线程效率都会持续降低。因此并行运行两个FLAC3D 模型而不是串联运行两个模型能够提高整体效率。


2. 解决方法

Itasca发现即使没有使用所有的RAM,但当 RAM 插槽为空时计算机运行速度会变慢,因此Itasca建议填满所有 RAM 插槽当我们说RAM插槽已满时,意味着主板上的所有内存插槽都被RAM模块占用了。通常主板共有 4 个 RAM 插槽,如果是双通道,则有两对。一些高端主板可能包含多达 8 个插槽,而在超级计算机中,每个系统可能有多个主板,总共最多 32 个插槽。

当同时开始运行两个FLAC3D程序后,系统自动加载了计算机内所有的核,使用program threads命令手动设置所需核的数目【Itasca软件的多线程处理(multi-thread processing)】。

3. model deterministic命令
当程序启动时, 默认情况下程序将以确定性模式运行(model deterministic on),这是由于程序使用了多线程算法采取的一个措施,可以通过在数据文件中使用 "model deterministic off "命令改变成非确定性模式。也可以在用户界面的Tools/Options/General中取消选中 "Determinism by default "框来改变默认值on为off。


当一个计算在多个CPU或内核上并行执行时,特定计算产生的顺序会发生变化, 这可能会导致舍入误差以不同的方式累积起来。对于许多模型来说,几乎不可能检测到这些差异导致的最终结果。但对于一些广泛的模型来说,这些差异可能会被放大,导致每次运行给定模型时会得到不同的结果。需要注意的是,所有这些结果都是同样有效的,因为它们都在有限精度浮点误差范围内。


确定性模式(Deterministic mode)牺牲了效率和内存,在确定性模式下,不管它是在多少个CPU上进行的,也不管它们的相对速度如何, 所有以相同初始条件开始的模型每次运行都会产生相同的结果,但性能会降低至少20%。另一方面,在非确定性模式下,相同的初始条件可能导致不同的解答。其差异仅仅是由于求和顺序造成的,所有的解决方案在机器精度上都是同样有效的。


关闭determinism(命令为 model deterministic off)的对整个程序的运行会产生影响, 具体表现在以下几个方面: (1) 模型运行速度更快。在FLAC3D中可以快20%,在PFC3D中可以快70%。(2) 运行结果不可重复。在某些情况下,小的变化会传播,导致每次运行模型都会得到不同的结果。(3) 显然, 数据文件和项目文件不能重现结果。为了保存文档,应该将结果保存文件(.sav)与输入数据一起保存。


老的版本使用SET Deterministic on/off 命令, 新版本现在统一使用model deterministic <default> on/off 命令设置确定性模式。无论什么时候使用model new命令, 确定性模式会被重置为默认设置。可选的default关键字用于将默认设置设置为on/off,当不使用default时,则设置为当前的确定性模式。


4. FISH和Python执行命令

(1) FISH 

在FISH内使用global.deterministic来获取/设置确定性模式:

获取: [deterministic_status = global.deterministic]

设置: [global.deterministic = True]


(2) Python

获取: deterministic_status = itasca.deterministic()

设置: itasca.set_deterministic(True)






import itasca as itit.command("python-reset-state false")import multiprocessingmax_threads = multiprocessing.cpu_count()deterministic_status = it.set_deterministic(False)


来源:计算岩土力学
python理论PFCFLAC3D3DEC
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-26
最近编辑:11月前
计算岩土力学
传播岩土工程教育理念、工程分析...
获赞 138粉丝 990文章 1776课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈