用户工具

站点工具

本页面的其他翻译:
  • zh

adf:exitcode07

*.out提示:EXIT CODE: 7等

各种EXIT CODE的含义:

可知,EXIT CODE: 7是作业读取内存时出现的一种偶然性错误。重新计算即可。

详细解释:

Bus Error,即总线错误。引发原因:CPU出于性能方面的考虑,要求对数据进行访问时都必须是地址对齐的。如果发现进行的不是地址对齐的访问,就会发送SIGBUS信号给进程,使得进程产生core dump。Bus Error另外一种产生的情况是:机器存在物理问题,或者访问无效物理地址,不过这种情况很少。

通俗的说:

是这个作业会索取一个很大的连续存储,size越大,计算机为它分配的时候,出错的机会就越大。类似工作量越大,人越容易出错。未必就是内存不足的原因,当然内存不足也可能导致这个错误。

  • 如果这个作业是EDA分析的一个分区的作业,那么建议在该分取作业中,Model → Region删除所有Region,这并不影响最终的EDA计算,但有助于规避这个问题。即,避免很多原子呆在一个region,很多原子呆在一个region会导致上面提到的那种内存调用方式——索取一个很大的连续存储。
  • 降低Numerical Quality(这里是指从Good降低到Normal,实际上一般用Normal就是足够精确的),降低基组(例如很小的C原子不要去使用昂贵的TZP基组)也能减弱该现象。
  • 注意这个作业消耗的内存,以及机器的总内存,以及同时运行了多少个作业,所有作业的内存消耗量是否大于了该机器的内存总量(实际建议远小于,因为系统本身也会耗用一定内存),如果同时运行的多个作业,内存消耗总量大于机器内存,必然会报错死掉。

关于内存的使用

内存的使用,是一个比较有意思的事情。在*.out文件的头部,会有内存使用的情况,例如:

 Parallel Execution: Process Information
 ==============================================================================
 Rank   Node Name                              NodeID   MyNodeRank  NodeMaster
    0   ibnode13                                  0          0          0
    1   ibnode13                                  0          1         -1
    2   ibnode13                                  0          2         -1
    3   ibnode13                                  0          3         -1
    4   ibnode13                                  0          4         -1
    5   ibnode13                                  0          5         -1
    6   ibnode13                                  0          6         -1
    7   ibnode13                                  0          7         -1
    8   ibnode13                                  0          8         -1
    9   ibnode13                                  0          9         -1
   10   ibnode13                                  0         10         -1
   11   ibnode13                                  0         11         -1
   12   ibnode13                                  1          0          1
   13   ibnode13                                  1          1         -1
   14   ibnode13                                  1          2         -1
   15   ibnode13                                  1          3         -1
   16   ibnode13                                  1          4         -1
   17   ibnode13                                  1          5         -1
   18   ibnode13                                  1          6         -1
   19   ibnode13                                  1          7         -1
   20   ibnode13                                  1          8         -1
   21   ibnode13                                  1          9         -1
   22   ibnode13                                  1         10         -1
   23   ibnode13                                  1         11         -1
   24   ibnode13                                  0         12         -1
   25   ibnode13                                  0         13         -1
   26   ibnode13                                  0         14         -1
   27   ibnode13                                  0         15         -1
   28   ibnode13                                  0         16         -1
   29   ibnode13                                  0         17         -1
   30   ibnode13                                  0         18         -1
   31   ibnode13                                  0         19         -1
   32   ibnode13                                  0         20         -1
   33   ibnode13                                  0         21         -1
   34   ibnode13                                  0         22         -1
   35   ibnode13                                  0         23         -1
   36   ibnode13                                  1         12         -1
   37   ibnode13                                  1         13         -1
   38   ibnode13                                  1         14         -1
   39   ibnode13                                  1         15         -1
 ==============================================================================


May use up to 15625MB of RAM as shared memory on node 0
May use up to 15517MB of RAM as shared memory on node 1

这段文字说明的内容是:

  1. CPU的颗数、编号:该作业,使用了节点 ibnode13 的 2 颗 CPU(当然更严格的说,叫做逻辑 CPU,下同),在 NodeID 那一列,列出的就是每个进程用的核心所在的 CPU 编号,分别为 0、1。最后 2 行的 node 0 和 node 1,也是指这个。
  2. 内存占用量:本作业使用的内存总数估计为:15625MB + 15517MB
  3. 同一颗CPU会共用内存:在同一颗 CPU 里面的全部进程,共用同一块内存空间,在这颗 CPU 内,使用的核数多一些、少一些,内存消耗都是一样的。因此,假如这个作用只用 20 核心,则只需要 1 颗 CPU,因此只需要约 15600MB 内存,如果使用1、2、8、10……19核心,占用的内存也都是这么大。
  4. 内存占用量正比于调用 CPU 颗数:
    • 例如这里使用了 2 个 CPU,内存大致上就是1 颗 CPU 的 2 倍。
    • 假如:“这个节点有 4 颗 CPU,每个 CPU 有 20 个核心(严格的说,叫逻辑核心)”,那么如果我们使用 41 核心运行本作业,第三颗 CPU 也得参与进来,计算机就需要单独为第三颗 CPU 开辟大约 15600MB 内存,从而占用总内存就是大约 15600MB × 3。
    • 假如“该节点,它的一颗 CPU 就有 40 核心”,那么我们现在这个40核心的作业,需要的内存就只需要约15625MB。
  5. 该节点还有其他作业,其他作业占用掉的核心,正常情况下,就不会分配给本作业了。其他作业也会占用内存。

综上,同一个作业,哪怕使用相同的核心数,如果使用的CPU不同,那么内存的占用也非常不相同,单颗 CPU 核数越多,一般消耗内存越少

adf/exitcode07.txt · 最后更改: 2024/10/10 17:39 由 liu.jun

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