Amazon EC2 ノードを使用し、C で MPI 並列プログラムを実行しています。starcluster を使用してインスタンスを管理しています。プログラムは、を使用して正常にコンパイルされますmpicc
。実行可能ファイルは、すべてのノードによって共有されるマウントされたスペースにあります。ただし、を使用して実行可能ファイルを実行するmpirun
と、代わりに古いバージョンの実行可能ファイルがロードされることがあります。
たとえば、マスターと 9 つのノードがあり、「バージョン 1.0」と出力すると、「バージョン 1.0」の 10 個の文字列出力が得られます。コードを更新して「Version 1.1」と出力し、マスターでコンパイルしてからすぐに実行すると、「Version 1.1」の 1 行と「Version 1.0」の 9 行が得られます... もう 1 分待つか、 2 つ実行すると、"Version 1.1" の 10 行すべてが表示されます。
他のノードが実行可能ファイルを更新するのにこのような遅延があるのはなぜですか? MPIccの問題ですか?共有スペースをマウントする方法は?