next up previous contents index
Next: メモリ使用量の解析 Up: OpenMX Ver. 3.9 ユーザーマニュアル Previous: 自動フォース・テスター   Contents   Index

自動メモリーリーク・テスター

OpenMXの実行時、使用メモリは必要に応じて動的に割り当てられています。 動的メモリー割り当て(dynamic memory allocation)では、メモリリークが発生する場合があり、 MDステップの増大とともに使用メモリが浪費され、最終的には異常終了する可能性が生じます。

OpenMXを次のように実行することで、メモリリークをチェックすることが可能です。

逐次計算

     % ./openmx -mltest 
  
並列計算
     % ./openmx -mltest "mpirun -np 4 openmx"
  
ディレクトリ「work/ml_example」に保存されている14個のテスト用入力ファイルを用いて、 メモリリークが監視されます。この際に、プログラムコード「openmx」中の同じモニターポイントで 実際に使用されたVSZおよびRSSを監視します。計算終了後、ファイル「mltest.result」が生成します。 監視されたVSZとRSSはMDステップの関数として、ファイル「mltest.result」中に次のように 出力されますので、メモリリークが生じているのかどうか確認できます。
    1     ml_example/DIA8.dat             

                   CPU (%)     VSZ (kbyte)    RSS (kbyte)
 MD_iter=   1      68.300     397396         123076
 MD_iter=   2      96.400     436264         131916
 MD_iter=   3      99.000     436264         131916
 MD_iter=   4      97.900     436264         131916
 MD_iter=   5      98.800     436264         131916
 MD_iter=   6      99.300     436264         131916
 MD_iter=   7      98.800     436264         131916
 MD_iter=   8      99.200     436264         131916
 MD_iter=   9      99.500     436264         131916
 MD_iter=  10      99.100     436264         131916
 MD_iter=  11      99.400     436264         131916
 MD_iter=  12      99.500     436264         131916
 MD_iter=  13      99.300     436260         131916
 MD_iter=  14      99.500     436264         131916
 MD_iter=  15      99.300     436264         131916
 MD_iter=  16      99.500     436260         131916
 MD_iter=  17      99.600     436264         131916
 MD_iter=  18      99.400     436264         131916
 MD_iter=  19      99.600     436264         133848
 MD_iter=  20      99.400     436264         133848
 MD_iter=  21      99.500     436264         133848
 MD_iter=  22      99.600     436264         133848
 MD_iter=  23      99.500     436264         133848
 MD_iter=  24      99.500     436264         133848
 MD_iter=  25      99.700     436264         133848
 MD_iter=  26      99.500     436264         133848
 MD_iter=  27      99.600     436264         133848
 MD_iter=  28      99.500     436264         133848
 MD_iter=  29      99.600     436264         133848
 MD_iter=  30      99.600     436264         133848


    2     ml_example/DIA8_DC.dat          

                   CPU (%)     VSZ (kbyte)    RSS (kbyte)
 MD_iter=   1     101.000     412508         136448
 MD_iter=   2     100.000     516940         210312
 MD_iter=   3      98.200     517016         210440
 MD_iter=   4      98.900     517016         210440
 MD_iter=   5      99.300     517016         210440
 MD_iter=   6      99.500     517016         210440
    ......
    ....