ansys中存储的数据,下面数据中能查看所需内存空间和所需磁盘存储空间信息吗?请问所需内存和磁盘存储空间
发布网友
发布时间:2022-05-24 12:29
我来回答
共2个回答
热心网友
时间:2023-10-13 07:21
不能,计算机的物理内存(real memory)对ansys程序来讲,主要用于两部分:一部分用于维持ansys程序在系统内的运行(ansys excutable),另一部分用于ansys的工作空间(workspace)。对于32位系统来说,ansys默认的工作空间是512MB,64位系统来说,ansys默认的工作空间是1GB。一旦程序要求的内存大于计算机的物理内存(real memory),那么程序会占用一部分磁盘空间将其作为内存使用,即通常所说的虚拟内存(system virtual memory),用作虚拟内存的这部分磁盘空间称之为交换空间(swap space),文件称之为交换文件(swap file)或页面文件(page file)。这是基本概念
因此,交换空间大小和计算机的物理内存大小、工作空间大小、ansys本身运行所需要的内存有关。
ansys工作空间又分为两部分,一部分称之为数据库空间(database space),主要存储ansys几何模型,载荷,材料属性等数据,另一部分称之为暂存空间(scratch space),主要用于内部计算,如布尔运算,单元矩阵生成,方程求解等。32位系统中,512MB的默认工作空间中256MB用于database space,256MB用于scratch space。64位系统同样被平均分成两部分。
一旦模型太大,数据库空间盛不下,将会调用虚拟内存,虚拟内存使用系统函数来实现内存和硬盘之间的数据交换,而物理内存使用ansys指令来实现内存和硬盘的数据交换。用于ansys虚拟内存的文件称之为页面文件(page file),文件名为:jobname.page其大小取决于模型大小,不建议使用页面文件,因为其处理数据比较低效。因此,要给database space分配足够的物理内存,防止使用页面文件(page file)实现内存和硬盘之间的数据交换。
如果暂存空间不足以满足内部运算的话,ansys会分配额外的内存来满足程序要求。
最好有足够的物理内存来运行ansys任务,划分网格或者是方程重新排序过程中物理内存不足而暂时性的使用虚拟内存对运算速度影响还不是很大,但是如果求解过程中物理内存不足,会使运算过程慢上十倍。
上面这部分是基本术语。下面是内存分配问题。
通常情况下不需要手动配置内存,ansys内存管理器会自动分配额外的内存。通过-m命令设置初始内存块的大小,这个命令分配的内存存在于两个连续的块内。例如:-m 1800 -db 300,即首先分配300MB的连续内存块给database space,然后分配1500MB的连续内存块给scratch space.理想情况下,ansys从初始内存块内部分配内存,使得在各个仿真阶段可以有效的重新利用内存块。一旦ansys需要更多内存,它就会向系统伸手要,新的内存块为scratch space一半大小或分配的新的内存块的大小。当出现分片内存引起的内存不足导致的计算失败的情况时需要改变默认内存分配设置 什么意思呢?一个大的模型需要800MB的连续内存块用于稀疏矩阵求解,默认的内存分配显然不够,采用-m 1800的设置可能失败(特别是32位windows系统),但是如果设成-db 100就行
32位windows系统,最大寻址空间为2GB或3GB(这还是在3GB开关打开的情况下才能使用)。当Ansys启动时,不同的进程,包括Ansys本身以及保证Ansys正常运行的各种动态链接库和保证操作系统正常运行的动态链接库,来争夺这点有限的空间。所有这些程序必须常驻在分配给ansys程序的进程空间中。如果分配给ansys实际寻址空间中存在一个或多个上述进程,这些进程会将内存分割成不连续的小块,这是ansys对内存不连续块的理解.上述文字也解释了不连续内存块的形成原因。
可以使用以下方式来确定一个特定的操作系统所容许的分配给Ansys的最大工作空间(即-m命令后面指定的数字),用不同的-m命令和固定的-db命令启动ansys,这样就可以确定出极限-m的大小。一般来说,32位的操作系统-m设定(即工作空间设定)不能超过1200MB,-db(数据库空间设定)不能超过256MB。
写到这里,楼主的问题似乎也就迎刃而解了,我们可以得到以下几条启发:
1. 不是计算机的物理内存越大,ansys就一定越块,这要看使用的是64位系统还是32位系统,32位系统最大只支持3G的内存(有些说是3.25GB,32位XP系统),并且默认的工作空间是-m 512MB,其中database space和Scratch space各占去一半
2 尽量使ansys的运算使用系统的物理内存,因为物理内存使用ansys自带的函数实现内存和硬盘的数据交换,而虚拟内存使用的是系统函数实现数据交换。如果不想让ansys慢的跟蜗牛似的就尽量调大scratch space吧
3 ansys似乎只能使用连续的内存块,即-m的设定只能是连续内存(这可能是为什么32位系统的-m最大不能超过1800MB的原因)
对于32位Windows操作系统来说,最有效的办法是指定一个小的初始内存块(比数据库空间大50MB),然后让ansys根据需要生长出更小块的内存,这是ansysworkbench默认的内存分配方式,对于使用PCG求解器的任务能够有效的工作。但这种内存分配方式对需要大块内存的求解器不适用。这种情况下,通常需要指定一个大的初始内存分配,同时减小模型数据库的初始内存分配。-m指令在程序启动时分配命令指定的虚拟内存(是不是可以理解为在计算机物理内存不足的情况下才分配额外要求的虚拟内存?)
修改工作空间(workspace)的大小(-m命令),其实是在修改暂存空间(scratch space)的大小,因为32位系统默认的数据库空间(data space)256MB一直保持不变。
参考资料:百度空间swpuwqw转帖:ansys内存管理问题zz http://apps.hi.baidu.com/share/detail/17314294
热心网友
时间:2023-10-13 07:21
不能,计算时所需具体内存及空间,在计算时到任务管理器查看所需内存空间,所需磁盘存储空间要看在计算时工作路径文件夹的大小。