SolverRunnerを使うとGUIを用いて、さらにかんたんに実行できます。
gms_solver/gms_solver_mpiの実行ファイルをコマンドプロンプト上で実行します。
シングルプロセス計算を行う場合とMPI並列コードを用いた計算を行う場合とで、実行方法が異なります。
フルパス指定の際、パスの途中にスペースを含む場合は、ダブルクォーテーションで全体を括って指定してください。
1CPUでgms_solverを実行します。(並列計算は行いません)
Dump1d, Dump2d, Dump3dディレクトリを同じディレクトリに作成してください。この中に計算結果が出力されます。
C:\計算ディレクトリ>dir
ドライブ C のボリューム ラベルは xxx です
ボリューム シリアル番号は xxxx-xxxx です
C:\計算ディレクトリ のディレクトリ
2009/07/03 09:00 <DIR> .
2009/07/03 09:00 <DIR> ..
2009/07/03 09:00 1,907 conductor.txt
2009/07/03 09:00 <DIR> Dump1d
2009/07/03 09:00 <DIR> Dump2d
2009/07/03 09:00 <DIR> Dump3d
2009/07/03 09:00 111 ex1.gms
2009/07/03 09:00 10,240 ex1_source.h5
2009/07/03 09:00 13,568 ex1_station.h5
2009/07/03 09:00 233,280 ex1_struct.h5
5 個のファイル 259,103 バイト
5 個のディレクトリ xx,xxx,xxx,xxx バイトの空き領域
C:\計算ディレクトリ>"C:\Program Files\NIED\GMS1.10.0\Win64bin\gms_solver.exe" > log.txt
MPI並列化コードでビルドされた実行ファイル(gms_solver_mpi.exe)で並列計算を行います。
計算を行うディレクトリにconductor.txtを置きます。
同ファイルに記述されたGMS構造ファイル、GMS震源ファイル、GMS観測点ファイルのパスがカレントディレクトリであれば、これらのh5ファイルも同じディレクトリに置きます。
Dump1d, Dump2d, Dump3dディレクトリを同じディレクトリに作成してください。この中に計算結果が出力されます。
div.txtファイルを作成します。
並列プロセス数を-npオプションで指定し、下記の実行例コマンドで実行します。
C:\計算ディレクトリ>dir
ドライブ C のボリューム ラベルは xxx です
ボリューム シリアル番号は xxxx-xxxx です
C:\計算ディレクトリ のディレクトリ
2009/07/03 09:00 <DIR> .
2009/07/03 09:00 <DIR> ..
2009/07/03 09:00 1,907 conductor.txt
2009/07/03 09:00 5 div.txt
2009/07/03 09:00 <DIR> Dump1d
2009/07/03 09:00 <DIR> Dump2d
2009/07/03 09:00 <DIR> Dump3d
2009/07/03 09:00 111 ex1.gms
2009/07/03 09:00 10,240 ex1_source.h5
2009/07/03 09:00 13,568 ex1_station.h5
2009/07/03 09:00 233,280 ex1_struct.h5
5 個のファイル 259,103 バイト
5 個のディレクトリ xx,xxx,xxx,xxx バイトの空き領域
C:\計算ディレクトリ>mpiexec.exe -np 4 "C:\Program Files\NIED\GMS1.10.0\Win64bin\gms_solver_mpi.exe" < div.txt > log.txt
オプション"-np":並列計算するプロセス数を指定します(この例では4プロセスで並列計算を行います)。なお、GMS1.10.0では32プロセスまでの指定が可能です。
MPI並列計算をするために計算領域をどのように分割するかを指定します。
計算領域のI,J方向それぞれの分割数を以下のように指定します。
C:\計算ディレクトリ>type div.txt
2 2
この例では、I方向2分割、J方向2分割とし、計算領域を4分割にしています。
この領域の分割数(4)とオプション"-np"のプロセス数(4)が同じ値になるように設定します。
初めてMPI並列計算を行う場合、Microsoft MPIがインストールされている必要があります。