2014年5月

GamBetでマルチプロセス計算がうまく終了しない

GamBet(電子、陽電子、光子の放射線輸送解析ソフト)でParallelコマンドでマルチプロセスの計算をした場合に、終了処理がうまくいかず、.end、.G3D、.GLS、.SRCファイルが複数残ったままになり、統合された出力ファイルが作成されないという問題が起きる場合があります。
この問題の原因と対処について書きます。
 
GamBetプログラムはマルチプロセス計算の際には、メインプロセス起動前にまず子プロセスをスタートさせます。通常はメインプロセスは子プロセスが終わった後に終了し、必要なデータファイルを探します。
 
しかしすべてのプロセスの計算時間にはばらつきがあり、特に何時間もの長い計算の場合にはそのばらつきが大きくなります。
 
そのような場合、子プロセスの幾つかがTEnd (PARALLELコマンドのオプション)で設定された時間より後で終了することがあります。これが原因となります。
 
この問題を解決するにはTEndの値を大きくし、すべてのプロセスが完了する様にする必要があります。
マニュアルp.39のPARALLEL NProc [TStart TEnd]の項、およびp44の11章をご参照下さい。)
1