XD2000ユーザ各位
XD2000において、CrayMPIを使用した並列計算が、特定の条件下で停止する問題が確認されていました。
この問題の原因の一つとして、libfabricのOFI RxM providerにおける受信キューサイズの制限が考えられます。具体的には、ノード間通信において多数の受信要求を同時に開始し、受信キューの容量を超えた場合に、通信処理が停止することがあります。
受信キューサイズは環境変数FI_OFI_RXM_RX_SIZEによって変更できますが、従来のlibfabric/1.13.1では、この値をデフォルト値の2048より大きく設定しても、2048に制限される不具合があることが分かりました。
この問題に対応するため、修正版のlibfabric/1.13.2を新たに導入しました。このバージョンでは、環境変数 FI_OFI_RXM_RX_SIZEによって受信キューサイズを2048より大きく設定できます。
新しいバージョンは、以下のコマンドで利用できます。
module switch libfabric/1.13.1 libfabric/1.13.2
さらに、ジョブスクリプトに以下の設定を追加することで、受信キューサイズを8192に拡大できます。
export FI_OFI_RXM_RX_SIZE=8192
この設定により、従来停止していたテストプログラムが正常終了することを確認しています。
今回の問題は、すべてのMPI通信の停止に共通する原因ではありませんが、原因不明の通信停止が発生している場合には、上記の設定をお試しください。
なお、受信キューサイズの拡大によりメモリ使用量が増加する可能性があるため、デフォルト値は2048のままとしています。通常の計算で問題が発生していない場合には、設定を変更する必要はありません。
この対応でもMPI通信が停止する問題が発生する場合は、以下の窓口までお問い合わせください。
http://www.cfca.nao.ac.jp/inquiry
天文シミュレーションプロジェクト