这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
adf:insufficientvirtualmemory [2022/10/12 17:20] – [不得已的方式] liu.jun | adf:insufficientvirtualmemory [2024/01/10 14:52] (当前版本) – [Windows解决方式方式] liu.jun | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ======故障:ADFJobs提示insufficient virtual memory====== | + | ======故障:AMSJobs提示insufficient virtual memory====== |
一般在使用很多核进行比较大的体系计算时,出现这个问题;计算小体系、低精度、低计算量、低并行核数的时候,不出现这个问题。 | 一般在使用很多核进行比较大的体系计算时,出现这个问题;计算小体系、低精度、低计算量、低并行核数的时候,不出现这个问题。 | ||
行 7: | 行 7: | ||
=====解决方式===== | =====解决方式===== | ||
- | ====推荐方式==== | + | ====Windows解决方式方式==== |
- | 对WIndows而言,用户可以清理一下C盘空间。对Linux用户,SWAP区域一般无法改动,而且里面一般也没有存储文件。 | + | 用户清理一下C盘空间,留出更大的剩余空间。关于C盘的重要性,如果不清楚,请务必阅读:[[adf: |
- | ====不得已的方式==== | + | 如果C盘无法腾出空间,或者腾出的空间仍然不足够,则只能降低对虚拟内存的使用,**代价是计算效率大幅度下降**:设置环境变量SCM_IOBUFFERSIZE值为32甚至更小,这个值越小计算效率越低。 |
- | 在Windows系统中,无法腾出更多C盘空间,并且仍然报错的话,或者Linux系统,这样报错,那么就只能牺牲计算效率,修改ADF对虚拟内存的消耗了: | + | |
- | ADF里面有一个环境变量,可以控制对虚拟内存的使用规模,当然虚拟内存使用越大,计算效率越高,但如果确实虚拟内存不够用了,那也没有办法,只能降低对虚拟内存的使用。 | + | 环境变量的增设或修改,参考:[[adf: |
+ | ====Linux不得已的解决方式==== | ||
+ | 牺牲计算效率,修改ADF对虚拟内存的消耗:ADF里面有一个环境变量,可以控制对虚拟内存的使用规模,当然虚拟内存使用越大,计算效率越高,但如果确实虚拟内存不够用了,那也没有办法,只能降低对虚拟内存的使用。 | ||
在amsbashrc.sh中增加一个环境变量: | 在amsbashrc.sh中增加一个环境变量: | ||
行 21: | 行 22: | ||
</ | </ | ||
- | 注意,这个变量实际上是有默认值64的。此时我们将其适当降低,直到能够正常计算即可。 | + | 注意,这个变量实际上是有默认值64的。此时我们将其适当降低,直到能够正常计算即可,这个值越小,计算效率越低。 |