マルチプロセス環境は複雑になることがあるので、MPI プログラムからパフォーマンスデータを収集するときは、MPI 実験の格納に関するいくつかの問題に留意する必要があります。これらは、データの収集と格納の効率性、実験の命名に関係している問題です。MPI 実験をはじめとする実験の命名については、 「収集データの格納場所」を参照してください。
パフォーマンスデータを収集する MPI プロセスは、それぞれ独自の実験を作成します。実験を作成するとき、MPI プロセスは実験ディレクトリをロックします。このため、ほかの MPI プロセスがそのディレクトリを使用するには、ロックが解除されるのを待つ必要があります。つまり、あらゆる MPI プロセスからアクセス可能なファイルシステムに実験を格納した場合、実験は順次に作成されますが、各 MPI プロセスにローカルのファイルシステムに格納した場合は、すべての実験が同時に作成されます。
コレクタで実験名が作成されるようにすれば、実験名や格納場所に関する問題を回避できます。次の節、「デフォルトの MPI 実験名」を参照してください。
実験名を指定しなかった場合、デフォルトの実験名が使用されます。コレクタは MPI ランクに基づき、標準形式の experiment.m.er で実験名を作成します。 この場合の m は MPI ランクです。experiment は、実験グループが指定された場合は実験グループ名で、それ以外の場合は test になります。共通ファイルシステムまたはローカルファイルシステムのどちらを使用しているかに関係なく、実験名は一意です。つまり、ローカルファイルシステムを使用して実験を記録し、それらのファイルを共通のファイルシステムにコピーして実験グループファイルを再構築する場合、実験名を変更する必要はありません。ほとんどの場合、すべてのファイルシステムで名前が一意になるように、コレクタで実験名が作成されるようにしてください。
実験を共通のファイルシステムに格納し、標準形式 experiment. n.er で実験名を指定した場合、実験のたびに n の値が増分されるときに実験名が一意になります。実験は、MPI プロセスによって実験ディレクトリのロックが取得された順序で番号が付けられるので、プロセスの MPI ランクに対応する保証はありません。動作中の MPI ジョブ内の MPI プロセスに dbx を接続した場合、実験の番号は、接続した順序によって決まります。
各実験をそれぞれローカルのファイルシステムに格納し、明示的な実験名を指定すると、実験の名前が同じになる可能性があります。たとえば node0、node1、node2、node3 の 4 つのシングルプロセッサノードを持つクラスタにわたって、MPI ジョブを実行したとします。 各ノードには /scratch という名前のローカルディスクがあり、このディスク上のディレクトリ username に実験を格納します。MPI ジョブによって作成される実験は、次のフルパス名を持ちます。
node0:/scratch/username/test.1.er node1:/scratch/username/test.1.er node2:/scratch/username/test.1.er node3:/scratch/username/test.1.er |
ノード名を含むフルネームは一意ですが、それぞれの実験ディレクトリ内に test.1.er という名前の実験が存在します。MPI ジョブの完了後に実験を共通の場所に移動する場合は、名前が一意であることを確認してください。たとえば、自分のホームディレクトリ (すべてのノードからアクセス可能と仮定) に実験を移動して、実験名を変更するには、次のコマンドを使用します。
rsh node0 ’er_mv /scratch/username/test.1.er test.0.er’ rsh node1 ’er_mv /scratch/username/test.1.er test.1.er’ rsh node2 ’er_mv /scratch/username/test.1.er test.2.er’ rsh node3 ’er_mv /scratch/username/test.1.er test.3.er’ |
大規模な MPI ジョブの場合は、スクリプトを使用して共通の場所に実験を移動することもできます。UNIX® コマンド cp または mv は使用せず、上の例、または 「実験の操作」 に示す er_cp または er_mv を使用してください。
利用可能なローカルファイルシステムが不明な場合は、df -lk コマンドを使用するか、システム管理者に確認してください。実験を格納するディレクトリは、一意に定義されていて、ほかの実験に使用されていない既存のディレクトリであることを常に確認してください。また、ファイルシステムに、実験用の十分な空き容量があることを確認してください。必要なディスク容量の概算方法については、「必要なディスク容量の概算」を参照してください。
コンピュータ間やノード間で実験をコピーまたは移動すると、注釈付きのソースコードや注釈付きの逆アセンブリコード内のソース行を表示できなくなる場合があります。 これらのコードを表示するには、実験に使用されたロードオブジェクトとソースファイル、または同じパスとタイムスタンプを持つコピー へのアクセス権が必要があります。