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
© Copyright 2024 ExpyDoc