スライド 1

MPIを使ったプログラムの計時
齋藤グループ
小林直樹
2003.5.23
MPI_Wtime
現在の経過時間を得る(秒単位:倍精度)
MPIプログラム実行時間の計測に使用
double precision before, after
変数宣言
before = MPI_Wtime()
測定開始時間をbeforeに代入
after = MPI_Wtime()
測定終了時間をafterに代入
If( myrank .eq. 0) write(*,*) after – before
経過時間を表示
加算プログラム(計時あり)
実行結果 (1~10000までの加算)
[kobayasi@tube sum]$ mpirun -np 1 ./a.out
5.000500E+07 2.49999999999417D-005
[kobayasi@tube sum]$ mpirun -np 2 ./a.out
5.000500E+07 2.56999999999952D-004
[kobayasi@tube sum]$ mpirun -np 3 ./a.out
5.000500E+07 2.43999999999911D-004
[kobayasi@tube sum]$ mpirun -np 4 ./a.out
5.000500E+07 1.49700000000008D-003
[kobayasi@tube sum]$ mpirun -np 5 ./a.out
5.000500E+07 1.86900000000012D-003
[kobayasi@tube sum]$ mpirun -np 6 ./a.out
5.000500E+07 2.61999999999984D-003
[kobayasi@tube sum]$ mpirun -np 7 ./a.out
5.000500E+07 9.36889999999999D-002
[kobayasi@tube sum]$ mpirun -np 8 ./a.out
5.000500E+07 0.124191000000000
[kobayasi@tube sum]$ mpirun -np 9 ./a.out
5.000500E+07 0.147164000000000
[kobayasi@tube sum]$ mpirun -np 10 ./a.out
5.000500E+07 0.112553000000000
プロセス数と経過時間
1.E +02
1.E +01
時間 [s]
1.E +00
1.E -01
1.E -02
1.00E+05
1.00E+06
1.00E+07
1.00E+08
1.00E+09
1.E -03
1.E -04
1.E -05
1 2 3 4
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
プロセス数
加算よりデータ通信により時間が掛かると思われる
計算マシンの指定
mpirun –np ○ -machinefile <machines> a.out
Machinefileを指定しない場合
/usr/local/mpich-intel/share/machines.LINUX
hpc1
hpc2:2
hpc3:2
hpc4:2
hpc5:2
hostname
or
hostname:n
(n is the number of processors)
hpc1(tube) マスタマシン
CPU:Pentium4 2.80GHz
hpc2,hpc3,hpc4,hpc5 スレイブマシン
CPU:Xeon 2.80GHz ×2
PCクラスタ
プロセス数と経過時間(8CPU)
1.E+00
時間 [s]
1.E-01
1.E-02
1.E-03
1.00E+05
1.00E+06
1.00E+07
1.00E+08
1.00E+09
1.E-04
1.E-05
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20
プロセス数
8CPUと9CPUでの経過時間(1)
1.E+00
1.E+00
1.E-01
1.E-02
時間 [s]
時間 [s]
1.E-01
1.E-03
1.E-02
1.E-04
1.E-05
1.E-03
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
プロセス数
プロセス数
1~106までの加算
1.E+00
1~104までの加算
時間 [s]
1.E-01
1.E-02
1~105までの加算
1.E-03
8CPU (Xeon)
1.E-04
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
プロセス数
9CPU (Xeon + P4)
8CPUと9CPUでの経過時間(2)
1.E+00
1.E+02
1.E+01
時間 [s]
時間 [s]
1.E-01
1.E+00
1.E-02
1.E-01
1.E-03
1.E-02
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
プロセス数
プロセス数
1~107までの加算
1~108までの加算
8CPU (Xeon)
9CPU (Xeon + P4)
MPIの実行
前回までの問題点
Super user以外がMPIを実行すると Permission denied となってしまう
MPIを実行すると machinefile に書かれたホストに rsh でログインして実行
.rhosts にPCクラスタのhost名を追加することで実行可能となる
host名
hpc1
hpc2
hpc3
hpc4
hpc5
hpc1-e
hpc2-e
hpc3-e
hpc4-e
hpc5-e