Presentation is loading. Please wait.

Presentation is loading. Please wait.

MPIを使った加算  齋藤グループ 小林直樹 2003.5.16.

Similar presentations


Presentation on theme: "MPIを使った加算  齋藤グループ 小林直樹 2003.5.16."— Presentation transcript:

1 MPIを使った加算  齋藤グループ 小林直樹

2 概念図 配列A プロセス0 プロセス1 プロセス2 プロセス3 2500 2501 5000 5001 7500 7501 10000 1
部分和SUM 総和GSUM

3 MPIプログラム (1/3) program summation include ‘mpif.h’
integer myrank, tnode, error DIMENSION A(10000) call mpi_init(error) call mpi_comm_rank(MPI_COMM_WORLD, myrank, error) call mpi_comm_size(MPI_COMM_WORLD, tnode, error) mpif.h : MPIで利用する定数などの型宣言がなされている定義ファイル MPI_INIT : MPI環境の初期化 MPI_COMM_RANK : プロセス情報取得 MPI_COMM_SIZE : プロセス数情報取得する 

4 MPIプログラム (2/3) tnode=4 myrank=0,1,2,3 DO 10 I = 1, 10000
A(I) = real(I) 10 CONTINUE lb = / tnode lc = mod(10000,tnode) if(myrank+1.le.lc) then is = myrank*lb +myrank +1 ie = is + lb else is = myrank*lb+lc+1 ie = is + lb - 1 end if myrank=0 is=0x =1 ie= =2500 myrank=1 is=1x =2501 ie= =5000 myrank=2 is=5001, ie=7500 myrank=3 is=7501, ie=10000

5 MPIプログラム (3/3) 各プロセスで実行 SUM = 0.0 DO 20 I = is, ie SUM = SUM + A(I)
CONTINUE If( myrank .eq. 0) GSUM = 0 call MPI_REDUCE(SUM, GSUM, 1, MPI_REAL, MPI_SUM, 0, & MPI_COMM_WORLD, error) If( myrank .eq. 0) write(*,*) GSUM call mpi_finalize(error) stop end 各プロセスで実行 MPI_REDUCE : 総和、最大値、最小値などを求める MPI_FINALIZE : MPI環境を終了する 

6 MPI_REDUCE SUBROUTINE MPI_REDUCE(SENDBUF,RECVBUF,COUNT
                     ,DATATYPE,OP,ROOT,COMM,IERROR) SENDBUF   送信する変数、配列名の先頭アドレス RECVBUF   受信する変数、配列名の先頭アドレス COUNT    送信するデータの数 DATATYPE  送信するデータの型 OP        演算 ROOT      受信元のプロセスのランク COMM     コミュニケータ(通信グループの識別子) IERROR    戻り値(エラーコード) OPの値 意味 MIP_MAX 最大値 MIP_MIN 最小値 MIP_SUM MIP_PROD MIP_LAND 論理積 MIP_BAND ビット演算の積 MIP_LOR 論理和 MIP_BOR ビット演算の和 MIP_LXOR 排他的論理和 MIP_BXOR ビット演算の MIP_MAXLOC 最大値と位置 MIP_MINLOC 最小値と位置 MPI DATATYPE Fortran DATATYPE  MPI_INTEGER  INTEGER  MPI_REAL  REAL  MPI_DOUBLE_PRECISION  DOUBLE PRECISION  MPI_COMPLEX  COMPLEX  MPI_LOGICAL  LOGICAL  MPI_CHARACTER  CHARACTER(1)

7 実行結果 [kobayasi@tube sum]# mpirun -np 1 ./a.out 5.000500E+07


Download ppt "MPIを使った加算  齋藤グループ 小林直樹 2003.5.16."

Similar presentations


Ads by Google