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

Slides:



Advertisements
Similar presentations
Windows HPC 講習会 2009/9/25 Windows HPC コンソーシアム 1 - MS-MPIプログラミング演習 - 同志社大学生命医科学部 廣安 知之 同志社大学工学研究科 中尾 昌広.
Advertisements

2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
5.制御構造と配列 場合分け( If Then Else , Select Case ) 繰返し( Do While ) 繰返しその2( For Next )
クラスタの構成技術と クラスタによる並列処理
情報理工学部 情報システム工学科 3年 H 井奈波 和也
Parallel Programming in MPI part 2
Fortran と有限差分法の 入門の入門の…
京都大学情報学研究科 通信情報システム専攻 湯淺研究室 M2 平石 拓
第13回構造体.
クラスタコンピューティングの 並列環境と性能
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
数値計算及び実習 第3回 プログラミングの基礎(1).
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
基礎プログラミングおよび演習 第9回
第2回ネットワークプログラミング 中村 修.
コンパイラ 第9回 コード生成 ― スタックマシン ―
並列処理のためのプログラム作成.
プログラミング言語論 第4回 手続きの引数機構 変数の有効範囲
情報理論2 第6回 小林 学 湘南工科大学 2011年11月15日 〒 神奈川県藤沢市辻堂西海岸1-1-25
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
OSI7層の各層の1)名称 2)機能の簡単な説明 3)各階層に関連のあ る機器、規格などを5つ以上書いて下さい。
MPI Programming 1 本schoolの目的
Northrop Grumman RQ-4 Global Hawk
MPIによるプログラミング概要(その1) 【C言語編】
北極振動指数と日本各地の気温の関係を調べる
京都大学大学院医学研究科 画像応用治療学・放射線腫瘍学 石原 佳知
整数データと浮動小数データ 整数データと浮動小数データの違い.
繰り返し計算 while文, for文.
MPIによるプログラミング概要(その2) 【Fortran言語編】
プログラムの制御構造 選択・繰り返し.
Parallel Programming in MPI part 3
プロセス間データ通信  齋藤グループ 小林 直樹
情報処理Ⅱ 第2回 2007年10月15日(月).
プログラミング言語論 第9回 Hoare論理の練習問題 手続きの引数機構 変数の有効範囲
関数と配列とポインタ 1次元配列 2次元配列 配列を使って結果を返す 演習問題
Parallel Programming in MPI part 2
関数の定義.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
アルゴリズムとプログラミング (Algorithms and Programming)
情報工学概論 (アルゴリズムとデータ構造)
情報とコンピュータ 静岡大学工学部 安藤和敏
phononの分散関係の計算 -カイラルナノチューブ(18,3)-
プログラムの制御構造 配列・繰り返し.
VBで始めるプログラミング 第三回 コードを書こう!! まきはた@ナーク ’04/05/21.
情報理論2 第3回 小林 学 湘南工科大学 2011年10月25日 〒 神奈川県藤沢市辻堂西海岸1-1-25
9.通信路符号化手法1 (誤り検出と誤り訂正の原理)
ソフトウェア制作論 平成30年10月10日.
プログラミング言語論 第5回 手続きの引数機構 変数の有効範囲
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
制御文の役割と種類 IF文 論理式と関係演算子 GO TO文
プログラミング入門.
情報とコンピュータ 静岡大学工学部 安藤和敏
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1.
情報工学Ⅱ (第2回) 月曜4限 担当:北川 晃.
Parallel Programming in MPI part 2
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
岩村雅一 知能情報工学演習I 第12回(後半第6回) 岩村雅一
応用数理工学特論 線形計算と ハイパフォーマンスコンピューティング
並列・分散ソフトウェア.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
プログラミング入門2 第5回 配列 変数宣言、初期化について
並列・分散ソフトウェア(2).
場合分け(If Then Else,Select Case) 繰返し(Do While) 繰返しその2(For Next)
JavaScript    プログラミング入門 2-3 式と演算子 2006/10/12 神津 健太.
Presentation transcript:

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

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

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 : プロセス数情報取得する 

MPIプログラム (2/3) tnode=4 myrank=0,1,2,3 DO 10 I = 1, 10000 A(I) = real(I) 10 CONTINUE lb = 10000 / 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=0x2500+0+1=1 ie=1+2500-1=2500 myrank=1 is=1x2500+0+1=2501 ie=2501+2500-1=5000 myrank=2 is=5001, ie=7500 myrank=3 is=7501, ie=10000

MPIプログラム (3/3) 各プロセスで実行 SUM = 0.0 DO 20 I = is, ie SUM = SUM + A(I) 20 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環境を終了する 

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)

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