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

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

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

逐次計算

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

                   CPU (%)     VSZ (kbyte)    RSS (kbyte)
 MD_iter=   1      99.500     271208          61804
 MD_iter=   2      95.100     398752         190608
 MD_iter=   3      99.900     385352         177336
 MD_iter=   4      96.800     385352         177336
 MD_iter=   5      99.900     385352         177336
 MD_iter=   6      97.600     385352         177336
 MD_iter=   7     100.000     385352         177336
 MD_iter=   8      98.100     385352         177336
 MD_iter=   9     100.000     385352         177336
 MD_iter=  10      98.500     385352         177336
 MD_iter=  11      97.200     385352         177336
 MD_iter=  12      98.800     385352         177336
 MD_iter=  13      97.700     385352         177336
 MD_iter=  14      99.100     385352         177336
 MD_iter=  15      98.000     385352         177336
 MD_iter=  16      99.200     385352         177336
 MD_iter=  17      98.300     385352         177336
 MD_iter=  18      99.400     385352         177336
 MD_iter=  19      98.600     385352         177336
 MD_iter=  20      97.800     385352         177336


    2     ml_example/Co4+U.dat            

                   CPU (%)     VSZ (kbyte)    RSS (kbyte)
 MD_iter=   1      99.500     271336          61928
 MD_iter=   2     104.000     398880         191052
 MD_iter=   3     100.000     385476         177776
 MD_iter=   4      96.800     385476         177776
 MD_iter=   5     100.000     385476         177776
 MD_iter=   6      97.500     385476         177776
    ......
    ....



2017-03-07