首页/文章/ 详情

确定性模式(model deterministic on)

2年前浏览1272

1 引言

当PFC程序启动时, 默认情况下,程序将以确定性模式运行(model deterministic on)。其它系列软件如UDEC, 3DEC, FLAC3D, FLAC也一样, 这是由于程序使用了多线程算法采取的一个措施. 可以通过在数据文件中使用 "model deterministic off "命令改变成非确定性模式。也可以在用户界面的Tools/Options/General中取消选中 "Determinism by default "框来改变默认值on为off。本文简要描述这个命令背后的工作机理以及注意事项.


2 为什么要使用这个命令

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


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


在循环序列(cycle sequence)中, 这个操作的循环点(cycle point)是42.0. 当以并行方式循环一个容器时,有序的条目列表被分割成子列表(称为blocks),这些子列表被发送到每个处理线程进行处理。强制确定性的一种策略是为这些block中的每一个形成部分结果,并以创建block的相同顺序存储它们。在循环序列的这个操作过程中,部分结果被组合起来,以便产生最终结果, 这就保证了无论操作的顺序如何,最终结果都是一样的。如果确定性模式被关闭,则不执行此操作。

关闭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时,则设置为当前的确定性模式。


3 在FISH内执行命令

除了上述方法外, 还可以在FISH内使用global.deterministic来获取/设置确定性模式, 例如:

获取: [deterministic_status = global.deterministic]

设置: [global.deterministic = True]


4 在Python内执行命令

除了上述方法外, 还可以在Python 内执行

获取: deterministic_status = itasca.deterministic()

设置: itasca.set_deterministic(True)


import itasca as it

it.command("python-reset-state false")

import multiprocessing

max_threads = multiprocessing.cpu_count()

deterministic_status = it.set_deterministic(False)


参考文档:

初步了解PFC之循环过程

PFC模型建立机制

PFC 之 attribute & property

离散断裂网络(DFN)[P3]: fracture contact-model

PFC 概述 (翻译)


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