003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题

003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题的图1

错误代码 Error 70021 (OTH+21)

这个错误消息表明LS-DYNA 在运行时需要更多的内存来处理本次模拟,但是当前的内存设置不够

错误消息中提到了可以通过两种方式增加内存大小:

1)在命令行中设置内存大小为所需的字数,使用命令 -memory=####,其中 #### 是本次所需的words(字数)。

2)在输入文件(k文件)中使用 *KEYWORD 定义内存大小,例如 *KEYWORD #### 或 *KEYWORD memory=####,其中 #### 是本次所需的words。

emory”在 LS-DYNA 求解器中指的是用于运行求解器的内存量。

在 LS-DYNA 中,内存量的设置对求解器的运行性能和能够处理的问题规模都有很大的影响。

更大的内存分配能够处理更大规模的模拟,但是需要确保计算机系统有足够的物理内存来支持所需的内存分配。

调整内存量大小以刚好满足需求和将内存量设置到计算机物理内存极限时,计算速度可能会相差数十倍。通常将内存量memory设置为使用内存的30%到80%

003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题的图2

补充:

LS-DYNA 中的 MEMORY 参数通常以字(word)为单位指定内存大小。

在计算机中,“word” 是一个基本的存储单位,表示在内存中可以一次性存储或传输的数据大小。一个 word 的大小是由计算机架构和处理器的设计所决定的,它通常等于机器字长(machine word length),即处理器一次可以处理的二进制数据位数。

在现代计算机系统中,一个word 通常是 8、16、32 或 64 位(bit)长,相应地,也就是 1、2、4 或 8 字节(byte)长。例如,一个 32 位的计算机系统中,一个 word 通常是 4 字节长;而在 64 位系统中,一个 word则通常是 8 字节长

举例,如果需要将 LS-DYNA 的运行内存设置为 2GB,那么就需要相应地将MEMORY 参数设置为适当的字数:

1 GB = 1024 MB

1 MB = 1024 KB

1 KB = 1024 bytes

64位处理器中,1 Word = 64位 = 8 bytes

因此,2GB 对应的字数为:

2GB = 2 * 1024 * 1024 * 1024 bytes / 8 bytes/word = 268,435,456 words;

可以近似设置2GB = 2*1000*1000*1000/ 10 = 2*10^8 words。

003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题的图3

注意,此时调用的计算机RAM量 MEMORY 是200000000,约为1.6 GB(这1.6GB运行内存同时被8个CPU共用)。

(运算过程中LS-DYNA使用的内存总量分为指定的静态内存(如上设定的1.6 GB和动态内存,动态内存是按需分配的,通常是在无法在适当的时间内估算所需内存量以充分包含在静态内存块中时。)

每当发生内存违规时,例如尝试分配比物理内存更多的内存或者需要指定更多内存时,LS-DYNA 将以适当的错误信息终止。

如在计算过程中会出现 Error 60380 (IMP + 380) 错误:

003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题的图4

这个Fatal Errror表明在进行隐式力学求解过程中,内存不足以解决线性代数问题。

换言之,我们在模拟过程中错误地分配了超出计算机剩余物理内存极限的计算资源(内存设置过大),因此计算机没有足够的内存来完成模型求解。

Error 60380 (IMP + 380)解决方式:

在具有更大RAM的计算机上运行仿真,或者减小网格大小,或者减少使用的内核数量,并在关闭所有其他程序(特别是浏览器)的情况下重新尝试解决相同的问题。

本次我们尝试减少使用的内核数量NCPU=2(仅用于演示目的,计算速度会明显减慢),所调用的RAM量为2*200000000,约为4GB:

003. 一文彻底搞清楚ANSYS/LS-DYNA中内存Memory设置问题的图5

Normal termination。

补充:普通台式计算机和服务器通常属于 SMP (Symmetric Multiprocessing) 架构,也称为共享内存架构。在普通台式计算机中,通常使用多核处理器,这些处理器共享同一片内存。在设置LS-DYNA命令行中的memory=xxx时,表示多个CPU共享的内存总量。如果指定了参数{NCPU = n},则它定义了在分析期间每个处理器使用的共享内存并行(SMP)线程数为“n”。这适用于LS-DYNA的SMP和混合版本。

对于MPP (Massively Parallel Processing),也称为分布式内存架构,如超级计算机和分布式计算集群,在申请LS-DYNA运行内存时,命令行中的memory=xxx则具有不同的意义。

欢迎留言批评指正。如果本文存在不够清晰或准确之处,请您不吝赐教。

个人学习总结,整理不易,未经本人允许请勿搬运。

默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏 3
关注