0

32 ノード クラスタで NAS-UPC ベンチマークを実行しようとしています。

問題のサイズが小さい場合は問題なく動作します。より大きな問題サイズ (クラス D) に卒業すると、このエラーが発生します (MG ベンチマークの場合)

*** Caught a fatal signal: SIGBUS(7) on node 2/32
 p4_error: latest msg from perror: Bad file descriptor
*** Caught a signal: SIGPIPE(13) on node 0/32
    p4_error: latest msg from perror: Bad file descriptor
   p4_error: latest msg from perror: Bad file descriptor

*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** Caught a signal: SIGPIPE(13) on node 27/32
*** Caught a signal: SIGPIPE(13) on node 20/32
*** Caught a signal: SIGPIPE(13) on node 21/32
    p4_error: latest msg from perror: Bad file descriptor
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit
*** Caught a signal: SIGPIPE(13) on node 16/32
*** FATAL ERROR: recursion failure in AMMPI_SPMDExit

なぜこれが起こっているのか、誰でも説明できますか?また、このエラーを以前に見て修正したことがある人はいますか?

編集: メモリ関連の問題であることがわかりました。しかし、コンパイル時にアプリケーションに適切な量のメモリを割り当てることができません

4

2 に答える 2

2

出力を確認してくださいdmesg。メモリ不足の問題である可能性があります。または、ここでも、スタックサイズなどの一部がヒットする可能性がありulimit -aます (デフォルトのスタックサイズは、一部の NAS タスクには小さすぎます)。

いずれかのマシンの出力に「メモリ不足: プロセスが強制終了されました ###」のような行がある場合、dmesgそれは、プログラムが大量のメモリを必要とした (そして使用しようとした) ことを意味します。応用。メモリにはいくつかの制限があります。

  1. ulimit -v - 仮想メモリ サイズのユーザー制限。すべてのulimit -a制限も確認してください。ただし、あなたのケースはこれではないようです
  2. 合計 RAM とすべてのスワップ サイズよりも多くのメモリを使用することはできません (freeコマンドで確認してください)。しかし、アプリケーションが RAM サイズよりも多くのメモリを使用し、スワッピングを開始すると、(ほとんどの場合) パフォーマンスが低下します。
  3. 単一のプロセスに許容される最大メモリのアーキテクチャ上の制限があります。32 ビット ノードの場合、この制限は 1 (非常にまれなケース) から 2、3、4 GB になります。32 ビット システムのメモリが 4 GB を超えていても (PAE を使用している場合など)、1 つのプロセスで 4 GB を超えることはありません。4Gb の仮想空間の大部分は、OS にも使用されます (数百 MB から最大 GB まで)。
于 2011-03-22T00:23:49.050 に答える
0

コンパイル時に割り当てたよりも多くのメモリを必要とするベンチマークに問題があると考えました。

于 2011-03-28T03:43:58.490 に答える