用户工具

站点工具


adf:insufficientvirtualmemory

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
adf:insufficientvirtualmemory [2017/06/01 17:17] – 创建 liu.junadf:insufficientvirtualmemory [2024/01/10 14:52] (当前版本) – [Windows解决方式方式] liu.jun
行 1: 行 1:
-======故障:ADFJobs提示insufficient virtual memory======+======故障:AMSJobs提示insufficient virtual memory======
  
 一般在使用很多核进行比较大的体系计算时,出现这个问题;计算小体系、低精度、低计算量、低并行核数的时候,不出现这个问题。 一般在使用很多核进行比较大的体系计算时,出现这个问题;计算小体系、低精度、低计算量、低并行核数的时候,不出现这个问题。
  
 =====原因===== =====原因=====
-体系越大,并行核数越大,精度越高,消耗掉虚拟内存越大。+体系越大,并行核数越大,精度越高,消耗掉虚拟内存越大。虚拟内存不足,如果是Windows系统,那么是C盘剩余空间不足造成的。如果是Linux,则是SWAP分区太小造成的
  
 =====解决方式===== =====解决方式=====
-ADF里面有一个环境变量,可以控制对虚拟内存的使用规模,当然虚拟内存使用越大,计算效率越高,但如果确实虚拟内存不够用了,那也没有办法,只能降低对虚拟内存的使用。+====Windows解决方式方式====
  
-adfrc.sh中增加一个环境变量:+用户清理一下C盘空间,留出更大的剩余空间。关于C盘的重要性,如果不清楚,请务必阅读:[[adf:windows]]中第3条。 
 + 
 +如果C盘无法腾出空间,或者腾出的空间仍然不足够,则只能降低对虚拟内存的使用,**代价是计算效率大幅度下降**:设置环境变量SCM_IOBUFFERSIZE值为32甚至更小,这个值越小计算效率越低。 
 + 
 +环境变量的增设或修改,参考:[[adf:env_win|如何Windows中修改、增设环境变量]] 
 +====Linux不得已的解决方式==== 
 +牺牲计算效率,修改ADF对虚拟内存的消耗:ADF里面有一个环境变量,可以控制对虚拟内存的使用规模,当然虚拟内存使用越大,计算效率越高,但如果确实虚拟内存不够用了,那也没有办法,只能降低对虚拟内存的使用。 
 + 
 +在amsbashrc.sh中增加一个环境变量:
 <code bash> <code bash>
 export SCM_IOBUFFERSIZE=32 export SCM_IOBUFFERSIZE=32
 </code> </code>
  
-注意,这个变量实际上是有默认值64的。此时我们将其适当降低,直到能够正常计算即可。+注意,这个变量实际上是有默认值64的。此时我们将其适当降低,直到能够正常计算即可,这个值越小,计算效率越低
adf/insufficientvirtualmemory.1496308660.txt.gz · 最后更改: 2017/06/01 17:17 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号